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