Имя: Пароль:
1C
1С v8
Т-13 программно в дерево значений
0 zippygrill
 
12.05.21
12:36
Привет!
Прошу вашей помощи, сам уже перестал понимать и искать причину почему результат отчета пустой. Проклятый какой то отчет.
Программно нужно сформировать т-13 в ЗУП последний релиз. Данные мне нужны в дереве значений. Все установленные параметры один в один с типовым отчетом при формировании (ПриКомпоновкиРезультата)
Вроде не впервые формирую отчеты программно, но этот непобедим..

    ОтчОб = отчеты.УнифицированнаяФормаТ13.Создать();
    ЗарплатаКадрыОтчеты.ПередНачаломКомпоновкиРезультата(ОтчОб);
    СхемаКомпоновкиДанных = ОтчОб.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    АдресВХ = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, Новый УникальныйИдентификатор);
    Настройки = ОтчОб.КомпоновщикНастроек.ПолучитьНастройки();
    ЗаполнитьСписокВидовВремени(Настройки);
    
    КомпоновщикНастроекКомпоновкиДанных = Новый КомпоновщикНастроекКомпоновкиДанных;        
    //КомпоновщикНастроекКомпоновкиДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
    КомпоновщикНастроекКомпоновкиДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресВХ));
    КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(Настройки);

    
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ПериодОтчета", СтандартныйПериод);
    ПараметрРассчитыватьПлановоеВремя = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("РассчитыватьПлановоеВремя"));
    ПараметрРассчитыватьПлановоеВремя.Использование = Истина;
    ПараметрРассчитыватьПлановоеВремя.Значение = Истина;
    
    Отбор = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Сотрудник");
    Отбор.ПравоеЗначение = Сотрудник;
    ОТбор.Использование = Истина;
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
        
    МакетКомпоновки = ЗарплатаКадрыОтчеты.МакетКомпоновкиДанныхДляКоллекцииЗначений(СхемаКомпоновкиДанных, Настройки);
    
    ПараметрыПолученияДанных = УчетРабочегоВремениРасширенный.ПараметрыПолученияДанныхУчетаВремени();
    ПараметрыПолученияДанных.ДатаНачала = "ДатаНачала";
    ПараметрыПолученияДанных.ДатаОкончания = "ДатаОкончания";
    УчетРабочегоВремениРасширенный.ПолученияДанныхУчетаВремениПослеКомпоновкиМакета(МакетКомпоновки.НаборыДанных.ДанныеОВремени, ПараметрыПолученияДанных);
    
    СоответствиеПользовательскихПолей = ЗарплатаКадрыОтчеты.СоответствиеПользовательскихПолей(Настройки);
    
    //Выполним компоновку с помощью процессора компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , , Истина);
        
    ДанныеОВремени = Новый ДеревоЗначений;
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ПроцессорВывода.УстановитьОбъект(ДанныеОВремени);
    
    // Обозначим начало вывода
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
1 zippygrill
 
12.05.21
13:22
апну
2 zippygrill
 
12.05.21
14:21
fgye
3 hhhh
 
12.05.21
14:42
(0) вот это точно правильно?

   СхемаКомпоновкиДанных = ОтчОб.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");


обычно в зуп схема компоновки вытаскивается откуда-то через задницу кучей общих модулей и формируется из четырех схем одна результирующая.
4 zippygrill
 
12.05.21
17:23
(3) К этому отчету одна единственная схема
5 hhhh
 
12.05.21
17:44
(4) всё равно проверьте, как она в зупе вытаскивается.
Программист всегда исправляет последнюю ошибку.