Функция ДобавитьКДатеРабочиеДни(ДатаНач,ЧислоРабочихДней) экспорт
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ВЫБОР
| КОГДА РегламентированныйПроизводственныйКалендарь.ВидДня = &РабочийДень
| ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня = &ПредпраздничныйДень
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ КАК ЧислоРабочихДней,
| РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря
|ПОМЕСТИТЬ ТЗ
|ИЗ
| РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
|ГДЕ
| РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНач И &ДатаКон
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЗ.ДатаКалендаря,
| СУММА(ТЗ1.ЧислоРабочихДней) КАК ЧислоРабочихДней
|ПОМЕСТИТЬ ТЗНакопл
|ИЗ
| ТЗ КАК ТЗ
| ЛЕВОЕ СОЕДИНЕНИЕ ТЗ КАК ТЗ1
| ПО (ТЗ1.ДатаКалендаря <= ТЗ.ДатаКалендаря)
|
|СГРУППИРОВАТЬ ПО
| ТЗ.ДатаКалендаря
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МАКСИМУМ(ТЗ.ДатаКалендаря) КАК ДатаКалендаря
|ИЗ
| ТЗНакопл КАК ТЗ
|ГДЕ
| ТЗ.ЧислоРабочихДней = &ЧислоРабочихДней";
Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
ЧислоНедель = Цел(ЧислоРабочихДней/5+0.5);
ЧислоВыходныхДней = ЧислоНедель*2;
МаксимальноеКоличествоПраздничныхДнейПодряд = 8; //РождественскиеКаникулы
ДатаКон = ДатаНач+(ЧислоВыходныхДней+ЧислоРабочихДней+МаксимальноеКоличествоПраздничныхДнейПодряд)*24*60*60;
Запрос.УстановитьПараметр("ДатаКон",ДатаКон);
Запрос.УстановитьПараметр("ЧислоРабочихДней",ЧислоРабочихДней);
Запрос.УстановитьПараметр("РабочийДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Рабочий);
Запрос.УстановитьПараметр("ПредпраздничныйДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Предпраздничный);
Выборка = Запрос.Выполнить().Выбрать();
Результат = 0;
Если Выборка.Следующий() Тогда
Результат = КонецДня(Выборка.ДатаКалендаря)+1;
Конецесли;
Возврат Результат;
КонецФункции