Прибавить рабочие дни к дате

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

Комментарии

Иван Гордынец
#1, 20 апреля 2020 14:04

Чтобы код работал правильно нужно в запросе в первый пакет добавить сортировку по полю ДатаКалендаря.


RomanVG
#2, 12 декабря 2023 14:13

еще предпразничные дни учитывать нужно.


См. также

Прибавить рабочие дни к дате (Запрос)

Прибавить к дате день

УстановитьРабочуюДатуПользователя (БСП)

РабочаяДатаПользователя (БСП)

ДатыБлижайшихРабочихДней (БСП)

ТекущаяДатаПользователя (БСП)

Сравнение плановых и фактических дней отпуска

Первый рабочий день месяца

СвойстваРабочихПроцессов (БСП)

Модератору