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