На примере этого отчета мы продемонстрируем возможность получения данных из нескольких наборов, связанных по периодам. Допустим, требуется выдать в отчет данные по остаткам товаров на складах по месяцам и выдать объем продаж по каждому товару за каждый месяц (рис. 2.131).
Рис. 2.131. Требуемый вид отчета
Создадим новый объект конфигурации Отчет и назовем его ОстаткиИПродажиТоваров. Для реализации такого отчета создадим два набора данных:
Откроем конструктор схемы компоновки данных и добавим новый набор данных – запрос. Назовем его Остатки. Откроем конструктор запроса. Для того чтобы получить остатки товаров по периодам, воспользуемся виртуальной таблицей регистра накопления ОстаткиНоменклатуры.ОстаткиИОбороты. Выберем эту таблицу в качестве источника данных для запроса.
Вызовем диалог параметров виртуальной таблицы. Для этого в списке таблицы нужно нажать кнопку Параметры виртуальной таблицы. В открывшемся окне параметров зададим значение параметра Периодичность – Месяц (рис. 2.132).
Рис. 2.132. Параметры виртуальной таблицы
В список полей перенесем поля из таблицы ОстаткиНоменклатуры.ОстаткиИОбороты:
Нажмем ОК и вернемся в конструктор схемы компоновки данных. Платформа автоматически сформирует следующий запрос (листинг 2.21).
Листинг 2.21. Текст запроса набора данных «Остатки»
ВЫБРАТЬ
ОстаткиНоменклатурыОстаткиИОбороты.Период,
ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура,
ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток,
ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ОстаткиНоменклатуры.ОстаткиИОбороты(, , Месяц, , )
КАК ОстаткиНоменклатурыОстаткиИОбороты
Добавим еще один набор данных – запрос. Назовем его Продажи. Откроем конструктор запроса. Продажи за период можно получить при помощи виртуальной таблицы регистра накопления Продажи.Обороты. Выберем эту таблицу в качестве источника данных для запроса.
Вызовем диалог параметров виртуальной таблицы. В открывшемся окне параметров зададим значение параметров НачалоПериода и КонецПериода (рис. 2.133).
Рис. 2.133. Параметры виртуальной таблицы
В список полей перенесем поля из таблицы ОстаткиНоменклатуры.ОстаткиИОбороты:
Нажмем ОК и вернемся в конструктор схемы компоновки данных. Платформа автоматически сформирует следующий запрос (листинг 2.22).
Листинг 2.22. Текст запроса набора данных «Продажи»
ВЫБРАТЬ
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот
ИЗ
РегистрНакопления.Продажи.Обороты(
&НачалоПериодаПродаж, &КонецПериодаПродаж, , ) КАК ПродажиОбороты