Как исправить ошибку «Каталог не обнаружен» при настройке интеграции 1С:ERP и 1С:Документооборот на IIS?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

Настройка бесшовной интеграции между решениями 1С:ERP Управление предприятием и 1С:Документооборот (1С:ДО) — это стандартная задача при построении единого информационного пространства крупного предприятия. Чаще всего обмен данными организуется с помощью веб-сервисов, развернутых на веб-сервере под управлением Internet Information Services (IIS) или Apache. Однако в процессе первоначальной настройки специалисты часто сталкиваются со специфическими ошибками подключения.

В этой статье мы подробно проанализируем природу популярной ошибки интеграции, когда система выдает сообщение об отсутствии локального каталога вида C:\inetpub\wwwroot\... при попытке инициализировать WS-соединение. Мы разберем причины ее возникновения, детально изучим конфигурационные файлы веб-сервера и предложим пошаговый алгоритм решения проблемы.

Анализ проблемы: почему возникает ошибка каталога?

Рассмотрим типичный сценарий. Администратор успешно настроил публикацию базы 1С:Документооборот на веб-сервере IIS. В целевом каталоге публикации (например, C:\inetpub\wwwroot\docmng) автоматически создались файлы дескриптора виртуального ресурса default.vrd и конфигурации IIS web.config. Проверка запуска базы через браузер (веб-клиент) проходит без замечаний. Однако при попытке настроить интеграцию на стороне 1С:ERP и выполнить авторизацию пользователя система выдает следующую критическую ошибку:


