Часто в отчетах требуется вывести данные за период с промежуточными итогами по дням, месяцам, полугодиям и т. п. Для этого нужно сгруппировать данные по этим периодам. При разработке отчета в схеме компоновки данных нужно добавить в набор доступных полей поля-периоды и создать группировки по этим полям в настройках отчета. Затем вывести в отчет поля ресурсов отчета, чтобы для каждой группировки были посчитаны промежуточные итоги.
Для примера рассмотрим Отчет по продажам. Данные в нем сгруппированы по периодам Месяц и День.
Чтобы добавить поля-периоды в набор данных, нужно задать периодичность виртуальной таблицы, из которой извлекаются данные. В данном случае это таблица Продажи.Обороты. Откроем конструктор запроса и вызовем диалог параметров виртуальной таблицы. Для этого в списке таблицы нужно нажать кнопку Параметры виртуальной таблицы (рис. 3.257).
Рис. 3.257. Выбор периодичности виртуальной таблицы
В открывшемся диалоге можно выбрать различные значения параметра Периодичность. В зависимости от выбранной периодичности виртуальной таблицы становятся доступными различные поля-периоды. В данном отчете выбрана периодичность Авто. Это наиболее универсальный вариант. Раскрыв список полей таблицы, мы можем перенести в список полей запроса следующие поля (рис. 3.258).
Рис. 3.258. Доступные поля-периоды виртуальной таблицы с периодичностью «Авто»
В отчете выбраны поля-периоды ПериодДень и ПериодМесяц. При включенном свойстве Автозаполнение () платформа заполнит в роли полей свойство Период. На основании этой информации будут рассчитываться итоги по этим полям.
Затем в структуру отчета добавляются группировки по полям-периодам. В группировку Контрагент добавляется группировка по полю ПериодМесяц, и в нее вкладывается группировка ПериодДень. Группировка ПериодДень также добавляется в точки диаграммы, но ее для наглядности лучше отключить. В отчет выводится ресурс Стоимость для вывода итога по группировкам (рис. 3.259).
Рис. 3.259. Добавление группировок периодов в структуру отчета
В результате данные в отчете сгруппированы по дням и месяцам, и по каждому периоду выводится промежуточный итог (рис. 3.260).
Рис. 3.260. Результат отчета
Заметим, что в отчетах можно выводить группировки-периоды, не получая при этом данных из родительских группировок. Например, группировку Регистратор можно использовать без ее родительской группировки Секунда, так как система компоновки данных сама подставит при компоновке нужные родительские поля-периоды, а внешне в отчете это никак не отразится. Исключение составляют отчеты, в которых получаются остатки по периодам. В этих случаях для подсчета правильных остатков при получении поля-периода в запросе должно присутствовать его родительское поле-период.