Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ " + Число(ДобавитьКоличествоДней) + "
| ДанныеПроизводственногоКалендаря.Дата КАК ДатаКалендаря
|ПОМЕСТИТЬ ВТ_РабочиеДни
|ИЗ
| РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
|ГДЕ
| ДанныеПроизводственногоКалендаря.ВидДня = &ВидДня_РабочийДень
| И ДанныеПроизводственногоКалендаря.Дата >= &ИсходнаяДата
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МАКСИМУМ(ВТ_РабочиеДни.ДатаКалендаря) КАК ДатаКалендаря
|ИЗ
| ВТ_РабочиеДни КАК ВТ_РабочиеДни";
Запрос.УстановитьПараметр("ИсходнаяДата", НачалоДня(Объект.Дата));
Запрос.УстановитьПараметр("ВидДня_РабочийДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Рабочий);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат ВыборкаДетальныеЗаписи.ДатаКалендаря;
КонецЕсли;
Прибавить рабочие дни к дате (Запрос)
УстановитьРабочуюДатуПользователя (БСП)
ДатыБлижайшихРабочихДней (БСП)
#1, 20 апреля 2020 14:04
Чтобы код работал правильно нужно в запросе в первый пакет добавить сортировку по полю ДатаКалендаря.
#2, 12 декабря 2023 14:13
еще предпразничные дни учитывать нужно.