Имя: Пароль:
1C
 
отчет скд. сформировать программно и выставить структуру
0 lamme
 
17.05.22
11:08
Есть отчет на скд.
Я его програмно формирую. Результат сохраняю в ексель.
Но!

если открыть отчет штатно - то там есть группировка по номенклатуре
а при программном построении отчета - этой группировки нет.

По коду опять таки
везде стоит - что поля Номенклатура и все что на уровне номенклатуры идет - выводить
https://skr.sh/sDzfK2f0XhL


те не выводится вот этот уровень структуры отчета
https://skr.sh/sDzq9CAKH7q

Подскажите - что проглядел и как поправить?

Код формирования отчета :

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

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


    
    НастройкиОСКД = МакетКомпоновки.НастройкиПоУмолчанию;
    
    ПериодОтчета = НастройкиОСКД.ПараметрыДанных.Элементы.Найти("СтПериод");
    ПериодОтчета.Значение.ДатаНачала         = Началомесяца(ДобавитьМесяц(ТекущаяДата(),-2));    
    ПериодОтчета.Значение.ДатаОкончания        = Началомесяца(ДобавитьМесяц(ТекущаяДата(), 2));    
    ПериодОтчета.Использование = истина;
    
    
    
    ВидЦен = НастройкиОСКД.ПараметрыДанных.Элементы.Найти("ВидЦен");
    ВидЦен .Использование = истина;
    ВидЦен.значение = справочники.ВидыЦен.НайтиПоКоду("00004");


        
    
    НовЭлемент = НастройкиОСКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    НовЭлемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Изготовитель");
    НовЭлемент.Использование = истина;
    НовЭлемент.правоезначение =   Справочники.СтруктурныеЕдиницы.НайтиПоКоду( "3");
    
    
    
    НовЭлемент = НастройкиОСКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    НовЭлемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КоличествоКонечныйОстаток");
    НовЭлемент.Использование = ложь;

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

    ИмяФайла_ = Формат(ТекущаяДата(),"ДФ='yyyy-MM-dd HH-mm-ss'");

    Результат.Записать("D:\tmp\"+ИмяФайла_+".xls",ТипФайлаТабличногоДокумента.XLS);