Как создать отчет «Анализ продаж» с использованием построителя отчета?

Начинаем создавать отчет Анализ продаж. Новый отчет.

Здравствуйте, уважаемые читатели блога SoftMaker.kz! Не так давно здесь, на этом сайте была выложена обработка, в которой приводился небольшой пример того, как программно вывести табличное поле в табличный документ, используя построитель отчета. Сегодня будет подробно описано, как с помощью построителя отчета получить полноценно работающий отчет. Ну что же, приступим.

Давайте откроем Конфигуратор и в дереве метаданных конфигурации найдём ветку “Отчеты”. Нажмём правую кнопку мыши и выберем пункт «Новый отчет».

Начинаем создавать отчет Анализ продаж. Новый отчет.

Зададим имя отчета – «Анализ продаж».

Имя — Анализ продаж

С помощью этого отчета мы будем получать данные о продажах из регистра Продажи и просматривать их в таблице, а также в виде графика. Давайте передём на закладку «Формы» и создадим новую форму, используя «Конструктор формы отчета».

Создание новой формы при помощи Конструктора формы отчета

Появился диалог создания формы нажимаем кнопку «Готово».

Диалог создания формы

В меню «Форма» главного меню Конфигуратора выбираем пункт «Вставить элемент управления».

Вставляем новый элемент управления

В открывшемся списке выбираем «Поле табличного документа».

Выбираем Поле табличного документа

Вставляем «Поле табличного документа» на форму.

Поле табличного документа на форме

Для создания отчетов удобно применять специальный объект — «Построитель Отчета». Используем его. Переходим на закладку «Реквизиты» и вводим новый реквизит. Имя реквизита — «Построитель». Тип данных — «Построитель отчета».

Ввод реквизита - Построитель

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

Формируем текст запроса для построителя

В Конструкторе запроса Открываем группу «РегистрыНакопления», выбираем «ПродажиОбороты» и переносим
в пoлe «Таблицы», используя кнопку «>». Далее, открываем группу ПродажиОбороты и переносим в пoлe «Поля» следующие реквизиты: Контрагент, Представление, Товар, Представление и СуммаОборот, также используя кнопку «>».

Выбираем поля для запроса

Переходим на закладку «Итоги». Переносим в группировочное пoлe реквизиты Контрагент и Товар. В «Суммируемое пoлe» переносим СуммаОборот. «Общие Итоги» — устанавливаем флаг. Нажимаем кнопку «ОК».

Формируем итоги запроса

Конструктор запроса сформировал текст запроса. В конце текста запроса ставим точку с запятой.

Построитель.Текст = “ВЫБРАТЬ
| ПродажиОбороты.Контрагент КАК Контрагент,
| ПродажиОбороты.Контрагент.Представление,
| ПродажиОбороты.Товар КАК Товар,
| ПродажиОбороты.Товар Представление,
| ПродажиОбороты.СуммаОборот КАК СуммаОборот
|ИЗ
| РегистрНакопления.ПродажиОбороты КАК ПродажиОбороты
|
|ИТОГИ СУММА(СуммаОБорот) ПО
| ОБЩИЕ,
| Контрагент,
| Товар”;

Чтобы построитель отчета смог использовать результаты этого запроса его нужно настроить. Для этого напишем одну строчку кода, сразу после текста запроса.

Построитель.ЗаполнитьНастройки();

Как и у любой другой кнопки, у кнопки «Сформировать» существует обработчик события, который выполняется при нажатии этой кнопки. Он называется «КнопкаСформироватьНажатие». Эта процедура описывается в модуле формы. Осталось добавить несколько строк кода в эту процедуру. Посмотрите похожий пример вывода отчета с помощью построителя отчета.

а

Процедура  КнопкаСформироватьНажатие(Элемент)
Построитель.Выполнить();
ЭлементыФормы.ПолеТабличногоДокумента1.Очистить();
Построитель.Вывести(ЭлементыФормы.ПолеТабличногоДокумента1);
КонецПроцедуры

А сейчас выберем для нашей таблицы макет оформления.

Построитель.МакетОформления =
ПолучитьМакетОформления(СтандартноеОформление.Интерфейс);

