Довідковий матеріал

Зв'язок наборів даних за періодами

У деяких звітах потрібно отримувати дані з кількох наборів, при цьому зв'язок між наборами даних потрібно виконувати за періодами. У цій статті описується, яким чином можна створити такий звіт за допомогою системи компонування даних.

Зв'язок наборів даних за періодами

У деяких звітах потрібно отримувати дані з кількох наборів, при цьому зв'язок між наборами даних потрібно виконувати за періодами. У цій статті описується, яким чином можна створити такий звіт за допомогою системи компонування даних.

Припустімо, нам потрібно вивести у звіт дані щодо залишків товарів на складах за місяцями і для кожного місяця для кожного товару вивести обсяг продажів товарів за цей період.

Для реалізації такого звіту створимо два набори даних:

1. Набір даних із залишками за періодами.

2. Набір даних із продажами товарів за період.

Щоб отримати залишки за товарами за періодами, скористаємося віртуальною таблицею ОстаткиИОбороты регістру накопичення:

ВЫБРАТЬ
ТоварныеЗапасыОстаткиИОбороты.Период КАК НачалоПериода,
ТоварныеЗапасыОстаткиИОбороты.Товар,
ТоварныеЗапасыОстаткиИОбороты.КоличествоНачальныйОстаток
ИЗ
РегистрНакопления.ТоварныеЗапасы.ОстаткиИОбороты(, , Месяц, , ) КАК ТоварныеЗапасыОстаткиИОбороты

Продажі за період можна отримати за допомогою віртуальної таблиці Обороты регістру накопичення:

ВЫБРАТЬ
ПродажиОбороты.Товар,
ПродажиОбороты.КоличествоОборот
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериодаПродаж, &КонецПериодаПродаж, , ) КАК ПродажиОбороты

Оскільки система компонування даних дає змогу виконувати зв'язок між наборами даних лише за їхніми полями, нам потрібно забезпечити в обох наборах даних поля початку й кінця періоду. Для цього переробимо запити наборів даних таким чином:

Набір даних залишків:

ВЫБРАТЬ
ТоварныеЗапасыОстаткиИОбороты.Период КАК НачалоПериода,
КОНЕЦПЕРИОДА(ТоварныеЗапасыОстаткиИОбороты.Период, МЕСЯЦ) КАК КонецПериода,
ТоварныеЗапасыОстаткиИОбороты.Товар,
ТоварныеЗапасыОстаткиИОбороты.КоличествоНачальныйОстаток
ИЗ
РегистрНакопления.ТоварныеЗапасы.ОстаткиИОбороты(, , Месяц, , ) КАК ТоварныеЗапасыОстаткиИОбороты

Набір даних продажів:

ВЫБРАТЬ
&НачалоПериодаПродаж КАК НачалоПериода,
&КонецПериодаПродаж КАК КонецПериода,
ПродажиОбороты.Товар,
ПродажиОбороты.КоличествоОборот
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериодаПродаж, &КонецПериодаПродаж, , ) КАК ПродажиОбороты

Тепер ми маємо можливість зв'язати ці набори даних один з одним за полями — періодами.

З опису зв'язків видно, що для записів набору даних Остатки будуть отримуватися записи набору даних ПродажиЗаПериод для потрібного періоду та потрібних товарів. При цьому значення полів НачалоПериода і КонецПериода набору даних Остатки будуть використовуватися як значення параметрів віртуальної таблиці Обороты.

Записатися телефоном