Как исправить ошибку выгрузки СЗВ-СТАЖ в 1С:ЗУП 3.1.7.144 при изменении формата ПФР?

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

Сдача отчетности в Пенсионный фонд всегда сопряжена с жесткими временными рамками и неожиданными изменениями законодательства. Типичная ситуация, с которой столкнулись многие организации: при попытке отправить отчет СЗВ-СТАЖ из конфигурации 1С:Зарплата и Управление Персоналом 3.1.7.144 (и других релизов этой ветки), ПФР возвращает отрицательный протокол контроля с ошибкой формата (код ошибки 50). При этом переходить на более новую ветку конфигурации (например, 3.1.8) на этапе закрытия года у компании нет возможности или желания из-за рисков изменения алгоритмов расчета налогов и взносов.

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

Выясняем причину: Постановление ПФР № 507п и изменение схем

Первоисточником проблемы является Постановление Правления ПФР от 06.12.2018 № 507п. Этот документ кардинально обновил форматы электронных документов для СЗВ-СТАЖ, СЗВ-КОРР, СЗВ-ИСХ и ОДВ-1. ПФР установил окончательный срок перехода на новые форматы. С этого момента старые файлы выгрузки перестали проходить форматно-логический контроль на шлюзах приема АИС ПФР-2.

Релиз 1С:ЗУП 3.1.7.144 стал финальным в ветке 3.1.7. Фирма «1С» реализовала поддержку нового формата (а также переключатель «Формировать файл в формате 2019 года») только в следующих версиях конфигурации (начиная с 3.1.8.246). Пользователи устаревших версий оказались перед выбором: либо срочно обновлять базу, либо искать обходные пути.

Где в коде 1С:ЗУП генерируется XML-файл СЗВ-СТАЖ?

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

Для этого выполним следующие шаги в режиме Конфигуратора:

  1. Откроем дерево конфигурации и найдем ветку Документы.
  2. Найдем документ с именем СведенияОСтраховомСтажеЗастрахованныхЛицСЗВ_СТАЖ.
  3. Перейдем в Модуль менеджера этого документа.
  4. Найдем экспортную функцию СформироватьВыходнойФайл(). Именно в ней сосредоточена вся логика генерации XML-структуры, заполнения заголовков и записи сведений о застрахованных лицах.

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


<ЭДПФР xmlns="http://пф.рф/ВС/СЗВ-СТАЖ/2018-01-29" 
       xmlns:УТ2="http://пф.рф/УТ/2017-08-21" 
       xmlns:АФ4="http://пф.рф/АФ/2017-08-21" 
       xmlns:ВС2="http://пф.рф/ВС/типы/2017-10-23" 
       xmlns:ИС2="http://пф.рф/ВС/ИС/типы/2017-09-11" 
       xmlns:xs="http://www.w3.org/2001/XMLSchema">

В устаревшем коде 1С:ЗУП 3.1.7 выгрузка генерируется с использованием старых пространств имен (например, использующих схемы АФ2, ВС и ИС вместо обновленных АФ4, ВС2 и ИС2). Изменение этих строк внутри функции СформироватьВыходнойФайл() решает проблему с несоответствием схемы заголовка.

Критическое отличие нового формата: обработка кода «ДЛОТПУСК»

Простая замена пространства имен в заголовке файла (шапке XML) не решит проблему полностью. Важно учитывать еще одно ключевое изменение в логике выгрузки данных, введенное Постановлением № 507п:

Если в файле старого формата у обычных сотрудников будет присутствовать тег <ДЛОТПУСК>, проверочная программа выдаст ошибку, даже если шапка XML заменена на актуальную. При доработке функции СформироватьВыходнойФайл() необходимо программно исключить вывод этого блока для сотрудников без особых условий труда.

Альтернативные способы решения проблемы без программирования

Рассмотрим по шагам варианты, которые позволяют сдать отчетность без изменения программного кода конфигурации 1С:

Способ 1: Использование сторонних программ ПФР

Этот способ является наиболее надежным и не требует навыков программирования:

  1. Выгрузите файл СЗВ-СТАЖ из 1С:ЗУП 3.1.7.144 в стандартном (старом) формате.
  2. Скачайте и установите бесплатную проверочную/подготовительную программу от Пенсионного фонда (например, «Документы ПУ-6»).
  3. Импортируйте выгруженный XML-файл в программу «Документы ПУ-6».
  4. Выполните проверку и повторно выгрузите отчет из этой программы. При повторном экспорте «Документы ПУ-6» автоматически переформатируют структуру XML под актуальные стандарты Постановления 507п, скорректируют шапку и очистят лишние теги ДЛОТПУСК.

Способ 2: Конвертация силами операторов связи

Некоторые современные системы отправки регламентированной отчетности (например, СБиС или Контур.Экстерн) обладают встроенными конвертерами схем:

  1. Загрузите исходный файл из 1С в интерфейс вашего оператора отправки отчетности.
  2. Система распознает структуру файла и автоматически предложит преобразовать ее под требования нового формата 2019 года (или сделает это в фоновом режиме перед отправкой).
  3. Запустите встроенную проверку оператора. Если протокол чист — смело отправляйте документ в ПФР.

Способ 3: Ручная корректировка XML в текстовом редакторе

Для небольших организаций с малым числом сотрудников подойдет ручной метод корректировки данных через текстовый редактор (лучше использовать Notepad++):

  1. Откройте сформированный XML-файл в текстовом редакторе.
  2. Замените корневой элемент <ЭДПФР> и его атрибуты на актуальный заголовок схемы 2018-2019 годов (приведенный выше).
  3. Сделайте поиск по файлу тега ДЛОТПУСК.
  4. Если данный тег найден у сотрудников, не имеющих льготного стажа (нет кодов особых условий труда или выслуги лет), удалите этот блок стажа, объединив его с основным рабочим периодом сотрудника.
  5. Сохраните файл в кодировке UTF-8 и отправьте через проверочную программу.

Таким образом, мы детально разобрали все возможные пути обхода проблемы. Для разовой сдачи отчета проще всего использовать сторонние конвертеры или программу «Документы ПУ-6». Если же у вас в штате есть квалифицированный программист 1С, наиболее красивым решением будет создание небольшого расширения конфигурации, корректирующего функцию СформироватьВыходнойФайл() в модуле менеджера документа СведенияОСтраховомСтажеЗастрахованныхЛицСЗВ_СТАЖ.

← На главную