Как исправить некорректный расчет НДФЛ при сторнировании оклада больничным листом в 1С:ЗУП 3.1?

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

При расчете заработной платы в программе 1С:Зарплата и управление персоналом 8 (редакция 3.1) бухгалтеры нередко сталкиваются со сложными перерасчетами прошлых периодов. Типичный сценарий — сторнирование оклада за прошлый месяц из-за несвоевременно предоставленного больничного листа. Ситуация усложняется, если сотрудник имеет право на стандартные налоговые вычеты, а в текущем месяце увольняется. В таких случаях программа может ошибочно завысить сумму удерживаемого НДФЛ.

В этой статье мы подробно проанализируем, почему возникает данная проблема, рассмотрим внутренние алгоритмы учета НДФЛ в программе и разберем по шагам практические методы исправления этой ошибки.

Суть проблемы и пример из практики

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

  1. В январе сотрудник находился в отпуске, после чего отработал 3 дня (с 29 по 31 января). За эти дни ему начислен оклад в размере 2 380,80 рублей.
  2. Сотрудник имеет право на стандартный вычет на ребенка в размере 2 800 рублей. Поскольку вычет превышает сумму дохода (2 380,80 < 2 800), облагаемая база по НДФЛ в январе равна нулю. Налог не исчислялся и не удерживался. Неиспользованный остаток вычета в размере 419,20 рублей переносится на февраль.
  3. В феврале сотрудник приносит больничный лист, открытый 31 января. Программа автоматически сторнирует оплату за 31 января в размере 793,60 рублей (один рабочий день) и начисляет пособие по временной нетрудоспособности в размере 5 918,08 рублей.
  4. В этом же месяце сотрудник увольняется. Ему начисляется компенсация за неиспользованный отпуск в размере 5 675,80 рублей.

При оформлении окончательного расчета в документе Увольнение программа должна рассчитать НДФЛ нарастающим итогом за январь и февраль. Математически расчет выглядит следующим образом:

Доходы: 2 380,80 (январь) - 793,60 (сторно января) + 5 918,08 (больничный) + 5 675,80 (компенсация) = 13 181,08 рублей.

Вычеты: 2 800 (январь) + 2 800 (февраль) = 5 600 рублей.

Налоговая база: 13 181,08 - 5 600 = 7 581,08 рублей.

Исчисленный НДФЛ (13%): 7 581,08 * 13% = 986 рублей.

Однако на практике в версиях 1С:ЗУП 3.1.8 и 3.1.9 программа рассчитывает налог в размере 1 089 рублей. Разница составляет ровно 103 рубля, что соответствует 13% от сторнированной январской суммы оклада (793,60 * 13% = 103,17 руб.). Программа пытается удержать налог со сторнированного дохода, которого сотрудник фактически не получал.

Выясняем причину: почему программа ошибается?

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

Разделение доходов по категориям. Начиная с версии ЗУП 3.1.8, программа жестко разделяет доходы по категориям. Сторнируемый оклад за январь относится к категории Оплата труда (код дохода 2000), а начисления февраля (больничный лист и компенсация отпуска при увольнении) относятся к категории Прочие доходы (коды 2300 и 4800). При сторнировании оклада за январь в межрасчетном документе (больничном листе) программа уменьшает базу по коду дохода 2000 за январь.

Учет отрицательного налога. Поскольку в январе НДФЛ фактически не начислялся (база была нулевой из-за вычета), сторнирование дохода приводит к возникновению «виртуального» отрицательного налога в размере -103 рубля по категории Оплата труда за январь. Согласно современным алгоритмам 1С, программа блокирует отражение отрицательного НДФЛ в межрасчетных документах, ожидая, что этот минус закроется при расчете зарплаты или увольнения в конце месяца.

Конфликт вычетов при окончательном расчете. При заполнении документа Увольнение программа видит уменьшение январской базы по коду 2000. Она пытается уменьшить (сторнировать) предоставленный в январе вычет, так как доход января стал меньше размера вычета. Но поскольку в феврале у сотрудника отсутствуют новые начисления по коду 2000 (он весь месяц болел и увольняется), алгоритм переноса вычетов и перерасчета налога «запутывается». Вместо корректного уменьшения итогового налога программа регистрирует сторно вычета отдельно от сторно дохода, что приводит к искусственному завышению исчисленного НДФЛ на те самые 103 рубля.

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

Варианты решения проблемы

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

Способ 1. Ручная корректировка НДФЛ в документе «Увольнение»

Это самый быстрый и простой способ исправить ситуацию непосредственно в момент расчета увольнения. Если вам необходимо срочно выдать сотруднику расчет и отправить отчетность, выполните следующие действия:

  1. Откройте проведенный документ Увольнение.
  2. Перейдите на вкладку НДФЛ.
  3. Найдите строку с расчетом налога сотрудника.
  4. Установите флажок Корректировать налог вручную (если данная опция доступна в вашем релизе) или просто дважды щелкните по ячейке с суммой налога и введите правильное значение (уменьшите сумму налога на ошибочные 103 рубля).
  5. Запишите и проведите документ.

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

Способ 2. Корректировка с помощью документа «Операция учета НДФЛ»

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

  1. Перейдите в раздел Налоги и взносы и выберите пункт Операции учета НДФЛ.
  2. Создайте новый документ. В поле Дата укажите дату увольнения сотрудника.
  3. Перейдите на вкладку Доходы и добавьте строку. Укажите дату получения дохода (31.01), код дохода (2000) и сумму сторно (-793,60). Это позволит программе корректно сопоставить уменьшение дохода.
  4. Перейдите на вкладку Исчислено по ставке 13% (30%) кроме дивидендов. Добавьте строку, укажите дату получения дохода (31.01) и введите сумму налога с минусом (в нашем примере это -103 рубля).
  5. Запишите и проведите документ Операция учета НДФЛ.
  6. Вернитесь в документ Увольнение и пересчитайте НДФЛ. Программа должна учесть внесенную операцию и рассчитать итоговый налог за февраль корректно без ручного вмешательства в самом увольнении.

Способ 3. Временное исключение сторно из документа «Больничный лист»

Этот метод часто используется опытными расчетчиками как обходной маневр для восстановления корректной последовательности расчетов:

  1. Откройте документ Больничный лист, которым было зарегистрировано сторнирование оклада за январь.
  2. Перейдите на вкладку Пересчет прошлого периода.
  3. Временно удалите строку, содержащую сторнирование январского оклада (или обнулите сумму сторно в этой строке).
  4. Рассчитайте и проведите больничный лист, а затем проведите документ Увольнение. Налог рассчитается без ошибок, так как январская база не будет уменьшена в рамках этого документа.
  5. Для того чтобы скорректировать взаиморасчеты с сотрудником и не выплатить ему лишний день за 31 января, сумму сторно (793,60 рублей) можно удержать вручную в документе увольнения на вкладке Удержания или скорректировать сумму к выплате непосредственно в ведомости.

Способ 4. Профилактика ошибок (рекомендации на будущее)

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

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

← На главную