Почему в 6-НДФЛ появляются нулевые суммы дохода после переноса данных из ЗУП 2.5 в ЗУП 3.1?

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

При переходе с устаревших версий программы на 1С:Зарплата и управление персоналом 3.1 многие пользователи сталкиваются с неприятной ситуацией: при формировании отчета 6-НДФЛ за первый отчетный период после переноса Раздел 2 заполняется некорректно. В нем появляются «странные» строки, где даты выплаты и удержания указаны, а сумма выплаченного дохода (строка 100 или 110 в старых формах) равна нулю или заполнена хаотично. Разберем детально, почему это происходит и как исправить ситуацию, не прибегая к тотальному ручному вводу данных.

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

Давайте проанализируем, как строится отчетность по НДФЛ в версии 3.1. В отличие от версии 2.5, где учет был более «плоским», в ЗУП 3.1 реализована жесткая цепочка взаимосвязей между начисленным доходом, исчисленным налогом и фактом его выплаты (удержания). Основным «поставщиком» данных для Раздела 2 6-НДФЛ является регистр накопления Расчеты налогоплательщиков с бюджетом по НДФЛ.

Рассмотрим ситуацию, возникшую при «кратком» (рекомендованном) переносе данных на определенную дату (например, на 01.10.2017). В этом случае исторические данные попадают в новую базу через документы Перенос данных. Проблема заключается в следующем:

  1. В конфигурации ЗУП 2.5 в регистре Расчеты налогоплательщиков с бюджетом по НДФЛ поле Сумма выплаченного дохода отсутствовало как класс. Программа фиксировала только суммы самого налога.
  2. При переносе данных старыми версиями обработок или правил (выпущенными до конца 2017 года), колонка дохода в документах Перенос данных для этого регистра часто оставалась пустой.
  3. Когда мы оформляем выплату зарплаты уже в новой базе ЗУП 3.1 (через документ Ведомость в банк или Ведомость в кассу), программа пытается «подтянуть» данные об удержанном налоге, ссылаясь на документы-основания. Если основанием является Перенос данных, в котором не указана сумма дохода, в регистре фиксируется удержание налога с нулевым доходом.

Шаг 1: Проверка движений в регистрах

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

Обратите внимание на документ-основание. Если там указан документ Перенос данных, нам придется корректировать именно его. Рассмотрим подробнее структуру этого документа.

Шаг 2: Корректировка документа «Перенос данных»

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

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

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

Шаг 3: Программный способ исправления (для разработчиков)

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

Рассмотрим примерный фрагмент кода, который иллюстрирует принцип поиска и заполнения данных:


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

Для Каждого Запись Из НаборЗаписей Цикл
    Если Запись.СуммаВыплаченногоДохода = 0 Тогда
        // Здесь должен быть поиск соответствия из регистра "Учет доходов для исчисления НДФЛ"
        // по сотруднику, дате получения дохода и коду дохода.
        НайденныйДоход = НайтиДоходПоПараметрам(Запись.Сотрудник, Запись.ДатаПолученияДохода, Запись.КодДохода);
        Если НайденныйДоход > 0 Тогда
            Запись.СуммаВыплаченногоДохода = НайденныйДоход;
        КонецЕсли;
    КонецЕсли;
КонецЦикла;

НаборЗаписей.Записать();

После выполнения такой обработки необходимо выполнить групповое перепроведение ведомостей, чтобы они пересчитали свои движения на основании обновленных данных переноса. Выясним причину: почему просто перепроведения ведомостей недостаточно? Потому что при проведении ведомость «защелкивает» данные, актуальные на момент проведения. Если в Перенос данных были нули, они «перетекли» в движения ведомости. Обновив источник, мы должны заставить ведомость обновить и свои записи.

Рекомендации по предотвращению проблемы

Если вы только планируете переход с ЗУП 2.5 на ЗУП 3.1, примите во внимание следующие советы:

Таким образом, мы выяснили, что «дикие» записи в 6-НДФЛ — это результат архитектурного разрыва между старой и новой версиями программы. Ключ к решению — наполнение аналитики по доходам в документах Перенос данных. Это вернет стройность учету и позволит сформировать корректную декларацию без ручной правки каждой строки в самом отчете.

← На главную