|
Таблица значений как источник данных в отчете СКД - данные не выводятся в ТабДок |
☑ |
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
|
Если формировать отчет в процедуре ПриКомпоновкеРезультата модуля объекта, то все работает.
|
|