Есть много разных решений для получения в запросе выборки дат за период
для типовых конфигураций возможны решения использующие различные регистры сведений например курсы валют или производственный календарь.
Мой вариант не зависит от конфигурации, он сделан на основе нескольких размещенных здесь и на мисте и оптимизирован по объему кода, и количеству виртуальных таблиц \ вложенных запросов
ВЫБРАТЬ
0 КАК a
Поместить vt_aa
ОБЪЕДИНИТЬ
ВЫБРАТЬ
1
ОБЪЕДИНИТЬ
ВЫБРАТЬ
2
ОБЪЕДИНИТЬ
ВЫБРАТЬ
3
ОБЪЕДИНИТЬ
ВЫБРАТЬ
4
ОБЪЕДИНИТЬ
ВЫБРАТЬ
5
ОБЪЕДИНИТЬ
ВЫБРАТЬ
6
ОБЪЕДИНИТЬ
ВЫБРАТЬ
7
ОБЪЕДИНИТЬ
ВЫБРАТЬ
8
ОБЪЕДИНИТЬ
ВЫБРАТЬ
9
;
ВЫБРАТЬ
ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, РазностьДат.НомерДняИзДиапазона) КАК датаПериода
ПОМЕСТИТЬ Даты
ИЗ
(ВЫБРАТЬ
bb.a * 100 + cc.a * 10 + dd.a КАК НомерДняИзДиапазона
ИЗ
vt_aa КАК bb
ПОЛНОЕ СОЕДИНЕНИЕ vt_aa КАК cc
ПО (ИСТИНА)
ПОЛНОЕ СОЕДИНЕНИЕ vt_aa КАК dd
ПО (ИСТИНА)) КАК РазностьДат
ГДЕ
РазностьДат.НомерДняИзДиапазона < РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
если не хватает размера выборки то можно увеличить изменив строку
bb.a * 100 + cc.a * 10 + dd.a КАК НомерДняИзДиапазона
на aa.a*1000 + bb.a * 100 + cc.a * 10 + dd.a КАК НомерДняИзДиапазона
и добавив полное соединение
ПОЛНОЕ СОЕДИНЕНИЕ vt_aa КАК aa
ПО (ИСТИНА)