{ОбщийМодульИнтеграцияС1СДокументооборотВызовСервера.Модуль: Ошибка при вызове конструктора WSОпределения}
Определения = Новый WSОпределения(МестоположениеWS + "dm.1cws?wsdl", ...
по причине:
При вызове веб-сервиса произошла ошибка. При создании описания сервиса произошла ошибка. URL сервиса:
file:///C:/inetpub/wwwroot/docmng/ws/dm.1cws?wsdl
по причине:
Каталог не обнаружен 'C:\inetpub\wwwroot\docmng\ws\dm.1cws?wsdl'

Выясним причину такого поведения системы. Когда в настройках интеграции внутри 1С:ERP указывается адрес публикации веб-сервиса, начинающийся с localhost, 127.0.0.1 или некорректного относительного пути, сервер приложений 1С:ERP пытается выполнить данный код на своей стороне. Но если сервер приложений 1С:ERP и веб-сервер IIS с базой 1С:ДО физически разнесены на разные компьютеры (или виртуальные машины), то обращение к локальному хосту (localhost) заставляет систему искать публикацию на самом сервере ERP.

Если на сервере ERP также запущен IIS или файловая структура совпадает частично, то подсистема платформы 1С пытается интерпретировать переданный URL как локальный путь файловой системы Windows. В итоге вместо выполнения HTTP-запроса к удаленному серверу платформа ошибочно преобразует сетевой адрес в локальный путь формата file:///C:/inetpub/..., что неизбежно приводит к ошибке «Каталог не обнаружен».

Давайте разберем пошагово, как правильно локализовать и устранить эту проблему, а также сопутствующие сложности при публикации интеграционных веб-сервисов.

---

Шаг 1. Проверка доступности WSDL-описания через браузер

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

Откроем любой веб-браузер на компьютере, где установлен сервер приложений 1С:ERP (это важно, так как проверять доступность нужно именно с того узла, который будет отправлять запросы), и введем в адресную строку URL-адрес WSDL-описания веб-сервиса:

http://[ИМЯ_СЕРВЕРА_ДО]/docmng/ws/dm.1cws?wsdl

Или, в зависимости от версии конфигурации 1С:ДО, адрес может выглядеть следующим образом:

http://[ИМЯ_СЕРВЕРА_ДО]/docmng/ws/DMService?wsdl

Вместо [ИМЯ_СЕРВЕРА_ДО] необходимо указать:

  1. Статический IP-адрес сервера, на котором развернут IIS (например, 192.168.1.150).
  2. Доменное имя (FQDN) веб-сервера, если в вашей сети настроен DNS-сервер (например, do-server.company.local).

Если настройка выполнена верно, в окне браузера должен отобразиться XML-код (схема WSDL), описывающий методы интеграционного веб-сервиса. Если же браузер выдает ошибку «Не удается получить доступ к сайту» или ошибку HTTP 404, то проблема кроется в настройках самого IIS или сетевой доступности (брандмауэр, маршрутизация).

---

Шаг 2. Настройка адреса интеграции в 1С:ERP

После того как мы убедились, что WSDL-описание открывается по сети, перейдем к настройке на стороне учетной системы 1С:ERP:

  1. Запустим 1С:ERP под учетной записью с правами администратора.
  2. Перейдем в раздел НСИ и администрирование -> Настройка интеграции -> Интеграция с 1С:Документооборотом.
  3. В поле ввода адреса подключения к 1С:Документообороту укажем точный внешний URL-адрес, проверенный на предыдущем шаге (без использования localhost или локальных имен). Например: http://192.168.1.150/docmng.
  4. Введем имя пользователя и пароль для авторизации в системе 1С:ДО.
  5. Нажмем кнопку проверки соединения.

Использование реального IP-адреса или зарегистрированного доменного имени полностью исключает внутреннее преобразование адреса платформой 1С в локальный формат файловых путей Windows, благодаря чему конструктор WSОпределения успешно инициализирует соединение.

---

Шаг 3. Анализ конфигурационных файлов публикации (default.vrd)

Иногда даже при правильном указании сетевого пути соединение установить не удается. В таком случае нам необходимо проанализировать конфигурационный файл публикации default.vrd, расположенный в каталоге на сервере IIS (по умолчанию это C:\inetpub\wwwroot\[ИмяВиртуальногоКаталога]).

Давайте откроем этот файл в любом текстовом редакторе и проверим его структуру. Нам необходимо убедиться, что в блоке описания веб-сервисов (тег <ws>) присутствуют и разрешены к использованию необходимые нам сервисы интеграции. Пример корректно настроенного файла default.vrd выглядит следующим образом:


<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
       xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       base="/docmng"
       ib="Srvr="SQL-SERVER";Ref="docmng";">
    <ws>
        <point name="dm" alias="dm.1cws" enable="true"/>
        <point name="DMService" alias="DMService.1cws" enable="true"/>
    </ws>
</point>

Обратим особое внимание на атрибут enable="true". Если этот параметр установлен в значение false или строка с описанием веб-сервиса отсутствует вовсе, то при попытке обращения по адресу WSDL сервер IIS будет возвращать ошибку HTTP 404. При публикации базы из конфигуратора 1С обязательно убедитесь, что на вкладке «Веб-сервисы» установлены флажки напротив сервисов dm и DMService.

---

Шаг 4. Дополнительные настройки пула приложений IIS

При развертывании веб-сервисов 1С на IIS системные администраторы часто сталкиваются со скрытыми техническими нюансами, которые могут заблокировать работу веб-сервисов даже после исправления адреса подключения. Разберем основные из них:

---

Шаг 5. Особенности настройки для разных версий 1С:Документооборот

Архитектурные требования к интеграции существенно различаются в зависимости от редакции 1С:Документооборота, которую мы используем:

  1. При использовании 1С:ДО редакции 2.1 (КОРП/ПРОФ): Схема работы является односторонней. Нам достаточно опубликовать только базу 1С:ДО на веб-сервере IIS. Конфигурация 1С:ERP выступает исключительно в качестве клиента, отправляя SOAP-запросы к веб-сервису dm.1cws. Опубликовывать саму базу 1С:ERP на веб-сервере в данном сценарии не требуется.
  2. При использовании 1С:ДО редакции 3.0: Архитектурный подход кардинально изменился. Для полноценного функционирования бесшовной интеграции теперь требуется обязательная двухсторонняя публикация. Это означает, что мы должны опубликовать на веб-сервере IIS как базу 1С:Документооборот, так и базу 1С:ERP. Это связано с тем, что в редакции 3.0 система 1С:ДО должна иметь возможность отправлять обратные вызовы (коллбеки) в 1С:ERP для оперативного обновления статусов задач, синхронизации нормативно-справочной информации (НСИ) и выполнения фоновых бизнес-процессов.

---

Пример кода для программного подключения к веб-сервису

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


// Определим параметры подключения к веб-сервису ДО
АдресПодключения = "http://192.168.1.150/docmng/ws/dm.1cws?wsdl";
ИмяПользователяWeb  = "IntegrationUser";
ПарольПользователяWeb = "SecurePassword123";

// Создадим объект для определения веб-сервиса
Попытка
    // Инициализация WS-определений по сетевому адресу
    Определения = Новый WSОпределения(АдресПодключения, ИмяПользователяWeb, ПарольПользователяWeb);
    
    // Создание прокси для обращения к методам сервиса
    Прокси = Новый WSПрокси(Определения, "http://www.1c.ru/dm", "DMService", "DMServiceSoap");
    Прокси.Пользователь = ИмяПользователяWeb;
    Прокси.Пароль = ПарольПользователяWeb;
    
    Сообщить("Успешное подключение! Веб-сервис 1С:Документооборот доступен.");
Исключение
    ИнформацияОбОшибке = ОписаниеОшибки();
    // Запишем детальную информацию в Журнал регистрации для анализа администратором
    ЗаписьЖурналаРегистрации("Интеграция.Подключение", 
        УровеньЖурналаРегистрации.Ошибка, , , 
        "Не удалось создать WS-соединение: " + ИнформацияОбОшибке);
        
    ВызватьИсключение "Ошибка интеграции: проверьте сетевую доступность веб-сервиса.";
КонецПопытки;

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

---

Заключение

Подводя итоги нашего анализа, отметим, что ошибка «Каталог не обнаружен» при интеграции 1С:ERP и 1С:ДО практически всегда вызвана указанием локального адреса подключения (localhost) при работе систем на разных физических серверах. Использование внешнего статического IP-адреса или DNS-имени сервера IIS полностью решает данную проблему. Также при настройке всегда следует обращать внимание на соответствие разрядности платформы 1С и пула приложений IIS, корректность структуры файла default.vrd и особенности двухсторонней публикации, требуемые современными редакциями 1С:Документооборота 3.0.

← На главную