Почему в документе Увольнение начисляется зарплата за прошлые периоды?

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

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

Основные причины некорректных начислений

Прежде чем приступать к исправлению, важно понимать природу ошибки. Чаще всего ситуация возникает из-за того, что:

Способы решения проблемы

Шаг 1: Обновление конфигурации

Компания 1С признала эту проблему и выпустила ряд исправлений в версиях 3.1.5.212, 3.1.6.37 и более поздних. Если ваша версия ниже указанных, первым делом выполните обновление конфигурации. Исправления включают корректный алгоритм определения реквизита МесяцНачалаРасчетов.

Шаг 2: Ручная очистка регистра перерасчетов

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

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

Шаг 3: Работа со сторнирующими записями

Иногда документ Увольнение содержит сторнирующие записи, которые невозможно удалить стандартным способом. Чтобы их убрать, выполните следующую манипуляцию:

  1. Добавьте в табличную часть Начисления строку с аналогичным видом расчета, но с положительной суммой.
  2. С помощью клавиши Shift выделите обе строки: вашу добавленную положительную и существующую сторнирующую.
  3. Нажмите клавишу Del для их удаления. Теперь записи исчезнут из документа.

Шаг 4: Анализ кода и использование расширений

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


// Пример корректировки даты начала расчетов через расширение
Если ЗначениеЗаполнено(Объект.ДатаУвольнения) Тогда
    Объект.МесяцНачалаРасчетов = НачалоМесяца(Объект.ДатаУвольнения);
Иначе
    Объект.МесяцНачалаРасчетов = '00010101';
КонецЕсли;

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

Рекомендации по предотвращению ошибок

Для того чтобы избежать «чехарды» в расчетах, придерживайтесь следующих правил:

Помните, что документ Увольнение — это комплексный объект, который рассчитывает не только оклад, но и компенсации, НДФЛ и взносы. Его корректная работа напрямую зависит от того, насколько «чистыми» являются данные учета за все предыдущие периоды.

← На главную