Для примера рассмотрим следующую задачу: пусть нам необходимо получить остатки по номенклатуре за месяц в разрезе дней. Причем остатки необходимо вывести вне зависимости от того, были ли в данный день движения по данной номенклатуре.
Запрос, для получения данных будет выглядеть следующим образом:
ВЫБРАТЬ
УчетНоменклатурыОстаткиИОбороты.Номенклатура КАК Номенклатура,
УчетНоменклатурыОстаткиИОбороты.Период КАК Период,
УчетНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток
ИЗ
РегистрНакопления.УчетНоменклатуры.ОстаткиИОбороты(, , День, ДвиженияИГраницыПериода, ) КАК УчетНоменклатурыОстаткиИОбороты
ИТОГИ
СУММА(КоличествоНачальныйОстаток)
ПО
Период ПЕРИОДАМИ(ДЕНЬ, , ),
Номенклатура
Если данный запрос установить в качестве текста запроса построителю отчета, то в отчет будут выведены остатки за все дни, в интервале, который присутствует в регистре. Если пользователь установит интервал отчета, при помощи полей "НачалоПериода" и "КонецПериода", то в отчет будут выведены все даты в данном периоде, включая те даты, на которые не было движений.
Заметим, что все даты будут выводиться только в случае, если дополняемая группировка находится на первом уровне в группируемых строках или колонках. В случае, если дополняемая группировка будет являться вложенной для некой группировки, в отчет попадут только те записи, по которым в регистре присутствовали движения.