В этом рецепте рассмотрим два быстрых способа, как вывести результат запроса в табличный документ. Без создания макета, без разметки областей.
Универсальный обход колонок
Первый вариант построен на динамической генерации областей с параметрами на основе обхода колонок результата запроса. Здесь преимущество в том, что этот прототип можно усложнять — навесить условное оформление, задать ширину колонок и т.п.
// Переменная Результат - результат запроса // Выводит любой результат с любыми колонками ТабДок = Новый ТабличныйДокумент; ТабДок.ТолькоПросмотр = Истина; ОбластьВывода = ТабДок.ПолучитьОбласть(1, 1, 1, Результат.Колонки.Количество()); Заголовки = Новый Структура; Для Счетчик = 1 По Результат.Колонки.Количество() Цикл Колонка = Результат.Колонки[Счетчик-1]; ОбластьЗаполнения = ОбластьВывода.Область(1, Счетчик, 1, Счетчик); ОбластьЗаполнения.Параметр = Колонка.Имя; ОбластьЗаполнения.ПараметрРасшифровки = Колонка.Имя; ОбластьЗаполнения.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Параметр; Заголовки.Вставить(Колонка.Имя, Колонка.Имя); КонецЦикла; ОбластьВывода.Параметры.Заполнить(Заголовки); ТабДок.Вывести(ОбластьВывода); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл ОбластьВывода.Параметры.Заполнить(Выборка); ТабДок.Вывести(ОбластьВывода); КонецЦикла; ТабДок.Показать();
С помощью построителя отчета
Незаслуженно забытый, ПостроительОтчета в пять строчек кода может сформировать табличный документ из результата запроса.
Построитель = Новый ПостроительОтчета; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Результат); ТабДок = Новый ТабличныйДокумент; Построитель.Вывести(ТабДок); ТабДок.Показать();
Нужно больше примеров и интересных материалов?
В закрытом Клубе для 1С разработчиков Alexcode.PRO вы найдете лонгриды и видео, посвященные интеграциям, запросам, СКД, JSON, и много чего еще.