|
Таблица значений как источник данных в отчете СКД - данные не выводятся в ТабДок | ☑ | ||
---|---|---|---|---|
0
JastAMan
26.06.18
✎
11:55
|
Решил вывести простую таблицу с одним полем и несколькими записями подключить к СКД, как источник данных.
Процесс вывода проходит без ошибок, только сами данные не выводятся в поле табличного документа. В чем может быть причина? Код процедуры: ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Поле1"); НСтр = ТЗ.Добавить(); НСтр.Поле1 = "Значение1"; НСтр = ТЗ.Добавить(); НСтр.Поле1 = "Значение2"; НСтр = ТЗ.Добавить(); НСтр.Поле1 = "Значение3"; НСтр = ТЗ.Добавить(); НСтр.Поле1 = "Значение4"; ВнешниеНаборыДанных = Новый Структура("ТЗ", ТЗ); ЭлементыФормы.Результат.Очистить(); // Сгенерируем макет компоновки данных при помощи компоновщика макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; // В качестве схемы компоновки будет выступать схема самого отчета // В качестве настроек отчета - текущие настройки отчета // Данные расшифровки будем помещать в свойство расширения формы - ДанныеРасшифровки ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("ТЗ", ТЗ); //ВнешниеНаборыДанных.Вставить("ДополнительныеСведения", Выборка); МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки); // Создадим и инициализируем процессор компоновки ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных,ДанныеРасшифровки, Истина); // Создадим и инициализируем процессор вывода результата ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат); // Обозначим начало вывода ПроцессорВывода.НачатьВывод(); // Основной цикл вывода отчета Пока Истина Цикл // Получим следующий элемент результата компоновки ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата = Неопределено Тогда // Следующий элемент не получен - заканчиваем цикл вывода Прервать; Иначе // Элемент получен - выведем его при помощи процессора вывода ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЕсли; КонецЦикла; // Обозначем завершение вывода ПроцессорВывода.ЗакончитьВывод(); |
|||
1
Mankubus
26.06.18
✎
12:17
|
(0) стандартнаяОбработка = Ложь написал?
|
|||
2
Малыш Джон
26.06.18
✎
12:22
|
Хммм... ТЗ с нетипизированной колонкой в качестве внешнего набора данных не выдает ошибок?
всегда думал, что будет ругаться...надо проверить... |
|||
3
JastAMan
26.06.18
✎
12:25
|
(1) Да
|
|||
4
Малыш Джон
26.06.18
✎
12:30
|
(3) а почему структуру в ВНД пихаешь? а если саму ТЗ?
|
|||
5
JastAMan
26.06.18
✎
12:36
|
(4) Видел в более чем одном примере.
|
|||
6
Малыш Джон
26.06.18
✎
12:40
|
(5) Ок, просто для информации спросил
возможно вот тут выходит из вывода Если ЭлементРезультата = Неопределено Тогда Прервать; |
|||
7
Гипервизор
26.06.18
✎
12:45
|
(0) Типизируйте колонки!
(2) Ошибок не выдает, но и не работает, это подстава) |
|||
8
JastAMan
26.06.18
✎
13:14
|
Если формировать отчет в процедуре ПриКомпоновкеРезультата модуля объекта, то все работает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |