Каталог решений - Расчет дополнительного отпуска при увольнении из организации

Расчет дополнительного отпуска при увольнении из организации

Расчет дополнительного отпуска при увольнении из организации

В наличии

Документ "УвольнениеИзОрганизации" (регламентированный) учет в ЗУП не позволяет без доработки конфигурации рассчитать остаток дополнительного отпуска.
Типовой механизм учитывает только основной ежегодный отпуск.

Категория:

Описание

Для того, чтобы остаток дополнительного отпуска рассчитывался, необходимо внести изменения в общий модуль: ОстаткиОтпусков, привожу код с имзменениями:

Функция ОстатокОтпускаСотрудникаНаДату(Сотрудник, ДатаОстатков = ‘00010101’, ЭтоРасчетПриУвольнении = Ложь, ПорядокРасчетаОсновногоОтпуска = Неопределено) Экспорт
    
    Если Не ЗначениеЗаполнено(Сотрудник) Тогда
        Возврат 0;
    КонецЕсли;
    
    Если Не ЗначениеЗаполнено(ДатаОстатков) Тогда
        ДатаОстатков = НачалоДня(ТекущаяДатаСеанса());
    КонецЕсли;
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ТаблицаДанныхДоп = ОписаниеТаблицыДанных();
    
    Строка = ТаблицаДанныхДоп.Добавить();
    Строка.Сотрудник                            = Сотрудник;
    Строка.ДатаОстатков                            = НачалоДня(ДатаОстатков);
    Строка.ЭтоРасчетПриУвольнении                = ЭтоРасчетПриУвольнении;
    Если ЭтоРасчетПриУвольнении Тогда
        Если ПорядокРасчетаОсновногоОтпуска = Перечисления.ПорядокРасчетаОтпуска.ПоШестидневке Тогда
            Строка.ОтборПоВидуЕжегодногоОтпуска    = ОбщегоНазначенияЗК.ПолучитьЗначениеРеквизита(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпШестидневка, «ВидЕжегодногоОтпуска»);
        Иначе
            Строка.ОтборПоВидуЕжегодногоОтпуска    = ОбщегоНазначенияЗК.ПолучитьЗначениеРеквизита(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду(«00099»), «ВидЕжегодногоОтпуска»);
        КонецЕсли;
    КонецЕсли;
    
    РезультатДоп = ОстаткиОтпусков(ТаблицаДанныхДоп)[0];

    ОстатокДопОтпуска=РезультатДоп.ОстатокНаДату;
    
    //______________________________________________________________________________
    
    
    ТаблицаДанных = ОписаниеТаблицыДанных();
    
    Строка = ТаблицаДанных.Добавить();
    Строка.Сотрудник                            = Сотрудник;
    Строка.ДатаОстатков                            = НачалоДня(ДатаОстатков);
    Строка.ЭтоРасчетПриУвольнении                = ЭтоРасчетПриУвольнении;
    Если ЭтоРасчетПриУвольнении Тогда
        Если ПорядокРасчетаОсновногоОтпуска = Перечисления.ПорядокРасчетаОтпуска.ПоШестидневке Тогда
            Строка.ОтборПоВидуЕжегодногоОтпуска    = ОбщегоНазначенияЗК.ПолучитьЗначениеРеквизита(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпШестидневка, «ВидЕжегодногоОтпуска»);
        Иначе
            Строка.ОтборПоВидуЕжегодногоОтпуска    = ОбщегоНазначенияЗК.ПолучитьЗначениеРеквизита(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпКалендарныеДни, «ВидЕжегодногоОтпуска»);
        КонецЕсли;
    КонецЕсли;
    
    Результат = ОстаткиОтпусков(ТаблицаДанных)[0];
        
    ОстаткиВРазрезеРабочихЛетИВидовОтпусков = Новый Массив;
    Для Каждого РабочийГод Из Результат.ДанныеРасчета Цикл
        Если РабочийГод.ДоступноДляСписанияВЭтомГоду = 0 Тогда
            Продолжить;
        КонецЕсли;
        ОстаткиВРазрезеРабочихЛетИВидовОтпусков.Добавить(Новый Структура(«ВидЕжегодногоОтпуска, ОсталосьДней, РабочийГодС, РабочийГодПо, ПоследнийРабочийГод»,
            РабочийГод.ВидЕжегодногоОтпуска, РабочийГод.ДоступноДляСписанияВЭтомГоду, РабочийГод.ДатаНачала, РабочийГод.ДатаОкончания, РабочийГод.ПоследнийРабочийГод));
    КонецЦикла;
    
    //++++++++++++++++++++++++++++++++++++++++++Расчитаем Доп отпуск+Основной+++++++++++++++++
    
    Возврат Новый Структура(«ОстатокНаДату, РабочийГодС, РабочийГодПо, Примечание, ОстаткиВРазрезеВидовОтпусков, ОстаткиВРазрезеРабочихЛетИВидовОтпусков»,
        Результат.ОстатокНаДату+ОстатокДопОтпуска, Результат.РабочийГодС, Результат.РабочийГодПо, Результат.Примечание, Результат.ОстатокНаДатуПоВидамЕжегодныхОтпусков, ОстаткиВРазрезеРабочихЛетИВидовОтпусков);
        
        
    //________________________________________________________________________________________________    
КонецФункции

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