Как исправить ошибку 503 RECALC_REASON_CODE при отправке реестра ФСС в 1С:ЗУП 2.5

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

При отправке реестра сведений о пособиях по временной нетрудоспособности из программы 1С:Зарплата и Управление Персоналом (редакция 2.5) пользователи часто сталкиваются со следующей ошибкой форматного контроля:

Ошибка: Не соответствует формату XSD: Проверьте значение и порядок элемента RECALC_REASON_CODE в xml-документе на соответствие с Регламентом

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

Причина возникновения ошибки

Проанализируем структуру XML-файла выгрузки. Ошибка возникала даже при использовании актуального формата выгрузки версии 1.7.5. В сгенерированном файле выгрузки первичного документа можно увидеть следующий фрагмент кода XML:


<TYPE_INFO>0</TYPE_INFO>
<RECALC_REASON_CODE/>
<DOC_TYPE>1</DOC_TYPE>

Выясним причину, почему приемный комплекс ФСС отвергает такой файл:

  1. Тег TYPE_INFO со значением 0 означает, что выгружается первичный документ (не перерасчет).
  2. Тег RECALC_REASON_CODE отвечает за код причины перерасчета пособия.
  3. Согласно XSD-схеме ФСС, данный элемент является необязательным (атрибут minOccurs="0"). Однако при первичной подаче документа (когда TYPE_INFO = 0) данный элемент в XML-файле должен полностью отсутствовать.
  4. Если же выгружается перерасчет (TYPE_INFO = 1), тег RECALC_REASON_CODE становится обязательным и должен содержать числовой код причины (от 1 до 5).
  5. Типовой механизм выгрузки в 1С:ЗУП 2.5 в ряде релизов формировал пустой закрывающийся тег <RECALC_REASON_CODE/> для первичных документов, что XSD-анализатор ФСС расценивал как некорректное числовое значение и выдавал ошибку 503.

Способ 1. Доработка общего модуля 1С (Рекомендуемый способ)

Рассмотрим основной технический вариант решения проблемы — внесение небольшого исправления в программный код конфигурации.

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

  1. Откроем конфигуратор 1С:Предприятие.
  2. Найдем общий модуль ОбменСведениямиОПособияхСФСС.
  3. Перейдем к процедуре ДобавитьСтрокуВРеестр.
  4. Найдем блок кода, отвечающий за заполнение признака причины перерасчета.

В исходном коде конфигурации данный фрагмент выглядит следующим образом:


Если СтруктураДанных.Перерасчет Тогда
    НаборЗаписей.RECALC_REASON_CODE.Значение = Число(СтруктураДанных.КодПричиныПерерасчета);
КонецЕсли;

Доработаем этот алгоритм: если документ не является перерасчетом, принудительно удалим элемент RECALC_REASON_CODE из структуры набора записей выгрузки. Добавим ветку Иначе:


Если СтруктураДанных.Перерасчет Тогда
    НаборЗаписей.RECALC_REASON_CODE.Значение = Число(СтруктураДанных.КодПричиныПерерасчета);
Иначе
    НаборЗаписей.Удалить("RECALC_REASON_CODE");
КонецЕсли;

После сохранения изменений и повторного формирования реестра пустой тег <RECALC_REASON_CODE/> перестанет попадать в итоговый XML-файл первичного документа, и выгрузка успешно пройдет контроль ФСС.

Способ 2. Редактирование макета выгрузки

Если нет необходимости править логику общего модуля, разберем альтернативный вариант через редактирование макета формирования XML-файла.

  1. С помощью поиска в конфигураторе найдем макеты выгрузки сведений в ФСС по ключевому слову RECALC_REASON_CODE.
  2. Найдем табличный макет схемы выгрузки.
  3. Удалим строку, содержащую описание узла RECALC_REASON_CODE, для случая первичного реестра сведений.

Способ 3. Временная ручная корректировка XML-файла

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

  1. Выгрузим реестр сведений из 1С в XML-файл на диск.
  2. Откроем полученный файл в текстовом редакторе (например, Notepad++ или Блокнот).
  3. Воспользуемся функцией поиска и автозамены: найдем все вхождения строки <RECALC_REASON_CODE/> и заменим их на пустую строку (удалим).
  4. Сохраним файл и отправрим его в ФСС через оператора электронного документооборота.

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

← На главную