Почему не загружается ЭЛН в УПП 1.3 и как это исправить?

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет Промышленность, строительство и АПК
← На главную

При попытке загрузить электронный листок нетрудоспособности (ЭЛН) в устаревших конфигурациях, таких как УПП 1.3, пользователи часто сталкиваются с тем, что система отказывается принимать данные. Зачастую это сопровождается сообщениями об ошибках или некорректным заполнением полей. Рассмотрим детально, почему это происходит и как мы можем исправить ситуацию, не дожидаясь обновлений, которые для данной конфигурации уже не выпускаются.

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

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

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

Пошаговое решение проблемы в коде

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

  1. Откройте конфигуратор и найдите общий модуль ОбменСведениямиОПособияхСФСС.
  2. Перейдите к процедуре ПроверкаРезультатаОбменаЭЛН (или аналогичной функции, отвечающей за парсинг ответа).
  3. Найдите строку, в которой инициализируется переменная ДанныеЛНОтчество. Вы увидите примерно следующий код с ошибкой:
    
    ДанныеЛНОтчество = ?(ДанныеЛН.Свойства().Получить("PATRONIMIC") <> Неопределено, ДанныеЛН["PATRONIMIC"], Неопределено);
    
  4. Исправьте опечатку в названии ключа. Замените PATRONIMIC на patronymic.
  5. После внесения правок код должен выглядеть так:
    
    ДанныеЛНОтчество = ?(ДанныеЛН.Свойства().Получить("patronymic") <> Неопределено, ДанныеЛН["patronymic"], Неопределено);
    

Аналогичные проверки стоит провести и для других полей. Например, если при загрузке возникает ошибка Поле объекта не обнаружено (LN_RESULT), обратите внимание на то, как код обращается к результату обмена. В спецификациях ФСС поля часто имеют строгое написание, и лишнее подчеркивание или ошибка в регистре букв в коде 1С не позволят системе корректно прочитать структуру данных.

Что делать, если возникают дополнительные ошибки при правке кода

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

В такой ситуации мы рекомендуем:

Важные рекомендации по данным

Помимо технических ошибок, важно помнить о юридической стороне вопроса. Если в исходных данных ЭЛН (предоставленных медицинской организацией) содержится ошибка в ФИО или других паспортных данных, загрузка этих данных в 1С даже с исправленным кодом не сделает документ верным.

Если данные в больничном не соответствуют СНИЛС или паспорту, ФСС при камеральной проверке всё равно вернет документ с ошибкой или аннулирует его. В таких случаях мы советуем бухгалтерии:

Таким образом, мы видим, что решение проблемы в УПП 1.3 требует внимательного подхода к коду и проверки данных на стороне источника. Исправляя ошибки парсинга, вы сможете вернуть работоспособность механизма загрузки ЭЛН, значительно сократив ручной труд при расчете пособий.

← На главную