Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Таблица значений как источник данных в отчете СКД - данные не выводятся в ТабДок

Таблица значений как источник данных в отчете СКД - данные не выводятся в ТабДок
Я
   JastAMan
 
26.06.18 - 11:55
Решил вывести простую таблицу с одним полем и несколькими записями подключить к СКД, как источник данных.
Процесс вывода проходит без ошибок, только сами данные не выводятся в поле табличного документа.
В чем может быть причина?
Код процедуры:

    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Поле1");
    НСтр = ТЗ.Добавить();
    НСтр.Поле1 = "Значение1";
    НСтр = ТЗ.Добавить();
    НСтр.Поле1 = "Значение2";
    НСтр = ТЗ.Добавить();
    НСтр.Поле1 = "Значение3";
    НСтр = ТЗ.Добавить();
    НСтр.Поле1 = "Значение4";
    
    ВнешниеНаборыДанных =  Новый Структура("ТЗ", ТЗ);
    ЭлементыФормы.Результат.Очистить();
    

    // Сгенерируем макет компоновки данных при помощи компоновщика макета

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

    // В качестве схемы компоновки будет выступать схема самого отчета

    // В качестве настроек отчета - текущие настройки отчета

    // Данные расшифровки будем помещать в свойство расширения формы - ДанныеРасшифровки

    
    ВнешниеНаборыДанных = Новый Структура;
    ВнешниеНаборыДанных.Вставить("ТЗ", ТЗ);
    //ВнешниеНаборыДанных.Вставить("ДополнительныеСведения", Выборка);

    
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);

    // Создадим и инициализируем процессор компоновки

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных,ДанныеРасшифровки, Истина);

    // Создадим и инициализируем процессор вывода результата

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

    ПроцессорВывода.НачатьВывод();

    // Основной цикл вывода отчета

    Пока Истина Цикл

            // Получим следующий элемент результата компоновки

        ЭлементРезультата = ПроцессорКомпоновки.Следующий();

        Если ЭлементРезультата = Неопределено Тогда
            // Следующий элемент не получен - заканчиваем цикл вывода

            Прервать;

        Иначе
            // Элемент получен - выведем его при помощи процессора вывода

            ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);

        КонецЕсли;

    КонецЦикла;

    // Обозначем завершение вывода

    ПроцессорВывода.ЗакончитьВывод();
 
 
   Mankubus
 
1 - 26.06.18 - 12:17
(0) стандартнаяОбработка = Ложь написал?
   Малыш Джон
 
2 - 26.06.18 - 12:22
Хммм... ТЗ с нетипизированной колонкой в качестве внешнего набора данных не выдает ошибок?
всегда думал, что будет ругаться...надо проверить...
   JastAMan
 
3 - 26.06.18 - 12:25
(1) Да
   Малыш Джон
 
4 - 26.06.18 - 12:30
(3) а почему структуру в ВНД пихаешь? а если саму ТЗ?
   JastAMan
 
5 - 26.06.18 - 12:36
(4) Видел в более чем одном примере.
   Малыш Джон
 
6 - 26.06.18 - 12:40
(5) Ок, просто для информации спросил

возможно вот тут выходит из вывода

Если ЭлементРезультата = Неопределено Тогда
    Прервать;
   Гипервизор
 
7 - 26.06.18 - 12:45
(0) Типизируйте колонки!
(2) Ошибок не выдает, но и не работает, это подстава)
   JastAMan
 
8 - 26.06.18 - 13:14
Если формировать отчет в процедуре ПриКомпоновкеРезультата модуля объекта, то все работает.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует