Как исправить неверное начисление НДФЛ в 1С:Бухгалтерия 3.0 (релизы 3.0.57.х и 3.0.58.х)?

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

Проблема некорректного исчисления НДФЛ, проявляющаяся в виде огромных отрицательных или необоснованно завышенных сумм (вплоть до миллионов), стала массовой для пользователей 1С:Бухгалтерия 3.0 в начале 2018 года. Ситуация была связана с глобальным изменением механизмов учета налога и его привязкой к конкретным датам выплаты дохода. В этой статье мы подробно разберем, почему возникают такие ошибки и как привести учет в порядок.

Причины возникновения ошибки

Выясним причину такого поведения программы. Основная техническая проблема заключалась в некорректном заполнении регистров накопления, таких как РасчетыНалогоплательщиковСБюджетомПоНДФЛ и УчетДоходовДляИсчисленияНДФЛ. В этих регистрах появилось обязательное поле КатегорияДохода. При обновлении на проблемные релизы (начиная с 3.0.57.10) алгоритм обработки существующих записей работал со сбоями.

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

Решение 1: Официальный метод (Обновление и перепроведение)

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

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

  1. Создадим архивную копию информационной базы. Это обязательный шаг перед любыми массовыми манипуляциями с документами.
  2. Обновим конфигурацию до актуального релиза.
  3. Выполним последовательное перепроведение документов, начиная с периода возникновения ошибки (обычно это январь 2018 года или сентябрь 2017 года, в зависимости от того, когда было установлено обновление 3.0.57).
  4. Важно соблюдать хронологию: сначала перепроводятся документы НачислениеЗарплаты, затем Отпуск, БольничныйЛист, и только после них документы выплаты — ВедомостьНаВыплатуЗарплаты, СписаниеСРасчетногоСчета (или ВыдачаНаличных).
  5. После перепроведения выплат необходимо также перепровести документы СписаниеСРасчетногоСчета, которыми оформлялось перечисление НДФЛ в бюджет.

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

Решение 2: Сброс флагов ручной корректировки

Иногда пользователи замечают, что даже при нажатии кнопки «Пересчитать НДФЛ» суммы не меняются. Посмотрим на скрытые механизмы документа НачислениеЗарплаты. В нем существуют реквизиты КорректировкаНДФЛ и КорректировкаВзносов. Если эти флаги установлены в значение Истина, программа считает, что бухгалтер внес изменения вручную, и блокирует автоматический расчет.

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


// Пример программного сброса флагов корректировки
ОбъектДокумент = СсылкаНаДокумент.ПолучитьОбъект();
Для Каждого СтрокаНДФЛ Из ОбъектДокумент.НДФЛ Цикл
    // Устанавливаем флаг корректировки в Ложь для пересчета
    ОбъектДокумент.КорректировкаНДФЛ = Ложь;
КонецЦикла;
Для Каждого СтрокаВзносы Из ОбъектДокумент.Взносы Цикл
    ОбъектДокумент.КорректировкаВзносов = Ложь;
КонецЦикла;
ОбъектДокумент.Записать(РежимЗаписиДокумента.Проведение);

После снятия этих признаков документ при перезаполнении начнет учитывать актуальные данные регистров и корректно рассчитывать налог.

Решение 3: Исправление через расширение (для программистов)

Если проблема сохраняется даже на более новых релизах (например, 3.0.67), и вы наблюдаете нереальные суммы начислений, можно прибегнуть к исправлению программного кода через механизм расширений. Проанализируем функцию ЭтоДанныеМежрасчетногоПериода в модуле УчетНачисленнойЗарплаты.

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


&Вместо("ЭтоДанныеМежрасчетногоПериода")
Функция Ипр_ЭтоДанныеМежрасчетногоПериода(ПорядокВыплаты)
    // Комментируем стандартную логику проверки
    // Если ПорядокВыплаты = Перечисления.ПорядокВыплатыЗарплатыПеречислением.ВМежрасчетныйПериод Тогда
    //     Возврат Истина;
    // КонецЕсли;
    
    // Принудительно возвращаем Истина для корректного анализа всех начислений периода
    Возврат Истина;
КонецФункции

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

Проверка регистров и вычетов

Разберем еще один важный момент: потерю стандартных налоговых вычетов на детей. Проблема часто возникает, если сотрудники меняли структурное подразделение или если в регистре УчетДоходовДляИсчисленияНДФЛ отсутствует привязка к налоговому органу (регистрация в ИФНС).

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

Подводя итог, отметим: в большинстве случаев корректный результат достигается после обновления на последний релиз и строго хронологического перепроведения цепочки документов «Начисление — Ведомость — Списание с расчетного счета». Если же суммы «замерли» и не меняются, используйте групповое изменение реквизитов для сброса флагов ручной корректировки НДФЛ.

← На главную