Переходим на закладку «Диалог». Предусмотрим в отчете условия отбора. Для этого в верхнюю часть формы вставляем новый элемент управления.

Вставляем новый элемент управления

Этот новый элемент управления – Табличное поле.

Новый элемент управления - Табличное поле

Данные табличного поля — Построитель -> Отбор.

Построитель -> Отбор”/>
</p>
<p>Теперь добавим в наш отчет возможность группировки данных по строкам и колонкам. В верхнюю часть формы вставляем ещё одно табличное поле. Данные табличного поля — Построитель -> ИзмеренияСтроки.</p>
<p><!--more--><!-- adman_adcode (middle, 3) --><script async src=

Построитель -> ИзмеренияСтроки”/>
</p>
<p>Добавляем третье табличное пoлe. Данные табличного поля — Построитель -> ИзмеренияКолонки.</p>
<p align= Построитель -> ИзмеренияКолонки”/>
</p>
<p> На этом мы закончили разработку таблицы. Сейчас, для представления данных в графическом виде, добавим в наш отчет диаграмму. Форма -> Вставить Элемент управления -> Диаграмма.
</p>
<p align= Новый элемент управления - Диаграмма

Между таблицей и диаграммой вставим разделитель.

Вертикальный разделитель

Также вставим в отчет горизонтальный разделитель.

Горизонтальный разделитель

Переходим на закладку «Модуль». Добавляем одну строку кода в процедуру «КнопкаСформироватьНажатие».

Поcтроитель.Вывести(ЭлементыФормы.Диаграмма1);

Разработка отчета «Анализ продаж» закончена. Полный код модуля формы можно увидеть ниже.

Процедура  КнопкаСформироватьНажатие(Элемент)
Построитель.Выполнить();
Поcтроитель.Вывести(ЭлементыФормы.Диаграмма1);
ЭлементыФормы.ПолеТабличногоДокумента1.Очистить();
Построитель.Вывести(ЭлементыФормы.ПолеТабличногоДокумента1);
КонецПроцедуры

Построитель.Текст = “ВЫБРАТЬ
| ПродажиОбороты.Контрагент КАК Контрагент,
| ПродажиОбороты.Контрагент.Представление,
| ПродажиОбороты.Товар КАК Товар,
| ПродажиОбороты.Товар Представление,
| ПродажиОбороты.СуммаОборот КАК СуммаОборот
|ИЗ
| РегистрНакопления.ПродажиОбороты КАК ПродажиОбороты
|
|ИТОГИ СУММА(СуммаОБорот) ПО
| ОБЩИЕ,
| Контрагент,
| Товар”;
Построитель.ЗаполнитьНастройки();
Построитель.МакетОформления =
ПолучитьМакетОформления(СтандартноеОформление.Интерфейс);

В режиме 1С:Предприятие 8 наш отчет выглядит следующим образом:

Горизонтальный разделитель

Как видно на рисунке первое табличное поле служит для отбора (фильтрации) данных. Например, по определенному товару.

Второе табличное поле указывает, что элементы, например поля «Контрагенты» будут выводиться в строке. Можно сюда добавить и поле «Товары», его элементы, также будут выводиться в строке.

Третье табличное поле указывает, что элементы, например поля «Товары» будут выводиться в колонке. Можно сюда добавить и поле «Контрагенты», его элементы, также будут выводиться в колонке.

Понятно, что «Поле табличного документа» и «Диаграмма» служат для представления информации в наглядном для пользователя виде.

Этот блог читают уже более 3000 человек
- читай и ТЫ!

8 ответы
  1. Александр says:

    Прошу прощения, не увидел строчку "просмотр только для зарегистрированных". За статью спасибо.

    Ответить
  2. Марк says:

    Помогите у меня в конце ошибка
    Переменная не определена (Поcтроитель)
    <<?>>Поcтроитель.Вывести(ЭлементыФормы.Диаграмма1);

    Ответить
  3. Softmaker says:

    Здравствуйте! Создайте реквизит формы <<Построитель>>, как указано в статье на восьмом изображении.

    Ответить

Ответить

Want to join the discussion?
Feel free to contribute!

Добавить комментарий

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