Программное формирование отчета "Лицевые счета сотрудников" из ЗиУП 3.1

1. Scorpion1_77 24 10.08.21 17:22 Сейчас в теме
Подскажите, пожалуйста, что не хватает в данном коде для успешного программного формирования отчета "Лицевые счета сотрудников" из ЗиУП 3.1?

 
ДокументРезультат = Новый ТабличныйДокумент;	
ДокументРезультат.АвтоМасштаб = Истина;
	ДокументРезультат.ОтображатьЗаголовки = Ложь;
	ДокументРезультат.ОтображатьСетку = Ложь;

	ОтчетЛицевыеСчетаСотрудников = Отчеты.ЛицевыеСчетаСотрудников.Создать();
	
	ОтчетЛицевыеСчетаСотрудников.КомпоновщикНастроек.ЗагрузитьНастройки(ОтчетЛицевыеСчетаСотрудников.СхемаКомпоновкиДанных.ВариантыНастроек.Т54.Настройки);
	
	ПериодОтчета = Новый СтандартныйПериод;
	ПериодОтчета.ДатаНачала    = НачалоДня(НачалоПериода);
	ПериодОтчета.ДатаОкончания = КонецДня(ОкончаниеПериода);
	
	ОтчетЛицевыеСчетаСотрудников.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("Период", ПериодОтчета);
	
ОтчетЛицевыеСчетаСотрудников.СкомпоноватьРезультат(ДокументРезультат);
Показать
Найденные решения
7. Scorpion1_77 24 13.08.21 10:37 Сейчас в теме
Вот требуемый код. Возможно кому-то поможет.
ДокументРезультат = Новый ТабличныйДокумент;	
		
	ОтчетОбъект = Отчеты.ЛицевыеСчетаСотрудников.Создать();
	ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета(ОтчетОбъект);
	
	ВариантОтчета = ОтчетОбъект.СхемаКомпоновкиДанных.ВариантыНастроек.Найти("Т54");
	НастройкиОтчета = ВариантОтчета.Настройки;
	
	СтруктураПараметров = Новый Структура;
	СтруктураПараметров.Вставить("Период",        Новый СтандартныйПериод(НачалоДня(НачалоПериода), КонецДня(ОкончаниеПериода)));
	СтруктураПараметров.Вставить("НачалоПериода", НачалоДня(ОкончаниеПериода));
	СтруктураПараметров.Вставить("КонецПериода",  КонецДня(ОкончаниеПериода));
	
	Для каждого ПараметрЗаполнения Из СтруктураПараметров Цикл
		
		ПараметрКомпоновкиДанных = Новый ПараметрКомпоновкиДанных(ПараметрЗаполнения.Ключ);
		ЗначениеПараметра = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновкиДанных);
		Если ЗначениеПараметра <> Неопределено Тогда
			ЗначениеПараметра.Значение = ПараметрЗаполнения.Значение;
			ЗначениеПараметра.Использование = Истина;
		Иначе
			НовыйПараметр = НастройкиОтчета.ПараметрыДанных.Элементы.Добавить();
			НовыйПараметр.Параметр = ПараметрКомпоновкиДанных;
			НовыйПараметр.Значение = ПараметрЗаполнения.Значение;
			НовыйПараметр.Использование = Истина;
		КонецЕсли;
		
	КонецЦикла;

	ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(НастройкиОтчета.Отбор, 
		"Организация", 
		Объект.Организация, 
		ВидСравненияКомпоновкиДанных.Равно, , Истина);

	ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета);	
	ОтчетОбъект.СкомпоноватьРезультат(ДокументРезультат);
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VmvLer 10.08.21 17:57 Сейчас в теме
не хватает фундамента - данные уходят в вакуум.
хотя туманность весьма обширна.
3. Scorpion1_77 24 10.08.21 18:04 Сейчас в теме
(2) Хотелось бы конкретики батенька...
4. user958326 11.08.21 00:53 Сейчас в теме
возьмите готовое и посмотрите его как пример
https://infostart.ru/public/1061797/
5. Scorpion1_77 24 12.08.21 11:24 Сейчас в теме
(4) Спасибо за Ваш ответ, но это не то, что мне нужно.
Мне нужно программно (НЕ интерактивно) вызвать на исполнение типовой отчет "ЛицевыеСчетаСотрудников" и вернуть его результат в виде табличного документа, который далее сохранить в справочнике файлы.

В присланной Вами ссылке на публикацию отчет разработанный на основе типового, который запускается на исполнение интерактивно.
6. user958326 12.08.21 13:57 Сейчас в теме
(5) ну так насколько помню там все параметры нужные вам для запроса перечислены, а дальше дело техники запрос написать, или вам сразу надо было готовый сделать за вас?
7. Scorpion1_77 24 13.08.21 10:37 Сейчас в теме
Вот требуемый код. Возможно кому-то поможет.
ДокументРезультат = Новый ТабличныйДокумент;	
		
	ОтчетОбъект = Отчеты.ЛицевыеСчетаСотрудников.Создать();
	ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета(ОтчетОбъект);
	
	ВариантОтчета = ОтчетОбъект.СхемаКомпоновкиДанных.ВариантыНастроек.Найти("Т54");
	НастройкиОтчета = ВариантОтчета.Настройки;
	
	СтруктураПараметров = Новый Структура;
	СтруктураПараметров.Вставить("Период",        Новый СтандартныйПериод(НачалоДня(НачалоПериода), КонецДня(ОкончаниеПериода)));
	СтруктураПараметров.Вставить("НачалоПериода", НачалоДня(ОкончаниеПериода));
	СтруктураПараметров.Вставить("КонецПериода",  КонецДня(ОкончаниеПериода));
	
	Для каждого ПараметрЗаполнения Из СтруктураПараметров Цикл
		
		ПараметрКомпоновкиДанных = Новый ПараметрКомпоновкиДанных(ПараметрЗаполнения.Ключ);
		ЗначениеПараметра = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновкиДанных);
		Если ЗначениеПараметра <> Неопределено Тогда
			ЗначениеПараметра.Значение = ПараметрЗаполнения.Значение;
			ЗначениеПараметра.Использование = Истина;
		Иначе
			НовыйПараметр = НастройкиОтчета.ПараметрыДанных.Элементы.Добавить();
			НовыйПараметр.Параметр = ПараметрКомпоновкиДанных;
			НовыйПараметр.Значение = ПараметрЗаполнения.Значение;
			НовыйПараметр.Использование = Истина;
		КонецЕсли;
		
	КонецЦикла;

	ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(НастройкиОтчета.Отбор, 
		"Организация", 
		Объект.Организация, 
		ВидСравненияКомпоновкиДанных.Равно, , Истина);

	ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета);	
	ОтчетОбъект.СкомпоноватьРезультат(ДокументРезультат);
Показать
Оставьте свое сообщение

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