Как исправить ошибку ERR_1822(Ф) «Не указана категория ЛН: оригинал или дубликат» при отправке реестра в ФСС?

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

При работе в программе 1С:Зарплата и управление персоналом 3.1 (релизы 3.1.14.394, 3.1.16.133 и аналогичные) пользователи массово столкнулись с проблемой при отправке реестра прямых выплат. При попытке выгрузки или отправки через встроенный сервис 1С-Отчетность шлюз ФСС возвращает протокол с ошибкой: ERR_1822(Ф) Не указана категория ЛН: оригинал или дубликат. Проанализируем причины этой ситуации и разберем способы ее решения: от простых пользовательских манипуляций до программной правки кода через расширение.

Выясняем причину возникновения ошибки

Ситуация связана с переходом ФСС на новый формат реестра — 1.7.7. В этом формате изменились требования к обязательности заполнения некоторых полей. Рассмотрим подробнее: для электронных листков нетрудоспособности (ЭЛН) многие данные теперь считаются необязательными, так как они уже есть в базе фонда. Однако для бумажных больничных требования остались строгими.

Проблема заключается в том, что в коде конфигурации при формировании XML-файла программа некорректно применяет правила формата 1.7.7 к бумажным носителям. В результате в файл выгрузки просто не попадают обязательные теги PRIMARY_FLAG (признак первичного документа) и DUPLICATE_FLAG (признак дубликата). Шлюз ФСС, не обнаружив этих данных для бумажного листка (где LN_TYPE = 0), отклоняет весь реестр.

Решение 1: Установка официального патча или обновление конфигурации

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

  1. Перейдем в раздел Администрирование — Обслуживание — Обновление программы.
  2. Выберем пункт Установленные исправления (патчи).
  3. Если патч EF_10228885 отсутствует, нажмем Поиск и установка исправлений (требуется доступ к интернет-поддержке).

Если патчи не помогают, наиболее надежным решением будет обновление конфигурации до актуального релиза. Ошибка была окончательно исправлена в версиях 3.1.14.436 и 3.1.16.174. Проанализируем ситуацию: если обновиться прямо сейчас невозможно из-за доработок базы, перейдем к техническим способам решения.

Решение 2: Использование расширения для корректировки выгрузки

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

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


&Вместо("ЗаполнитьСтрокуРеестра")
Процедура Расш1_ЗаполнитьСтрокуРеестра(ROW, СтруктураДанных)
    // Вызываем стандартную логику или полностью заменяем ее
    // Важно убедиться, что заполняются признаки первичного документа и дубликата
    
    ROW.LN_CODE = СтруктураДанных.НомерВходящегоДокумента;
    ROW.LN_TYPE = Формат(СтруктураДанных.ЭтоЭЛН, "БЛ=0; БИ=1");
    
    // Исправление признака первичного документа
    Если ЗначениеЗаполнено(СтруктураДанных.НомерПервичногоБольничного) Тогда
        ROW.PREV_LN_CODE = СтруктураДанных.НомерПервичногоБольничного;
        ROW.PRIMARY_FLAG = 0; // Это продолжение
    Иначе
        ROW.PRIMARY_FLAG = 1; // Это первичный
    КонецЕсли;
    
    // Исправление признака дубликата
    ROW.DUPLICATE_FLAG = Формат(СтруктураДанных.ЯвляетсяДубликатом, "БЛ=0; БИ=1");
    
    // Далее следует заполнение остальных полей (ФИО врача, мед. организация и т.д.)
    ROW.LPU_NAME = СтруктураДанных.НаименованиеМедицинскойОрганизации;
    ROW.LPU_OGRN = СтруктураДанных.ОГРНМедицинскойОрганизации;
    // ... остальной код заполнения ...
КонецПроцедуры

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

Решение 3: Пользовательские «хитрости» (workarounds)

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

  1. Манипуляция с признаком дубликата: В некоторых случаях помогает временная установка галочки Является дубликатом непосредственно в больничном листе, проведение документа и последующий возврат в исходное состояние. Это может «встряхнуть» кэш данных документа.
  2. Заполнение данных о простое: Было замечено, что 1С включает тег DUPLICATE_FLAG в XML, если заполнены сведения на закладке «Периоды простоя». Можно временно указать фиктивный период, выгрузить файл в стороннюю программу (СБИС, Контур), там удалить простои и отправить реестр.
  3. Ручная правка XML: Если реестров немного, выгрузите их в файл. Откройте файл через Notepad++ и найдите блок LN_DATA. Убедитесь, что внутри присутствуют теги <PRIMARY_FLAG>1</PRIMARY_FLAG> и <DUPLICATE_FLAG>0</DUPLICATE_FLAG>. Если их нет — добавьте их вручную перед закрывающим тегом блока данных больничного.

Резюме

Мы выяснили, что ошибка ERR_1822(Ф) — это следствие программного сбоя при реализации формата 1.7.7 для бумажных листков нетрудоспособности. Посмотрим на алгоритм действий: первым делом пробуем установить патч EF_10228885. Если это не помогает — обновляем программу до релизов конца февраля 2021 года или позже. В случае невозможности обновления используем механизм расширений для принудительного заполнения полей PRIMARY_FLAG и DUPLICATE_FLAG в XML-файле.

Помните, что формат 1.7.7 требует также более тщательного заполнения данных о медицинском учреждении (ОГРН, адрес) и враче для бумажных носителей. Ошибка WARN_920, часто идущая в паре, не является критичной и указывает лишь на лишние пробелы в поле кем выдан документ, которые шлюз ФСС удаляет автоматически.

← На главную