Почему при увольнении в 1С:ЗУП 3.1 сторнируются прошлые отпуска и начисляются лишние суммы?

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

Ситуация, когда при оформлении документа Увольнение в программе «1С:Зарплата и управление персоналом 3.1» появляются неожиданные сторно-записи по старым отпускам и лишние начисления, является довольно распространенной. Особенно часто это проявляется в случаях, когда сотрудник в течение текущего рабочего года брал отпуска авансом или получал денежную компенсацию. Разберем подробно, почему так происходит и как привести расчеты в порядок.

Механизм пересчета рабочего года при увольнении

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

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

Проблема расчета зарплаты внутри документа «Отпуск»

Одной из главных причин возникновения «лишних» сумм является использование флажка Рассчитать зарплату в документах Отпуск за предыдущие периоды (январь, март и т.д.). Рассмотрим подробнее, к чему это приводит:

  1. Когда зарплата за месяц рассчитывается непосредственно в документе отпуска, программа создает жесткую связь между отпускными и окладом за этот месяц.
  2. В документе Увольнение программа видит необходимость пересчитать остаток отпуска. Из-за внутренней связи она «подтягивает» весь документ отпуска целиком, включая начисления зарплаты.
  3. Если за эти месяцы уже была начислена зарплата основным документом Начисление зарплаты и взносов, может возникнуть ситуация, когда программа пытается доначислить разницу или повторно начислить оклад, не находя оснований для автоматического сторно.

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

Влияние «Компенсации авансом» на логику программы

Проанализируем ситуацию с выплатой компенсации отпуска. Согласно ТК РФ, денежная компенсация за неиспользованный отпуск выплачивается либо при увольнении, либо за дни, превышающие 28 календарных дней (обычно это дополнительные или северные отпуска). Выплата компенсации «авансом» за еще не отработанный период законодательством не предусмотрена.

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

Сервис «Перерасчеты» — скрытый виновник проблем

Часто лишние суммы в документе Увольнение появляются из-за накопленных записей в очереди перерасчетов. Разберем, как это работает:

  1. Если в базе после начисления зарплаты за январь или март менялись какие-либо кадровые данные (оклад, график, подразделение) или вносились исправления «задним числом», программа создает запись в регистре Перерасчеты.
  2. Документ Увольнение анализирует этот регистр и принудительно включает все найденные периоды в расчет, чтобы «закрыть» все долги перед сотрудником на дату его ухода.

Чтобы исключить это влияние, выполните следующие шаги:

Пошаговое решение проблемы

Выясним, какие действия помогут исправить ситуацию, если документ Увольнение все же сторнирует лишнее:

  1. Проверка остатков отпуска: Проанализируйте отчет Справка об остатках отпусков. Если там значится отрицательное число (например, -1 день), программа законно предложит Удержать за использованный авансом отпуск.
  2. Анализ периодов: Проверьте, к какому рабочему году относятся сторнируемые отпуска. Если они входят в текущий (незавершенный) рабочий год, сторно может быть частью механизма пересчета.
  3. Очистка перерасчетов: Как было описано выше, удалите записи из регистра Перерасчеты перед заполнением увольнения.
  4. Ручная корректировка: В случаях, когда в прошлом были допущены нетипичные операции (вроде компенсации авансом), автоматика программы может не справиться. Самый быстрый способ — вручную отредактировать вкладку Начисления в документе Увольнение, удалив лишние строки сторно и повторных начислений, оставив только корректное удержание за 1 день и текущие выплаты.

Технические подробности для программистов

Если вы хотите глубже понять причины поведения системы, обратите внимание на регистр накопления Все начисления и регистр сведений Данные о времени для расчета среднего (общий). Именно там хранятся данные, которые Увольнение использует для сторнирования. Если в этих регистрах за один и тот же период присутствуют записи с разными «основаниями» (например, документ отпуска и документ исправления), программа может ошибочно пытаться их «схлопнуть» при увольнении.

Также стоит учитывать версию конфигурации. В старых релизах (например, 3.1.10) существовали ошибки, при которых программа некорректно определяла средний заработок для сторно, если сотрудник имел право на разные виды отпусков одновременно (основной и дополнительный). В современных версиях 3.1.27+ многие из этих механизмов были оптимизированы.

Подведем итог: Лишние начисления при увольнении — это чаще всего результат попытки программы исправить «нелогичные» (с точки зрения закона и алгоритмов) действия в прошлом. Очистка перерасчетов и отказ от расчета зарплаты внутри отпуска минимизируют риск возникновения таких ошибок.

← На главную