|
проблема с программным выводом СКД в ТЗ | ☑ | ||
---|---|---|---|---|
0
Chern55
17.10.24
✎
10:40
|
Есть обработка, СКД без программного вывода отрабатывает корректно, в программном выводе ТЗ выводится пустой.
процедура следующая: ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); СхемаКомпоновкиДанных = ОтчетОбъект.СхемаКомпоновкиДанных; КомпоновщикНастроек = ОтчетОбъект.КомпоновщикНастроек; //КомпоновщикНастроек.Настройки.Структура.Получить(0).поляГруппировки.Элементы[0].использование = ложь; Настройки = КомпоновщикНастроек.ПолучитьНастройки(); СтандартныйПериод = Настройки.ПараметрыДанных.Элементы.Найти("Период"); ЭД = Настройки.ПараметрыДанных.Элементы.Найти("Дата1"); ЭД.Значение = СтандартныйПериод.значение.датаначала; ЭД.Использование = Истина; ЭД = Настройки.ПараметрыДанных.Элементы.Найти("Дата2"); ЭД.Значение = СтандартныйПериод.значение.датаокончания; ЭД.Использование = Истина; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"),,); //МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки ,,,); Для каждого Элемент из МакетКомпоновки.ЗначенияПараметров Цикл Если ТипЗнч(Элемент.Значение) = Тип("ВыражениеКомпоновкиДанных") Тогда Элемент.Значение = Вычислить(Элемент.Значение); КонецЕсли; КонецЦикла; ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,,истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; //ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ТЗ = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина); при точке останова на строке ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,,истина); в МакетеКомпоновки данные параметров заполнены, все остальное вроде тоже нормально. Не могу разобраться.. |
|||
2
mikecool
17.10.24
✎
11:15
|
а это зачем?
Для каждого Элемент из МакетКомпоновки.ЗначенияПараметров Цикл Если ТипЗнч(Элемент.Значение) = Тип("ВыражениеКомпоновкиДанных") Тогда Элемент.Значение = Вычислить(Элемент.Значение); КонецЕсли; КонецЦикла; |
|||
3
mikecool
17.10.24
✎
11:16
|
в общем - ставишь точку останова после формирования макета и смотришь, что конкретно в нем есть - какой текст запроса, параметры и т.п.
|
|||
4
Chern55
17.10.24
✎
11:56
|
(2) без этого кода в полученном макете значение параметров отображается как выражение (как задано в СКД), то есть например Справочники.ЗначенияСвойствАналитикиСотрудника.НайтиПоКоду("000000134"), а с этим костылем уже полученное значение этого выражения. хотя что так, что так результат нулевой
|
|||
5
Chern55
17.10.24
✎
11:58
|
(3) да вроде все есть, параметры есть, набор данных с запросами
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |