Почему при загрузке электронных больничных листов из ФСС возникает ошибка импорта схемы?

Программист 1С v8.3 (Обычные формы) 1С:ERP Управление предприятием Налоговый учет Промышленность, строительство и АПК
← На главную

При работе с сервисом ФСС в конфигурациях 1С, включая УПП, пользователи часто сталкиваются с ошибками вида Ошибка импорта схемы или Не могу установить соединение. Разберемся, почему это происходит и как устранить данную проблему.

Анализ причин сбоев при обмене с ФСС

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

Решение проблемы: перевод на локальные схемы

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

Шаг 1: Скачивание и подготовка схем

Нам необходимо получить все необходимые файлы описания веб-сервиса (WSDL) и схемы данных (XSD) на локальный сервер или в сетевую папку. Для этой цели удобно использовать утилиту wget или аналогичные инструменты командной строки.

  1. Создайте локальную папку, например, C:\1c_fss, доступную для сервера 1С.
  2. Скачайте все файлы, на которые ссылается описание сервиса FileOperationsLnService.
  3. Так как внутри XSD-файлов прописаны абсолютные пути к серверам ФСС (например, https://eln.fss.ru/...), их нужно заменить на локальные. Для массовой замены строк в файлах удобно использовать утилиту типа nhrt или текстовый редактор.

Шаг 2: Настройка конфигурации 1С

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

Вариант А: Изменение общего макета

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

Было: schemaLocation="https://eln.fss.ru/.../Organization.xsd"

Стало: schemaLocation="file:////имя_сервера/папка/Organization.xsd"

Вариант Б: Программная подмена (без изменения макета)

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


Чем = "C:\1c_fss\"; 
ОписаниеВебСервиса = ПолучитьОбщийМакет("ОбменДаннымиФССЭЛНОписаниеВебСервиса").ПолучитьТекст();
Если КаталогНаДиске.Существует() Тогда
    ОписаниеВебСервиса = СтрЗаменить(ОписаниеВебСервиса, "https://eln.fss.ru/.../", Чем);
КонецЕсли;
WSОпределения = Новый WSОпределения(ОписаниеВебСервиса, ...);

Что делать, если используется обновление 1.3.173.3 и выше?

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

  1. Проверить соответствие префиксов tns и flt в определениях wsdl:message.
  2. При необходимости откатить макет к работоспособной версии или вручную исправить пространство имен namespace в соответствии со спецификацией ФСС.

Использование локальных копий схем позволяет в разы ускорить работу системы и обеспечить стабильность загрузки ЭЛН, так как обращение к серверам ФСС теперь происходит только при непосредственном получении данных больничного, а не при разборе структуры сервиса.

← На главную