1С-Предприятие 8.0. Практическое пособие разработчика

Создание универсального отчета


Мы с вами рассмотрим один из вариантов использования построителя отчета, в котором результаты отчета будут выводиться в сводную таблицу.

Создадим в конфигураторе новый объект конфигурации Отчет "Универсальный". Этот отчет будет иметь реквизит "ПостроительОтчета", с типом ПостроительОтчета.

В модуле отчета создадим текст запроса для построителя отчета. Для этого вставим в модуль следующие строки:

ПостроительОтчета.Текст =

;

Установим курсор перед символом точки с запятой и вызовем конструктор запросов (Текст

Конструктор запроса...).

В качестве таблицы выберем виртуальную таблицу регистра накопления "Продажи.Обороты". Из этой таблицы выберем все поля:



Ha закладке "Итоги" укажем получение общих итогов и выберем все ресурсы регистра:


[211]

Нажмем "OK". B модуле отчета появится текст сформированного запроса:

ПостроительОтчета.Текст =

"ВЫБРАТЬ

|    ПродажиОбороты.Номенклатура,

|    ПродажиОбороты.Номенклатура.Представление,

|    ПродажиОбороты.Клиент,

|    ПродажиОбороты.Клиент.Представление,

|    ПродажиОбороты.Мастер,

|    ПродажиОбороты.Мастер.Представление,

|    ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,

|    ПродажиОбороты.ВыручкаОборот КАК ВыручкаОборот,

|    ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот

|ИЗ

|    РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

|ИТОГИ

|    СУММА(КоличествоОборот),

|    СУММА(ВыручкаОборот),

|    СУММА(СтоимостьОборот)

|ПО

|    ОБЩИЕ";

Добавим в текст запроса указания для построителя отчетов:

ПостроительОтчета.Текст =

"ВЫБРАТЬ

|    ПродажиОбороты.Номенклатура,

|    ПродажиОбороты.Номенклатура.Представление,

|    ПродажиОбороты.Клиент,




|    ПродажиОбороты.Клиент.Представление,

|    ПродажиОбороты.Мастер,

|    ПродажиОбороты.Мастер.Представление,

|    ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,

|    ПродажиОбороты.ВыручкаОборот КАК ВыручкаОборот,

|    ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот

|ИЗ

|    РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

|{ИТОГИ ПО Номенклатура, Клиент, Мастер}

|ИТОГИ

|    СУММА(КоличествоОборот),

|    СУММА(ВыручкаОборот),

|    СУММА(СтоимостьОборот)

|ПО

|    ОБЩИЕ";[212]

Теперь создадим форму отчета и расположим на ней поле табличного документа (Форма
Вставить элемент управления
Поле табличного документа) с именем "ПолеТабличногоДокумента":

Расположим в форме поле табличного документа



Затем установим курсор в верхнюю левую ячейку поля табличного документа и выполним Таблица
Встроенные таблицы
Вставить сводную таблицу.

После этого создадим обработчик события формы отчета "При открытии", и добавим в него следующий текст:

Процедура ПриОткрытии()

   СводнаяТаблица = ЭлементыФормы.ПолеТабличногоДокумента.ВстроенныеТаблицы.СводнаяТаблица1;

   СводнаяТаблица.ИсточникДанных = ПостроительОтчета;

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

Этим текстом мы устанавливаем сводной таблице в качестве источника данных построитель отчета.[213]

Запустим 1С:Предприятие в режиме отладки и откроем отчет "Универсальный". На экране появится форма отчета, и окно выбора полей сводной таблицы:



Поместим значение ресурса "ВыручкаОборот" в данные, измерение "Номенклатура" в строки, а измерение "Мастер" в колонки. Отчет примет вид:



[214]

Теперь в окне выбора полей сводной таблицы раскроем группу "Номенклатура" и добавим значение "(Без иерархии)" в строки, а измерение "Клиент" добавим в колонки. Отчет изменит свой вид:



Таким образом, используя построитель отчета, мы предоставили пользователю возможность самостоятельно формировать отчет по регистру "ОказанныеУслуги" в том виде, который ему нужен.[215]


Содержание раздела