Почему в 1С:УПП не заполняется 4-й срок перечисления в 1-м разделе 6-НДФЛ и как это исправить?

Программист 1С v8.3 (Обычные формы) Налоговый учет
← На главную

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

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

Анализ причины возникновения ошибки

Для начала разберем природу проблемы. Согласно налоговому законодательству (действовавшему для отчетности за 2023 год), НДФЛ, удержанный в период с 23 по 31 декабря, должен быть перечислен в бюджет не позднее последнего рабочего дня календарного года.

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

Давайте посмотрим, что происходит в системе:

  1. Система видит дату удержания налога в конце декабря.
  2. Алгоритм определяет крайний срок уплаты как 31 декабря (или последний день месяца).
  3. Если 31 декабря — выходной (как это было в 2023 году), стандартная процедура переносит срок уплаты на январь следующего года (например, на 9 января).
  4. В регистре накопления НДФЛРасчетыСБюджетом запись формируется с датой уплаты в январе.
  5. При заполнении 6-НДФЛ за текущий год программа отбирает данные только с датой уплаты внутри отчетного года. Так как дата «улетела» в январь, сумма налога не попадает в раздел 1 годового отчета.

Исправление алгоритма расчета срока уплаты для зарплаты

Чтобы исправить ситуацию, нам необходимо вмешаться в работу модуля набора записей регистра накопления НДФЛРасчетыСБюджетом. Наша задача — принудительно установить корректный последний рабочий день года для декабрьских начислений, предотвратив перенос на январь.

Разберем процедуру ЗаполнитьКрайнийСрокУплаты(). В ней содержится логика определения дат. Нам нужно найти блок условия, обрабатывающий декабрьские даты.

Рассмотрим фрагмент кода, который необходимо модифицировать. Мы добавляем проверку на конкретный год (в данном примере рассматривалась проблема 2023 года, но логика применима и для понимания других периодов) и принудительно смещаем дату назад на рабочие дни.


// Находим этот блок в процедуре ЗаполнитьКрайнийСрокУплаты()
ИначеЕсли Месяц(ДатаУдержанияНалога) = 12 Тогда // в конце декабря - последний рабочий день года
    ПоследнийДеньГода = НачалоДня(КонецГода(ДатаУдержанияНалога));
    ПоследнийРабочийДень = ПоследниеРабочиеДниРазныхЛет[ПоследнийДеньГода];
    
    // ДОБАВЛЯЕМ СЛЕДУЮЩИЙ КОД:
    Если Год(ДатаУдержанияНалога) = 2023 Тогда
        // Отнимаем 2 дня (2 * 86400 секунд), чтобы попасть с 31.12 (воскресенье) на 29.12 (пятница)
        ПоследнийРабочийДень = ПоследнийДеньГода - 2 * 86400;
    КонецЕсли;

Что мы здесь сделали? Мы явно указали программе, что если год удержания 2023, то последним рабочим днем следует считать дату на два дня раньше календарного окончания года. Это позволяет записать в регистр дату 29.12.2023 вместо перенесенной январской даты.

Корректировка сроков уплаты для дивидендов

Отдельного внимания заслуживают дивиденды. Для них существуют особые правила определения сроков уплаты, которые также могут конфликтовать с логикой закрытия года. Часто для дивидендов устанавливается срок уплаты 28 число следующего месяца.

Если дивиденды выплачены в конце декабря, а программа ставит срок уплаты 28 января, они также выпадут из годового отчета 6-НДФЛ. Однако по правилам того периода, налог с дивидендов декабря также должен был попасть в отчетность текущего года.

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

Разберем пример корректировки кода для дивидендов:


// Определяем 28 число месяца удержания
ДвадцатьВосьмоеЧислоМесяцаУдержанияНалога = НачалоМесяца(ДатаУдержанияНалога) + 27 * 86400;

// Определяем 28 число следующего месяца
ДвадцатьВосьмоеЧислоСледующегоМесяца = ДобавитьМесяц(ДвадцатьВосьмоеЧислоМесяцаУдержанияНалога, 1);

// Проверяем условие для налога на прибыль (пп. 3 п. 9 ст. 226.1 НК РФ)
Если СтрокаНабора.ВключатьВДекларациюПоНалогуНаПрибыль Тогда 
    // Если нужно, здесь также можно добавить условие для конца года, 
    // чтобы срок не уходил в январь, если это противоречит требованиям заполнения 6-НДФЛ
    СрокУплаты = ДвадцатьВосьмоеЧислоСледующегоМесяца;
КонецЕсли;

Если вы уверены, что для вашего случая (например, выплата дивидендов ООО, а не АО) срок определился неверно (как 28.01), вам следует скорректировать присвоение переменной СрокУплаты, аналогично тому, как мы делали это для зарплаты — ограничив дату концом декабря.

Как проверить результат и применить изменения

После внесения изменений в код конфигурации (или расширения, если это возможно в вашей версии платформы, хотя для УПП чаще правят основную конфигурацию), одного сохранения недостаточно. Данные в регистрах уже записаны с неверными датами.

Выполним следующие шаги для актуализации данных:

  1. Поиск проблемных документов. Нам нужно перепровести документы, которые делали движения по регистру НДФЛРасчетыСБюджетом за период с 23 по 31 декабря. Обычно это документы выплаты зарплаты (РКО, Списание с расчетного счета) или документы «Начисление дивидендов организаций», если они сами регистрируют удержание.
  2. Перепроведение. Перепроведите документы начислений и выплат, относящиеся к концу декабря. Также, как советуют коллеги, стоит обратить внимание на документы неявок (отпуска, больничные), если выплаты по ним производились в этот период.
  3. Контроль через регистр. Чтобы убедиться, что код сработал, откройте регистр накопления НДФЛРасчетыСБюджетом. Сделайте отбор по полю СрокУплаты.

    Установите фильтр: СрокУплаты >= 01.01.СледующегоГода.

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

  4. Формирование отчета. После исправления движений регистра заново сформируйте отчет 6-НДФЛ. Теперь строка по 4-му сроку уплаты должна заполниться автоматически.

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

← На главную