Каталог решений - Отпускной период (период основного отпуска) — как его узнать

Отпускной период (период основного отпуска) — как его узнать

Отпускной период (период основного отпуска) — как его узнать

В наличии

Пришла мне задача где нужно получить отпускной период, на просторах сети решения я не нашел. Решил поделиться с вами своим решением.

Категория:

Описание

Отпускной период в явном виде не хранится в системе. Встал вопрос: как его узнать?
Первое, что пришло на ум просто выдернуть запрос из типового отчета "Остатки отпусков" — как оказалось, он состоит из 18 запросов и работает ну крайне медленно. 

Попытки высчитать его самостоятельно по дате приема, не привело ни к чему хорошему. Тут нужно учитывать документ "ввод остатков отпусков" плюс смещение периода при декретном отпуске у женщин. 

Решил отбросить костыли и воспользоватся типовыми функциями подсистемы "Остатки отпусков"

Была написана короткая функция которая возвращала остатки отпусков по основному отпуску и желанный отпускной период.

Функция ПолучитьРабочийГод (Сотрудник)
	
		СтруктураПараметров = ОстаткиОтпусков.ПараметрыПолученияРабочегоПериодаОтпуска();
		СтруктураПараметров.Сотрудник = Сотрудник;
		СтруктураПараметров.ВидОтпуска =Справочники.ВидыОтпусков.НайтиПоНаименованию("Основной");
		СтруктураПараметров.ДатаНачала = Объект.Дата;
		СтруктураПараметров.ДатаОкончания = Объект.Дата;
		СтруктураПараметров.ДатаКомпенсации = Объект.Дата;
		СтруктураПараметров.КоличествоДнейКомпенсации = 0;
		ПериодОсновногоОтпуска = ОстаткиОтпусков.РабочийПериодОтпуска(СтруктураПараметров);
		
		НачалоПериода	= ПериодОсновногоОтпуска.РабочийГодС;
		КонецПериода	= ПериодОсновногоОтпуска.РабочийГодПо;
					
		ДанныеРабочийгод = Строка(Формат(НачалоПериода,"ДФ=dd.MM.yy")) + " - " + Строка(Формат(КонецПериода,"ДФ=dd.MM.yy")); 
		
Возврат ДанныеРабочийгод;

КонецФункции

1. Получаем структуру.
2. Заполняем 
3. Отправляем структуру в ОстаткиОтпусков.РабочийПериодОтпуска() 
4. Складываю две даты с форматом в одну строковую переменную (вы можете иначе использовать)
5. Возврат

Работает функция достаточно быстро, данные достоверные. По этой причине дальше не стал ничего придумывать. 
Буду рад адекватной критике.
 

has been added to your cart:
Оформление заказа