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

1С:Предприятие ::

Метки: 

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

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


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