Собственно запрос получился такой:
ВЫБРАТЬ Даты.Дата,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) КАК КоличествоРабочихДней, МАКСИМУМ(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) КАК ДатаКалендаря, РегламентированныйПроизводственныйКалендарь1.ДатаКалендаря КАК ДатаКалендаряДляГруппировки ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ВНУТРЕННЕЕ СОЕДИНЕНИЕ Даты КАК Даты ПО (Даты.Дата <= РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) И (ДОБАВИТЬКДАТЕ(Даты.Дата, ДЕНЬ, &ГлубинаДней) > РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь1 ПО РегламентированныйПроизводственныйКалендарь.ДатаКалендаря <= РегламентированныйПроизводственныйКалендарь1.ДатаКалендаря ГДЕ (РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный) ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)) СГРУППИРОВАТЬ ПО РегламентированныйПроизводственныйКалендарь1.ДатаКалендаря, Даты.Дата ИМЕЮЩИЕ МАКСИМУМ(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) = РегламентированныйПроизводственныйКалендарь1.ДатаКалендаря
Таблица "Даты" может содержать любые данные с датой в виде отдельного поля или в виде реквизита документа. Параметр "ГлубинаДней" определяет, как глубоко вперёд просматривать даты относительно входящих дат.
Вот пример работы для одной даты 28.11.2012
Дата | КоличествоРабочихДней | ДатаКалендаря | ДатаКалендаряДляГруппировки | |
28.11.2012 | 1 | 28.11.2012 | 28.11.2012 | |
28.11.2012 | 2 | 29.11.2012 | 29.11.2012 | |
28.11.2012 | 3 | 30.11.2012 | 30.11.2012 | |
28.11.2012 | 4 | 03.12.2012 | 03.12.2012 | |
28.11.2012 | 5 | 04.12.2012 | 04.12.2012 | |
28.11.2012 | 6 | 05.12.2012 | 05.12.2012 | |
28.11.2012 | 7 | 06.12.2012 | 06.12.2012 | |
28.11.2012 | 8 | 07.12.2012 | 07.12.2012 | |
28.11.2012 | 9 | 10.12.2012 | 10.12.2012 | |
28.11.2012 | 10 | 11.12.2012 | 11.12.2012 | |
28.11.2012 | 11 | 12.12.2012 | 12.12.2012 | |
28.11.2012 | 12 | 13.12.2012 | 13.12.2012 | |
28.11.2012 | 13 | 14.12.2012 | 14.12.2012 | |
28.11.2012 | 14 | 17.12.2012 | 17.12.2012 | |
28.11.2012 | 15 | 18.12.2012 | 18.12.2012 | |
28.11.2012 | 16 | 19.12.2012 | 19.12.2012 | |
28.11.2012 | 17 | 20.12.2012 | 20.12.2012 | |
28.11.2012 | 18 | 21.12.2012 | 21.12.2012 | |
28.11.2012 | 19 | 24.12.2012 | 24.12.2012 | |
28.11.2012 | 20 | 25.12.2012 | 25.12.2012 | |
28.11.2012 | 21 | 26.12.2012 | 26.12.2012 | |
28.11.2012 | 22 | 27.12.2012 | 27.12.2012 |
В конец запроса осталось добавить условие
И КОЛИЧЕСТВО(РАЗЛИЧНЫЕРегламентированныйПроизводственныйКалендарь.ДатаКалендаря) = &РабочихДней
и отобрать данные по нужному количеству рабочих дней в параметре "РабочихДней"
Ну и в конце полная верия запроса, если захочется опробовать в консоли запросов
ВЫБРАТЬ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК Дата ПОМЕСТИТЬ Даты ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря В(&ВходящиеДаты) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Даты.Дата, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) КАК КоличествоРабочихДней, МАКСИМУМ(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) КАК ДатаКалендаря, РегламентированныйПроизводственныйКалендарь1.ДатаКалендаря КАК ДатаКалендаряДляГруппировки ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ВНУТРЕННЕЕ СОЕДИНЕНИЕ Даты КАК Даты ПО (Даты.Дата <= РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) И (ДОБАВИТЬКДАТЕ(Даты.Дата, ДЕНЬ, &ГлубинаДней) > РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь1 ПО РегламентированныйПроизводственныйКалендарь.ДатаКалендаря <= РегламентированныйПроизводственныйКалендарь1.ДатаКалендаря ГДЕ (РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный) ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)) СГРУППИРОВАТЬ ПО РегламентированныйПроизводственныйКалендарь1.ДатаКалендаря, Даты.Дата ИМЕЮЩИЕ МАКСИМУМ(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) = РегламентированныйПроизводственныйКалендарь1.ДатаКалендаря И КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) = &РабочихДней