Как исправить ошибку двойного начисления остатка отпусков в 1С:ЗУП 3.1?

Бухгалтер 1С v8.3 (Управляемые формы) Бухгалтерский учет
← На главную

При переходе на программу 1С:Зарплата и управление персоналом 3.1 (ЗУП 3.1) бухгалтеры и кадровики часто сталкиваются с неприятной ситуацией: при увольнении сотрудника или формировании отчета по остаткам отпусков программа внезапно начисляет «лишние» 2.33 дня. Проблема обостряется, когда такое «двойное» начисление происходит регулярно на стыке рабочих годов сотрудника. В результате при увольнении программа выдает завышенный остаток отпуска, что приводит к переплатам и спорам с аудиторами.

В этой статье мы подробно разберем, почему возникает эта проблема, как на расчет влияет новый алгоритм программы, начиная с версии 3.1.7, и какими способами можно исправить ситуацию как вручную, так и массово.

---

Почему программа начисляет права на отпуск дважды за один месяц?

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

Фактор №1. Законное «Правило 11 месяцев»

Если вы заметили, что сотруднику, принятому в течение года, в предпоследнем месяце его рабочего года программа начислила права дважды, а в последнем (12-м) месяце начислила 0 дней — это не ошибка. Это штатное поведение программы, соответствующее законодательству РФ.

Согласно пункту 28 «Правил об очередных и дополнительных отпусках» (утвержденных НКТ СССР 30.04.1930 № 169), сотрудник, проработавший в рабочем году 11 месяцев, имеет право на получение полной компенсации или полноценного отпуска (28 календарных дней). Чтобы реализовать это право, алгоритм 1С:ЗУП 3.1 распределяет 28 дней отпуска на 11 месяцев работы, а не на 12.

В результате в 11-м месяце рабочего года программа производит начисление прав дважды:

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

В 12-м месяце рабочего года начисление составит 0 дней. В сумме за рабочий год сотрудник получит ровно 28 дней отпуска.

Фактор №2. Сбой при переносе остатков на «общую» дату

Совсем иная ситуация возникает, когда у сотрудников, чей рабочий год начинается не с первого числа месяца, программа стабильно удваивает дни отпуска на стыке рабочих лет. Это происходит из-за нестыковки старых данных из ЗУП 2.5 и нового алгоритма расчета остатков в ЗУП 3.1.7+.

При переносе данных остатки отпусков часто записываются в программу документом Начальная штатная расстановка или Ввод остатков отпусков на единую «красивую» дату (например, на 01.01.2018). Однако рабочий год сотрудника практически никогда не совпадает с календарным. Если у сотрудника рабочий год был сдвинут из-за отпусков за свой счет или по уходу за ребенком, а остатки введены на фиксированное первое число месяца, программа теряет непрерывность периодов. Пытаясь сопоставить дату ввода остатков и реальную дату начала его рабочего года, ЗУП 3.1 начинает рассчитывать остатки по новому алгоритму, что приводит к наложению периодов и двойному начислению 2.33 дня.

---

Как устроен новый алгоритм расчета отпусков (ЗУП 3.1.7+)

Начиная с версии 3.1.7, разработчики 1С уточнили алгоритм начисления заработанных отпусков согласно п. 35 Постановления НКТ СССР № 169 (округление излишков менее половины месяца в меньшую сторону, а половины и более — до полного месяца).

Выясним, как программа определяет «половину месяца» теперь:

Если дата ввода остатков при переносе данных из ЗУП 2.5 не учитывает эти новые «точки отсчета» индивидуальных рабочих лет сотрудников, алгоритм дает сбой.

---

Почему очистка регистра не помогает?

Иногда пользователи пытаются решить проблему радикально — очистить или скорректировать вручную записи в регистре сведений Заработанные права на отпуска.

Проанализируем этот шаг. Данный регистр является полностью техническим и вспомогательным. Он перезаполняется программой автоматически каждый раз, когда вы открываете отчет по остаткам отпусков, рассчитываете документ увольнения или начисляете резервы. Любые ручные изменения в этом регистре будут безвозвратно стерты при первом же кадровом расчете. Решать проблему нужно на уровне документов-первоисточников.

---

Пошаговая методика исправления ошибки

Рассмотрим, как правильно скорректировать данные, чтобы остатки отпусков начали считаться корректно.

Способ №1. Индивидуальная корректировка даты ввода остатков

Этот способ идеально подходит, если проблемных сотрудников в базе немного. Нам нужно сделать так, чтобы дата ввода остатков отпуска строго соответствовала рабочему году сотрудника.

  1. Выясним точную дату начала текущего рабочего года сотрудника, на который приходится перенос данных. Например, сотрудник принят на работу 12.02.2008. На момент переноса данных (начало 2018 года) его рабочий год начинается 12.01.2018 (сдвиг произошел из-за прошлых отсутствий).
  2. Перейдем в документ ввода остатков (это может быть документ Начальная штатная расстановка или специальный документ Ввод остатков отпусков).
  3. Установим дату ввода остатков по данному сотруднику равной на 1 день меньше даты начала его рабочего года. В нашем примере это будет 11.01.2018.
  4. Проведем документ и сформируем отчет "Остатки отпусков". Программа автоматически пересчитает технический регистр Заработанные права на отпуска по новому алгоритму, и двойное начисление исчезнет.

Способ №2. Использование документа «Ввод остатков отпусков»

Если корректировать старый документ Начальная штатная расстановка нежелательно (например, период давно закрыт для редактирования), воспользуемся механизмом корректировки через специализированный документ.

  1. По умолчанию документ Ввод остатков отпусков может быть скрыт в интерфейсе. Чтобы вывести его, перейдем в раздел Кадры, нажмем на шестеренку в правом верхнем углу (Настройка навигации) и добавим документ Ввод остатков отпусков в список видимых команд.
  2. Создадим новый документ Ввод остатков отпусков.
  3. Для каждого проблемного сотрудника укажем дату окончания его прошлого рабочего года в качестве даты ввода остатков.
  4. Заполним актуальные остатки по дням. Данный документ перекроет некорректные исторические данные переноса и заставит программу вести расчет с «чистого листа» без ошибок и задвоений.

Способ №3. Групповая обработка (для крупных предприятий)

Если в вашей базе ведется учет по десяткам юридических лиц и сотням сотрудников, ручная корректировка дат нерациональна. В этом случае рекомендуется привлечь программиста 1С для написания несложной внешней обработки.

Алгоритм работы такой обработки должен быть следующим:

  1. Программа анализирует регистр кадровых данных и определяет для каждого сотрудника дату начала его актуального рабочего года на момент переноса данных.
  2. Обработка находит документы Начальная штатная расстановка и автоматически сдвигает дату фиксации остатков отпуска для каждого сотрудника на день, предшествующий началу его рабочего года.
  3. После этого запускается штатная процедура обновления регистра Заработанные права на отпуска.

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

← На главную