8 июл. 2019 г.

Получить ближайшую рабочую дату от произвольной даты

&НаКлиенте
Процедура Команда1(Команда)
            Сообщить(ПолучитьБлижайшуюРабочуюДатуОтИсходнойДаты(ДатаКалендаря));        
КонецПроцедуры

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

Комментариев нет:

Отправить комментарий

 

CopyPaste Copyright © 2017 - |- Шаблон создан O Pregador - |- Отредактирован myr4ik07