Всем привет!
Есть внешний отчет на СКД в ЗУП 3.1. В отчете в модуле объекта прописаны процедуры "ИнициализацияОтчета", "ПриКомпоновкеРезультата" и т.д. В процедурах происходит заполнение данных о представлениях + заполнение параметров.
Пытаюсь данный отчет программно сформировать и выгрузить в файл, но получаю пустой отчет. Подскажите, как можно вызвать процедуры из модуля объекта и сделать это корректно?
Сейчас использую вот такой код:
ОтчетСсылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Сотрудники");
ДвоичныеДанные = ОтчетСсылка.ХранилищеОбработки.Получить();
АдресХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
ИмяОбработки = ВнешниеОтчеты.Подключить(АдресХранилища);
ОтчетОб = ВнешниеОтчеты.Создать(ИмяОбработки, Истина);
Таб1 = Новый ТабличныйДокумент();
Настройки = ОтчетОб.СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
Дата1=Настройки.ПараметрыДанных.Элементы.Найти("Период");
Дата1.Значение=НачалоДня(ТекущаяДата());
Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(ОтчетОб.СхемаКомпоновкиДанных, Настройки, Расшифровка);
ВнешниеПараметры = Новый Структура;
//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка);
//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Таб1);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
таб1.Записать("E:\Отчеты\Сотрудники.xls", ТипФайлаТабличногоДокумента.XLS);
Есть внешний отчет на СКД в ЗУП 3.1. В отчете в модуле объекта прописаны процедуры "ИнициализацияОтчета", "ПриКомпоновкеРезультата" и т.д. В процедурах происходит заполнение данных о представлениях + заполнение параметров.
Пытаюсь данный отчет программно сформировать и выгрузить в файл, но получаю пустой отчет. Подскажите, как можно вызвать процедуры из модуля объекта и сделать это корректно?
Сейчас использую вот такой код:
ОтчетСсылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Сотрудники");
ДвоичныеДанные = ОтчетСсылка.ХранилищеОбработки.Получить();
АдресХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
ИмяОбработки = ВнешниеОтчеты.Подключить(АдресХранилища);
ОтчетОб = ВнешниеОтчеты.Создать(ИмяОбработки, Истина);
Таб1 = Новый ТабличныйДокумент();
Настройки = ОтчетОб.СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
Дата1=Настройки.ПараметрыДанных.Элементы.Найти("Период");
Дата1.Значение=НачалоДня(ТекущаяДата());
Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(ОтчетОб.СхемаКомпоновкиДанных, Настройки, Расшифровка);
ВнешниеПараметры = Новый Структура;
//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка);
//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Таб1);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
таб1.Записать("E:\Отчеты\Сотрудники.xls", ТипФайлаТабличногоДокумента.XLS);
По теме из базы знаний
Найденные решения
В модуле объекта процедуры инициализации сделать экспортными, вызывать через ОтчетОб.<ИмяПроцедуры>()
Пустой с большой вероятностью из-за того, что не вызвана процедура ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета() и представления не заменены на реальные запросы.
Пустой с большой вероятностью из-за того, что не вызвана процедура ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета() и представления не заменены на реальные запросы.
ОтчетОбъект.<Имя отчета>
СкомпоноватьРезультат
Синтаксис:
СкомпоноватьРезультат(<Результат>, <ИнформацияРасшифровки>)
Параметры:
<Результат> (обязательный)
Тип: ТабличныйДокумент.
Табличный документ, в который будет выводиться результат.
<ИнформацияРасшифровки> (необязательный)
Переменная, в которую будет записана информация расшифровки.
Если не указано - расшифровка заполняться не будет.
Описание:
Выполняет компоновку.
СкомпоноватьРезультат
Синтаксис:
СкомпоноватьРезультат(<Результат>, <ИнформацияРасшифровки>)
Параметры:
<Результат> (обязательный)
Тип: ТабличныйДокумент.
Табличный документ, в который будет выводиться результат.
<ИнформацияРасшифровки> (необязательный)
Переменная, в которую будет записана информация расшифровки.
Если не указано - расшифровка заполняться не будет.
Описание:
Выполняет компоновку.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В модуле объекта процедуры инициализации сделать экспортными, вызывать через ОтчетОб.<ИмяПроцедуры>()
Пустой с большой вероятностью из-за того, что не вызвана процедура ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета() и представления не заменены на реальные запросы.
Пустой с большой вероятностью из-за того, что не вызвана процедура ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета() и представления не заменены на реальные запросы.
ОтчетОбъект.<Имя отчета>
СкомпоноватьРезультат
Синтаксис:
СкомпоноватьРезультат(<Результат>, <ИнформацияРасшифровки>)
Параметры:
<Результат> (обязательный)
Тип: ТабличныйДокумент.
Табличный документ, в который будет выводиться результат.
<ИнформацияРасшифровки> (необязательный)
Переменная, в которую будет записана информация расшифровки.
Если не указано - расшифровка заполняться не будет.
Описание:
Выполняет компоновку.
СкомпоноватьРезультат
Синтаксис:
СкомпоноватьРезультат(<Результат>, <ИнформацияРасшифровки>)
Параметры:
<Результат> (обязательный)
Тип: ТабличныйДокумент.
Табличный документ, в который будет выводиться результат.
<ИнформацияРасшифровки> (необязательный)
Переменная, в которую будет записана информация расшифровки.
Если не указано - расшифровка заполняться не будет.
Описание:
Выполняет компоновку.
По хорошему бы весь отчет. Может структура не установлена, может внешние источники есть, может представления запросов есть, может не устанавливается параметр. А может быть, было бы логичнее, вызывать команду которая будет возвращать табдок.
ТабДок = ВнешняяОбработка.ВыполнитьКоманду("Тест", ПараметрыКоманды);
ТабДок = ВнешняяОбработка.ВыполнитьКоманду("Тест", ПараметрыКоманды);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот