Почему НДФЛ с доходов по договору ГПХ не переносится на дату выплаты в ЗУП 3.1?

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

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

Нормативная база и логика программы

Для начала проанализируем законодательную основу, на которой строится алгоритм программы. Согласно статье 223 НК РФ, дата фактического получения дохода определяется по-разному в зависимости от категории этого дохода:

  1. Оплата труда (код дохода 2000): Датой получения дохода признается последний день месяца, за который был начислен доход (независимо от даты выплаты).
  2. Прочие доходы (включая ГПХ, коды 2010, 4800 и др.): Датой получения дохода признается день фактической выплаты денежных средств.

Рассмотрим, как это реализовано в ЗУП 3.1. Когда мы создаем документ Начисление по договорам или Начисление зарплаты и взносов, в программе фиксируется планируемая дата выплаты. Именно на эту дату программа ориентируется при предварительном исчислении налога. Однако окончательное "закрепление" даты получения дохода происходит в момент проведения Ведомости на выплату.

Почему в отчетах возникает разрыв между исчисленным и удержанным налогом?

Проанализируем ситуацию: доход начислен в январе с планируемой датой выплаты 31.01.2020. В отчете "Анализ НДФЛ по месяцам" мы видим доход и исчисленный налог в январе. Если фактическая выплата происходит в феврале, программа должна выполнить следующие действия:

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

Причина 1: Несоответствие категории дохода в коде 2010

Иногда при обновлении или некорректном переносе данных в настройках вида дохода (справочник Виды доходов НДФЛ) для кода 2010 может оказаться ошибочно установлена категория "Оплата труда" вместо "Прочие доходы". Проверим настройки:

  1. Перейдем в раздел Налоги и взносы — Виды доходов НДФЛ.
  2. Найдем код 2010.
  3. Убедимся, что в поле "Категория дохода" указано "Прочие доходы (основная налоговая база)".

Если там указана "Оплата труда", программа всегда будет считать датой дохода конец месяца начисления, и никакой перенос на дату ведомости не произойдет.

Причина 2: Проблема пустых сумм в регистрах (особенности релизов 3.1.12)

Рассмотрим специфическую техническую проблему, описанную пользователями: при проведении Ведомости записи в регистре Учет доходов для исчисления НДФЛ создаются, но суммы в них равны нулю. Это часто наблюдалось в релизах линейки 3.1.12.XXX. Проанализируем, почему это происходит.

Программа пытается сопоставить документ-основание (Начисление) и Ведомость. Если между этими документами нарушена логическая цепочка или в Начислении указана одна планируемая дата, а в Ведомости — кардинально другая, алгоритм пересчета может дать сбой. Чтобы исправить это, выполним следующие шаги:

  1. Отменим проведение всех Ведомостей, в которые попал данный сотрудник за спорный период.
  2. Зайдем в документ начисления (например, Начисление по договорам) и проверим поле "Планируемая дата выплаты". Установим там дату, максимально близкую к реальной дате выплаты (февраль).
  3. Пересчитаем НДФЛ в документе начисления (кнопка "Пересчитать НДФЛ" на вкладке НДФЛ).
  4. Проведем документ начисления.
  5. Создадим новую Ведомость (или полностью перезаполним старую).

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

Причина 3: Разрыв связей в регистре "Документы-основания подоходного налога"

В современных версиях ЗУП 3.1 существует скрытый технический регистр Документы-основания подоходного налога. Если в нем накопились некорректные записи (например, после ручных правок в документах), программа перестает понимать, какой остаток дохода нужно перенести на новую дату. Посмотрим, как это проверить:

Используем меню "Функции для технического специалиста" (ранее "Все функции"):

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

Разбор на примере кода

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


// Логика формирования движений в Ведомости при переносе даты дохода
Если ПланируемаяДатаНачисления <> ДатаВедомости Тогда
    // 1. Сторнируем доход по старой дате
    Движение = РегистрыНакопления.УчетДоходовДляИсчисленияНДФЛ.Добавить();
    Движение.Период = ДатаВедомости;
    Движение.ДатаПолученияДохода = ПланируемаяДатаНачисления;
    Движение.СуммаДохода = -СуммаКВыплате; // Сторно
    
    // 2. Отражаем доход по новой дате
    Движение = РегистрыНакопления.УчетДоходовДляИсчисленияНДФЛ.Добавить();
    Движение.Период = ДатаВедомости;
    Движение.ДатаПолученияДохода = ДатаВедомости;
    Движение.СуммаДохода = СуммаКВыплате; // Плюс
КонецЕсли;

Если в вашей базе СуммаДохода в этих движениях равна 0, значит, функция РассчитатьСуммуДоходаПоДокументуОснованию() внутри программного модуля не нашла остатка дохода, привязанного к конкретному договору. Это случается, если доход уже был "погашен" другой ведомостью или корректировкой.

Рекомендации для корректного отражения

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

  1. Следите за планируемой датой: В документах начисления ГПХ всегда ставьте дату, в которую реально планируете платить. Если выплата переносится на другой месяц — не поленитесь зайти в начисление и поменять дату там до создания ведомости.
  2. Обновляйте программу: Как показала практика, версии 3.1.13 и выше работают с механизмом переноса НДФЛ гораздо стабильнее, чем 3.1.12. Многие ошибки "пустых строк" были исправлены разработчиками в типовом коде.
  3. Используйте отчет "Проверка раздвоения доходов": Периодически формируйте отчет Анализ НДФЛ по месяцам с детализацией до Регистратора. Если вы видите, что по одной ведомости идут две строки (минус и плюс), — это нормальная работа программы. Если видите только плюс в феврале без минуса в январе (при наличии там начисления) — это повод для проверки категории дохода.

Подводя итог, отметим: правильным вариантом для ГПХ является тот, при котором и доход, и исчисленный налог, и удержанный налог попадают в один налоговый период (месяц выплаты). Если ваша программа оставляет исчисленный налог в месяце начисления — это признак того, что она воспринимает этот доход как "Оплату труда", что методологически неверно для договоров ГПХ.

← На главную