Программное формирование отчета СКД

1. Dimbayyyy 181 27.12.23 10:10 Сейчас в теме
Всем привет!
Есть внешний отчет на СКД в ЗУП 3.1. В отчете в модуле объекта прописаны процедуры "ИнициализацияОтчета", "ПриКомпоновкеРезультата" и т.д. В процедурах происходит заполнение данных о представлениях + заполнение параметров.

Пытаюсь данный отчет программно сформировать и выгрузить в файл, но получаю пустой отчет. Подскажите, как можно вызвать процедуры из модуля объекта и сделать это корректно?

Сейчас использую вот такой код:
ОтчетСсылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Сотрудники");

ДвоичныеДанные = ОтчетСсылка.ХранилищеОбработки.Получить();
АдресХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
ИмяОбработки = ВнешниеОтчеты.Подключить(АдресХранилища);
ОтчетОб = ВнешниеОтчеты.Создать(ИмяОбработки, Истина);

Таб1 = Новый ТабличныйДокумент();

Настройки = ОтчетОб.СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
Дата1=Настройки.ПараметрыДанных.Элементы.Найти("Период");
Дата1.Значение=НачалоДня(ТекущаяДата());

Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(ОтчетОб.СхемаКомпоновкиДанных, Настройки, Расшифровка);
ВнешниеПараметры = Новый Структура;

//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка);

//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Таб1);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);

таб1.Записать("E:\Отчеты\Сотрудники.xls", ТипФайлаТабличногоДокумента.XLS);
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
2. laperuz 46 27.12.23 10:23 Сейчас в теме +0.5 $m
В модуле объекта процедуры инициализации сделать экспортными, вызывать через ОтчетОб.<ИмяПроцедуры>()
Пустой с большой вероятностью из-за того, что не вызвана процедура ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета() и представления не заменены на реальные запросы.
3. user1880116 27.12.23 10:44 Сейчас в теме +0.5 $m
ОтчетОбъект.<Имя отчета>
СкомпоноватьРезультат

Синтаксис:
СкомпоноватьРезультат(<Результат>, <ИнформацияРасшифровки>)

Параметры:
<Результат> (обязательный)
Тип: ТабличныйДокумент.
Табличный документ, в который будет выводиться результат.
<ИнформацияРасшифровки> (необязательный)
Переменная, в которую будет записана информация расшифровки.
Если не указано - расшифровка заполняться не будет.

Описание:
Выполняет компоновку.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. laperuz 46 27.12.23 10:23 Сейчас в теме +0.5 $m
В модуле объекта процедуры инициализации сделать экспортными, вызывать через ОтчетОб.<ИмяПроцедуры>()
Пустой с большой вероятностью из-за того, что не вызвана процедура ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета() и представления не заменены на реальные запросы.
3. user1880116 27.12.23 10:44 Сейчас в теме +0.5 $m
ОтчетОбъект.<Имя отчета>
СкомпоноватьРезультат

Синтаксис:
СкомпоноватьРезультат(<Результат>, <ИнформацияРасшифровки>)

Параметры:
<Результат> (обязательный)
Тип: ТабличныйДокумент.
Табличный документ, в который будет выводиться результат.
<ИнформацияРасшифровки> (необязательный)
Переменная, в которую будет записана информация расшифровки.
Если не указано - расшифровка заполняться не будет.

Описание:
Выполняет компоновку.
4. romulanin 28.12.23 14:04 Сейчас в теме
По хорошему бы весь отчет. Может структура не установлена, может внешние источники есть, может представления запросов есть, может не устанавливается параметр. А может быть, было бы логичнее, вызывать команду которая будет возвращать табдок.

ТабДок = ВнешняяОбработка.ВыполнитьКоманду("Тест", ПараметрыКоманды);
5. Dimbayyyy 181 29.12.23 08:36 Сейчас в теме
Да, обратился к методам инициализации и компоновки из обработки + прописал "ОтчетОбъект.СкомпоноватьРезультат" и все взлетело) Всем спасибо!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот