Почему при увольнении не рассчитывается компенсация дополнительного отпуска в 1С и как это исправить?

Программист 1С v8.3 (Обычные формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

При увольнении сотрудника часто возникает ситуация, когда программа рассчитывает дни компенсации неиспользованного отпуска исключительно по основному ежегодному отпуску, полностью игнорируя накопленные дни дополнительных отпусков (например, за ненормированный рабочий день, вредные условия труда или работу в районах Крайнего Севера). Рассмотрим причины такого поведения системы в различных редакциях 1С:Зарплата и управление персоналом и разберем практические способы решения этой задачи.

Причины поведения программы в редакции ЗУП 2.5

В архитектуре типовой конфигурации 1С:ЗУП редакции 2.5 автоматический подсчет дней компенсации в документе увольнения был жестко ограничен только основным ежегодным отпуском. Функция вычисления остатка вызывалась с установленным отбором по виду отпуска. Рассмотрим типовые способы преодоления этого ограничения.

Вариант 1. Штатный расчет без изменения конфигурации (ЗУП 2.5)

Если информационная база находится на типовой поддержке и внесение изменений в программный код нежелательно, разберем порядок действий расчетчика:

  1. Сформируем отчет Справка по отпуску или отчет по остаткам отпусков на дату увольнения сотрудника, чтобы выяснить точное количество положенных дней дополнительного отпуска.
  2. В кадровом документе увольнения скорректируем количество дней компенсации вручную, увеличив их на количество дней дополнительного отпуска.
  3. Либо создадим отдельный расчетный документ начислений для выплаты компенсации за дни дополнительного отпуска.

Вариант 2. Программная доработка типового модуля (ЗУП 2.5)

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

Способ А. Корректировка в общем модуле ОстаткиОтпусков

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


Если СтрокаДанных.ОтборПоВиДуЕжегодногоОтпуска.Пустая Тогда 
    ОтборПоСотруднику = Новый Структура("Сотрудник", СтрокаДанных.Сотрудник); 
Иначе 
    // Отменяем отбор по конкретному виду отпуска, чтобы учитывался и дополнительный
    // Было: ОтборПоСотруднику = Новый Структура("Сотрудник, ВидЕжегодногоОтпуска", СтрокаДанных.Сотрудник, СтрокаДанных.ОтборПоВиДуЕжегодногоОтпуска);
    ОтборПоСотруднику = Новый Структура("Сотрудник", СтрокаДанных.Сотрудник); 
КонецЕсли;

Способ Б. Корректировка вызова в модуле документа УвольнениеИзОрганизаций

Альтернативный и более точечный вариант — изменить параметр передачи признака отбора непосредственно при расчете строки документа. В модуле документа УвольнениеИзОрганизаций в процедуре РассчитатьКоличествоДнейОтпуска найдем вызов функции расчета остатка:


// Было:
// Результат = ОстаткиОтпусков.ОстатокОтпускаСотрудникаНаДату(СтрокаТЧ.Сотрудник, СтрокаТЧ.ДатаУвольнения, Истина, СтрокаТЧ.ПорядокРасчетаОтпуска);

// Стало (передаем Ложь для отмены отбора только по основному отпуску):
Результат = ОстаткиОтпусков.ОстатокОтпускаСотрудникаНаДату(СтрокаТЧ.Сотрудник, СтрокаТЧ.ДатаУвольнения, Ложь, СтрокаТЧ.ПорядокРасчетаОтпуска);

Реализация механизма в 1С:ЗУП 3.1 и 1С:ЗКГУ 3.1

В современных версиях программы (редакция 3.1) проблема решена на уровне типовой функциональности. В документе Увольнение на вкладке Условия увольнения формируется подробная табличная часть, где расчет компенсации или удержания выполняется отдельно по каждому виду положенного сотруднику отпуска.

Если в 1С:ЗУП 3.1 дни дополнительного отпуска не рассчитываются при увольнении, проанализируем следующие возможные причины:

  1. Не назначено право на дополнительный отпуск. Проверим, привязано ли право на отпуск в кадровых документах (Прием на работу, Кадровый перевод), в позиции штатного расписания или документе Ввод остатков отпусков.
  2. Настройка вида отпуска. Перейдем в справочник Виды отпусков и убедимся, что для нужного элемента установлен флаг Отпуск является ежегодным. Целевые и разовые отпуска не накапливают остаток и компенсации при увольнении не подлежат.
  3. Особенности учета стажа для отпусков за вредные условия труда. Согласно ст. 121 ТК РФ стаж для права на такой отпуск формируется только по фактически отработанному во вредных условиях времени. Если в табеле учета рабочего времени отсутствуют смены во вредных условиях или не проведены соответствующие документы учета, остаток дней будет равен нулю.
  4. Правило округления стажа при увольнении. Если сотрудник отработал в последнем рабочем месяце менее 15 календарных дней, этот период не дает права на компенсацию за данный месяц в соответствии с правилами исчисления стажа.

Таким образом, для старых версий конфигураций оптимальным решением является ручная корректировка или точечная адаптация кода расчета остатков, а в современных версиях достаточно корректно настроить права на отпуска в кадровом учете сотрудника.

← На главную