В текущих реалиях учета заработной платы, когда законодательство изменило порядок определения даты получения дохода, многие пользователи конфигурации УПП столкнулись с неприятной ошибкой: при расчете НДФЛ за месяц происходит «задваивание» налога. Программа суммирует НДФЛ, исчисленный в документе Начисление аванса, с налогом, рассчитанным в документе Начисление зарплаты, что приводит к некорректным удержаниям и ошибкам в отчетности.
Давайте подробно разберем, почему это происходит и какими способами можно устранить данную проблему.
Основная причина кроется в алгоритме работы регистров накопления НДФЛ: расчеты с бюджетом. При проведении документа начисления зарплаты за месяц система пытается исчислить налог с совокупного дохода, не всегда корректно учитывая записи о зачете авансовых платежей или сторнировании налога, начисленного ранее. Особенно часто проблема проявляется у сотрудников, у которых сумма начислений в основном документе за месяц меньше, чем сумма, начисленная в аванс (например, при наличии разовых начислений или отклонений от графика работы).
Первым делом мы рекомендуем проверить версию вашего релиза. Разработчики 1С признали наличие ошибки (зарегистрирована под номером 60005506 и аналогичными) и выпустили ряд обновлений, начиная с релиза 197.1. В этих версиях были внесены изменения в механизмы расчета налогов. Убедитесь, что вы используете актуальное обновление, так как именно в последних релизах исправлены наиболее критичные моменты с учетом НДФЛ.
Если обновление по каким-то причинам недоступно или проблема сохраняется, можно рассмотреть вариант ручной корректировки кода в общем модуле ПроведениеРасчетов. Рассмотрим, как можно изменить процедуру ДописатьАлгоритмВЗапрос.
Для исправления можно переписать запрос в модуле, чтобы он корректно учитывал записи НДФЛ при расчетах:
// Пример корректировки запроса в модуле ПроведениеРасчетов
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Удержания.НомерСтроки КАК НомерСтроки,
| Удержания.ФизЛицо КАК Физлицо,
| НАЧАЛОПЕРИОДА(Удержания.БазовыйПериодНачало, МЕСЯЦ) КАК МесяцУдержания
|ПОМЕСТИТЬ ВТФизлица
|ИЗ
| РегистрРасчета.УдержанияРаботниковОрганизаций КАК Удержания
|ГДЕ
| Удержания.ВидРасчета В(&парамМассивУдержанийИЛ)
| И Удержания.Регистратор = &парамРегистратор
|... // (остальная часть запроса в соответствии с логикой расчета)"
Более элегантное решение, предложенное практиками, заключается в добавлении условия на ЗарегистрированоПриНачисленииАванса:
// В процедуре ДописатьАлгоритмВЗапрос после строки:
// И НДФЛРасчетыСБюджетом.ВидСтроки = ЗНАЧЕНИЕ(Перечисление.НДФЛРасчетыСБюджетомВидСтроки.Начисление)
// Добавляем условие:
| И НДФЛРасчетыСБюджетом.ЗарегистрированоПриНачисленииАванса = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
Независимо от выбранного способа исправления, мы настоятельно рекомендуем выполнить следующие действия:
НДФЛ: расчеты с бюджетом. Если там «зависли» записи с некорректным налогом, их необходимо проанализировать.Начисление зарплаты. Если проблема сохраняется для отдельных сотрудников, убедитесь, что в их документах нет «зависших» движений по НДФЛ из прошлых периодов.Начисление аванса (соответствующей реальной дате выплаты) помогает системе правильно сгруппировать записи в регистрах.Важное примечание: Если у сотрудников есть доходы, превышающие аванс, или же наоборот — аванс был больше основного начисления, программа может вести себя непредсказуемо. В таких ситуациях рекомендуем временно исключать таких сотрудников из массового расчета и проверять их данные индивидуально в регистре НДФЛ: расчеты с бюджетом.
Мы надеемся, что эти шаги помогут вам наладить корректный расчет налога в УПП. Рекомендуем всегда делать резервную копию базы данных перед внесением изменений в код!