Программное формирование отчета СКД на УФ
Здравствуйте. Возникла необходимость в постобработке табличного документа уже после формирования и вывода в него результатов выполнения отчета СКД. Формы управляемые. Добавил новую команду, поместил её на форму, но кто может подсказать каким кодом я могу смоделировать выполнения отчета (то есть родной код кнопки Сформировать в отчете). Заранее всем большое спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) PoZiTiFFF,
полученную таблицу значения можно загрузить в табличную часть. Или вы хотите изменять макет(табличный документ)?
СхемаКомпоновкиДанных = Обработки.ОбработкаВводаПоказанийСчетчиков.ПолучитьМакет("Макет");
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
ПараметрыДанных = Настройки.ПараметрыДанных.Элементы;
ЭлементПериод = ПараметрыДанных.Найти("Период");
ЭлементПериод.Использование = Истина;
ЭлементПериод.Значение = КонецМесяца(Объект.ОкончаниеПериода);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
//КомпоновщикНастроек.Настройки, , ,
Настройки, , ,
Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
Результат = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Показатьполученную таблицу значения можно загрузить в табличную часть. Или вы хотите изменять макет(табличный документ)?
(2) vovan_victory, не срабатывает код. Выдает ошибку:
{Отчет.КалендарьОтгрузок.Форма.ФормаОтчета.Форма(54)}: Ошибка при вызове метода контекста (Выполнить)
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
по причине:
Ошибка компоновки макета
по причине:
Ошибка генерации макета
по причине:
Не поддерживается вывод таблиц, диаграмм и вложенных отчетов в универсальную коллекцию значений
{Отчет.КалендарьОтгрузок.Форма.ФормаОтчета.Форма(54)}: Ошибка при вызове метода контекста (Выполнить)
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
по причине:
Ошибка компоновки макета
по причине:
Ошибка генерации макета
по причине:
Не поддерживается вывод таблиц, диаграмм и вложенных отчетов в универсальную коллекцию значений
(4) vovan_victory, конечно, есть.
Получилось запустить формирование отчета и вывод в табличный документ, но у меня в вычисляемом поле используется функция общего модуля, ругается на неё и не хочет выполняться. Прочитал, что четвертый параметр метода Инициализировать отвечает как раз за возможность использования внешних функций. Вызывает метод следующим образом: ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,,, Истина), но ошибка сохраняется. Что то еще где то необходимо указать. Стандартная кнопка Выполнить отчета СКД срабатывает без ошибок.
Мой текущий код:
Получилось запустить формирование отчета и вывод в табличный документ, но у меня в вычисляемом поле используется функция общего модуля, ругается на неё и не хочет выполняться. Прочитал, что четвертый параметр метода Инициализировать отвечает как раз за возможность использования внешних функций. Вызывает метод следующим образом: ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,,, Истина), но ошибка сохраняется. Что то еще где то необходимо указать. Стандартная кнопка Выполнить отчета СКД срабатывает без ошибок.
Мой текущий код:
СхемаКомпоновкиДанных = отчеты.КалендарьПродаж.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
ПараметрыДанных = Настройки.ПараметрыДанных.Элементы;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
//КомпоновщикНастроек.Настройки, , ,
Настройки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,,, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент();
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Показать
(5) PoZiTiFFF, а если
изменить на
и еще
изменить на
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
//КомпоновщикНастроек.Настройки, , ,
Настройки);
изменить на
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки , , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
и еще
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент();
изменить на
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот