В начало

«Список договоров» через КЗОР

 

            Необходимо построить простенький отчет «Список договоров», используя конструктор отчета с обработкой результата.

            Итак, создаем пустой отчет в дереве объектов конфигуратора, на закладке «Основные» задаем ему имя и переходим на закладку «Фомы».

            На закладке «Формы» создаем форму отчета. На закладке «Реквизиты» формы отчета добавляем реквизит «ТабДок» с типом табличный документ и перетаскиваем его мышкой в левое окно. Затем идем на закладку «Команды – Команды формы» и создаем кнопку для формирования отчета, задаем имя «Сформировать», создаем действие для нее и также перетаскиваем мышкой в левое окно. При этом в нижней части будет выведен предварительный просмотр формы отчета.

Рис. 1. Форма отчета

Рис. 1. Форма отчета

 

            Затем нужно перейти в модуль формы, там нами были созданы 2 шаблона процедуры для формирования отчета. Во первых нужно передать «ТабДок» в качестве параметра процедуры «СформироватьНаСервере», а во вторых поместить курсор в тело этой процедуры и выбрать в главном меню конфигуратора «Текст – Конструктор запроса с обработкой результата…». После чего он собственно и запуститься.

Таблица 1. Закладки конструктора запроса с обработкой результата (КЗОР)

Закладка

Что нужно сделать

Обработка результата

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

Таблицы и поля

В справочнике «Договоры» выбрать поля: Наименование и Владелец

Объединения/Псевдонимы

Переименовать поле «Владелец» в «Контрагент»

            Далее можно закрыть КЗОР, при этом будет создан макет отчета и заполнено тело процедуры «СформироватьНаСервере(ТабДок)».

            Макет можно слегка откорректировать, добавив заголовок, изменив шрифт надписей и выделение полей.

Рис. 2. Немного отформатированный авто-макет отчета

Рис. 2. Немного отформатированный авто-макет отчета

 

            Текст процедур, на всякий случай показан ниже.

Листинг 1. Модуль формы и процедуры

&НаСервереБезКонтекста

Процедура СформироватьНаСервере(ТабДок)

      //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

      // Данный фрагмент построен конструктором.

      // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

     

      Макет = ОтчетыписокДоговоровЧерезКЗОР.ПолучитьМакет("Макет");

      Запрос = Новый Запрос;

      Запросекст =

            "ВЫБРАТЬ

            |     Договорыаименование,

            |     Договорыладелец КАК Контрагент,

            |     ПРЕДСТАВЛЕНИЕ(Договорыладелец)

            |ИЗ

            |     Справочникоговоры КАК Договоры";

     

      РезультатЗапроса = Запросыполнить();

     

      ОбластьЗаголовок = МакетолучитьОбласть("Заголовок");

      ОбластьПодвал = МакетолучитьОбласть("Подвал");

      ОбластьШапкаТаблицы = МакетолучитьОбласть("ШапкаТаблицы");

      ОбластьПодвалТаблицы = МакетолучитьОбласть("ПодвалТаблицы");

      ОбластьДетальныхЗаписей = МакетолучитьОбласть("Детали");

     

      ТабДокчистить();

      ТабДокывести(ОбластьЗаголовок);

      ТабДокывести(ОбластьШапкаТаблицы);

      ТабДокачатьАвтогруппировкуСтрок();

     

      ВыборкаДетальныеЗаписи = РезультатЗапросаыбрать();

     

      Пока ВыборкаДетальныеЗаписиледующий() Цикл

            ОбластьДетальныхЗаписейараметры.Заполнить(ВыборкаДетальныеЗаписи);

            ТабДокывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());

      КонецЦикла;

     

      ТабДокакончитьАвтогруппировкуСтрок();

      ТабДокывести(ОбластьПодвалТаблицы);

      ТабДокывести(ОбластьПодвал);

      //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

КонецПроцедуры

 

&НаКлиенте

Процедура Сформировать(Команда)

      СформироватьНаСервере(ТабДок);

КонецПроцедуры

            Далее запускаем режим «1Средприятие», находим и формируем отчет.

Рис. 3. Сформированный отчет «Список договоров»

Рис. 3. Сформированный отчет «Список договоров»

 

ПРИМЕЧАНИЕ: отчет создан в версии 8.3.