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