При работе с сервисом ФСС в конфигурациях 1С, включая УПП, пользователи часто сталкиваются с ошибками вида Ошибка импорта схемы или Не могу установить соединение. Разберемся, почему это происходит и как устранить данную проблему.
Основная причина нестабильности заключается в архитектуре взаимодействия 1С с веб-сервисом ФСС. При каждом запросе больничного листа программа пытается динамически загрузить множество WSDL-описаний и XSD-схем по внешним ссылкам в реальном времени. В условиях высокой нагрузки на сервера ФСС или кратковременных сетевых задержек, даже если сам сервис доступен, отдельные схемы могут не успеть загрузиться, что приводит к прерыванию всей операции. Более того, 1С часто повторяет запросы к одним и тем же схемам несколько раз подряд, что дополнительно увеличивает риск получения ошибки.
Самым надежным способом решения проблемы является отказ от динамической загрузки схем из интернета в пользу их локального размещения. Рассмотрим пошаговый алгоритм реализации этого метода.
Нам необходимо получить все необходимые файлы описания веб-сервиса (WSDL) и схемы данных (XSD) на локальный сервер или в сетевую папку. Для этой цели удобно использовать утилиту wget или аналогичные инструменты командной строки.
C:\1c_fss, доступную для сервера 1С.FileOperationsLnService.XSD-файлов прописаны абсолютные пути к серверам ФСС (например, https://eln.fss.ru/...), их нужно заменить на локальные. Для массовой замены строк в файлах удобно использовать утилиту типа nhrt или текстовый редактор.После того как файлы подготовлены и лежат локально, необходимо заставить 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С начали включать схемы непосредственно в макеты конфигурации. Если после обновления вы столкнулись с ошибкой Неверный формат, это может быть связано с некорректными префиксами в обновленных XML-макетах. В таких случаях необходимо:
tns и flt в определениях wsdl:message.namespace в соответствии со спецификацией ФСС.Использование локальных копий схем позволяет в разы ускорить работу системы и обеспечить стабильность загрузки ЭЛН, так как обращение к серверам ФСС теперь происходит только при непосредственном получении данных больничного, а не при разборе структуры сервиса.