Программное формрование отчета на СКД

1. D_e_X_T_e_R 575 27.10.20 11:41 Сейчас в теме
Доброго времени.

Хочу получить результат отчета СКД в виде таблицы значений.

В схеме СКД 4 запроса, которые связаны между собой.

Код:

ТаблицаИтог = Новый ТаблицаЗначений;
    
Схема = Отчеты.МойОтчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = Схема.НастройкиПоУмолчанию;

//Далее идет установка параметров
ЗначениеПараметра = Настройки.ПараметрыДанных.Элементы.Добавить();
ЗначениеПараметра.Параметр = Новый ПараметрКомпоновкиДанных("Парам1");
ЗначениеПараметра.Значение = ЗначениеПараметра1;
ЗначениеПараметра.Использование = Истина;

//и так параметров 10, все сделаны по аналогиии с тем, как они заданы в форме отчета.

//Далее отбор

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


//Сам вывод в ТЗ

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


В итоге в ТЗ данные выводятся, но не попадают показатели в разрезе дней. Данные показатели - это вычисляемые поля в СКД.
Если формировать отчет в режиме пользователя, то все выходит как надо.

Почему могут не попадать данные в разрезе дней?

Настройки отладкой смотрел, там все значения выставлены.
Вариант в отчете 1.

Самое интересное итоги выводит в ТЗ корректно, то есть данные по дням система видит, но не выводит.
Найденные решения
8. D_e_X_T_e_R 575 27.10.20 15:30 Сейчас в теме
Разобрался в общем, в последней группировке по дня, выбранные поля были указаны не все, видимо дополняли их пользовательскими настройками. В итоге влез программно в последнюю группировку в СКД и добавил поля выбора. После этого расчет пошел.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 27.10.20 11:46 Сейчас в теме
Может быть
Настройки = КомпоновщикНастроек.ПолучитьНастройки()
вместо
Настройки = Схема.НастройкиПоУмолчанию
3. D_e_X_T_e_R 575 27.10.20 11:48 Сейчас в теме
(2)
КомпоновщикНастроек.ПолучитьНастройки(


Это если бы я делал это в форме отчета. Я делаю это в обработке. Из нее не видит КомпоновщикНастроек.
4. SlavaKron 27.10.20 11:59 Сейчас в теме
(3) КомпоновщикНастроек - это свойство объекта отчета, оно с формой не связано. В вашем случае это
ОтчетОбъект = Отчеты.МойОтчет.Создать();
Настройки = ОтчетОбъект.КомпоновщикНастроек.ПолучитьНастройки();
D_e_X_T_e_R; +1 Ответить
5. D_e_X_T_e_R 575 27.10.20 12:02 Сейчас в теме
Сейчас попробую так, просто раньше делал перехваты и хватало только схемы и ее настроек.
6. SlavaKron 27.10.20 12:20 Сейчас в теме
(5)
хватало только схемы и ее настроек
Да мне тоже так кажется, не мешало бы посмотреть на саму схему.
7. D_e_X_T_e_R 575 27.10.20 12:28 Сейчас в теме
(6)С компоновщиком настроек получился тот же результат. Данные в разрезе дней не выходят.
Смотрю саму схему в отладчике и с виду не за что зацепиться.
8. D_e_X_T_e_R 575 27.10.20 15:30 Сейчас в теме
Разобрался в общем, в последней группировке по дня, выбранные поля были указаны не все, видимо дополняли их пользовательскими настройками. В итоге влез программно в последнюю группировку в СКД и добавил поля выбора. После этого расчет пошел.
Оставьте свое сообщение

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