Top.Mail.Ru

Вывод результата запроса в табличный документ

В этом рецепте рассмотрим два быстрых способа, как вывести результат запроса в табличный документ. Без создания макета, без разметки областей.

Универсальный обход колонок

Первый вариант построен на динамической генерации областей с параметрами на основе обхода колонок результата запроса. Здесь преимущество в том, что этот прототип можно усложнять — навесить условное оформление, задать ширину колонок и т.п.

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

С помощью построителя отчета

Незаслуженно забытый, ПостроительОтчета в пять строчек кода может сформировать табличный документ из результата запроса.

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

Нужно больше примеров и интересных материалов?

В закрытом Клубе для 1С разработчиков Alexcode.PRO вы найдете лонгриды и видео, посвященные интеграциям, запросам, СКД, JSON, и много чего еще.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *