Дополнение результата запроса датами в установленном периоде

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

Пример:

Копировать в буфер обмена

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

УПОРЯДОЧИТЬ ПО 
    Период 

ИТОГИ СУММА(КоличествоОборот) ПО
    Период ПЕРИОДАМИ(НЕДЕЛЯ,,)

Результат данного запроса будет дополнен записями на даты начала каждой недели.

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

Пример:

Копировать в буфер обмена

ВыборкаПериод = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период", "ВСЕ");
Пока ВыборкаПериод.Следующий() Цикл
    ОбластьПериод.Параметры.Заполнить(ВыборкаПериод);
    ТабДок.Вывести(ОбластьПериод, ВыборкаПериод.Уровень());
КонецЦикла;