1. Проблемы офлайн-работы ЭДО в 1С
Рост требований к информационной безопасности в последние годы привел к массовой миграции баз 1С на закрытые от внешнего доступа ресурсы. Эта тенденция пока не нашла должного отражения у разработчиков типовых решений. Многочисленные интернет-сервисы типовых решений предполагают перманентный доступ ко внешним ресурсам и порой не имеют возможности работать в изолированной системе.
Одним из важнейших сервисов поддерживаемых 1С является электронный документооборот. Многие бизнес-процессы без ЭДО просто не могут функционировать. Реализация ЭДО в типовых решениях 1С подразумевает возможность офлайн работы. Документы могут выгружаться в файл и загружаться из файлов, хотя найти нужные команды в пользовательском интерфейсе может оказаться не самой легкой задачей.
Работа с документами ЭДО через файлы может содержать не очевидные подводные камни. Одной из таких возможных проблем является очень долгая выгрузка в файл документа. Выгрузка даже небольшого документа занимала у пользователя 5-10 минут. Сама выгрузка происходила приемлемо быстро, но очень долго открывалась форма выгрузки:
Выгрузка документов в файл
Исследование в отладчике кода выгрузки привело в общий модуль СервисНастроекЭДО.
Вызовы функций ПолучитьПереченьСпециальныхОбстоятельств и ДанныеФайлаОблачногоХранилищаНастроек этого модуля занимали 99% времени выполнения! Несмотря на офлайн работу стэк ЭДО пытается выйти в интернет за служебными данными, не подозревая что интернет может быть недоступен. В результате запрос на скачивание файла висит пока не отвалится по тайм-ауту.
2. Способы устранения интернет-зависимости ЭДО
Что с этим можно сделать? В актуальной версии БП 3.0, на которой производилось исследование проблемы, помогло выключение константы «Разрешить доступ к Интернет-сервисам». Следует учитывать, что этот простой метод не гарантирует результат во всех возможных случаях, так как предварительная проверка доступа также завязана на параметр ПроверятьДоступКИнтернетСервисам настройки соединения.
Реализация стэка ЭДО в 1С хоть и основана на общей кодовой базе различается в разных типовых конфигурациях. Модули работы с ЭДО непрерывно развиваются, с добавлением новой функциональности, исправлением найденных ошибок, рефакторингом кода. Поэтому описанные выше конкретные рецепты исправления проблемы могут не помочь или их придется адаптировать под актуальное состояние кода БСП.
Чтобы не увязнуть в многочисленных сценариях обращения в интернет можно решить проблему радикально, исправив в расширении код функции ПолучениеФайловИзИнтернетаСлужебный. ПолучитьФайлИзИнтернет:
Если НастройкаСоединения.ПроверятьДоступКИнтернетСервисам И Не ОбщегоНазначения.РазрешенДоступКИнтернетСервисам() Тогда
Специалист компании ООО "Кодерлайн"
Андрей Дорошенко
