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