Почему пропадают удержания в исправленном документе «Увольнение» в 1С:ЗУП 3.1 и как это исправить?

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

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

Выясним причину: зарегистрированные ошибки 1С

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

  1. Ошибка 70086568: Описывает ситуацию, при которой в документе-исправлении Увольнение или Отпуск не заполняются удержания, если они были рассчитаны в исходном (сторнируемом) документе. Проблема часто проявляется в цепочках исправлений («исправление на исправление»).
  2. Ошибка 60015821: Касается некорректного подбора записей в таблицу удержаний при пересчете, особенно в версиях 3.1.23 и 3.1.27.

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

Вариант 1: Прямое исправление в первичном документе

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

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

Вариант 2: Проверка настройки пределов удержаний

Проанализируем ситуацию, когда удержания могут блокироваться механизмом ограничения взысканий (согласно законодательным лимитам в 20%, 50% или 70%). Иногда «затык» происходит именно здесь. Попробуем выполнить следующие действия:

  1. Перейдем в настройки расчета зарплаты и временно отключим проверку ограничений (если это допустимо в вашей базе для теста).
  2. В самом документе-исправлении Увольнение перейдем на вкладку Удержания.
  3. Нажмем кнопку Записать, а затем воспользуемся командой Пересчитать сотрудника (кнопка с желтыми круговыми стрелками). Важно: автоматическое обновление при переходе между вкладками в исправлении может давать сбой, поэтому принудительный пересчет необходим.

Вариант 3: Использование документа «Доначисление, пересчет»

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

1. Оставим документ-исправление Увольнение только для корректировки начислений и среднего заработка.
2. Создадим отдельный документ Доначисление, пересчет (находится в разделе Зарплата).
3. В этом документе система автоматически должна подхватить разницу в удержаниях, возникшую из-за пересчета базы в документе увольнения.

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

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

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

Пример программной проверки (через консоль запросов или отладчик) состояния остатков по удержаниям в регистрах для конкретного Регистратор:


ВЫБРАТЬ
    Регистр.Сотрудник,
    Регистр.Результат,
    Регистр.ПериодРегистрации
ИЗ
    РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК Регистр
ГДЕ
    Регистр.Регистратор = &СсылкаНаИсправление

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

Подведем итог

Для оперативного решения проблемы в массовых случаях рекомендуется:

← На главную