Интеграция информационных систем — это сложный процесс, требующий точной настройки каналов обмена данными. В экосистеме 1С:Предприятие одним из стандартов де-факто для внешнего взаимодействия является протокол SOAP, который базируется на языке описания интерфейсов WSDL. Без корректного WSDL-файла внешняя система просто не узнает, какие методы доступны для вызова и какие параметры они принимают.

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

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

Подготовка конфигурации к публикации веб-сервисов

Первым шагом является активация необходимой функциональности внутри самой конфигурации 1С:Предприятие. По умолчанию веб-сервисы могут быть отключены или не опубликованы. Вам необходимо открыть конфигурацию в режиме Конфигуратор и перейти в дерево объектов мета danych.

Найдите ветку Веб-сервисы и убедитесь, что нужный сервис существует и имеет статус "Использовать". Если галочка не установлена, платформа не будет генировать описание для этого объекта. Также проверьте свойства сервиса: имя, синоним и список публикуемых операций.

Важно различать старые веб-сервисы (на базе SOAP) и новые HTTP-сервисы (REST). Хотя HTTP-сервисы становятся все популярнее, многие корпоративные стандарты все еще требуют классический SOAP. Для работы с ним необходимо, чтобы в свойствах конфигурации была разрешена публикация.

  • 🔍 Проверьте наличие объекта "Веб-сервис" в дереве метаданных.
  • ⚙️ Убедитесь, что флаг "Использовать" установлен в свойствах сервиса.
  • 📝 Сверьте имена методов и параметров с техническим заданием интеграции.

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

☑️ Готовность конфигурации

Выполнено: 0 / 4

Настройка публикации на веб-сервере

Получить WSDL напрямую из толстого клиента часто невозможно, так как протокол SOAP требует наличия HTTP-транспорта. Поэтому следующим этапом является публикация базы данных на веб-сервере. Чаще всего в среде Windows используется Microsoft IIS, а в Linux — Apache или Nginx в связке с Apache.

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

После создания виртуального каталога необходимо разрешить выполнение расширений isapi. Без этого платформа не сможет перехватывать запросы и формировать ответы для внешних систем. Ошибки на этом этапе часто приводят к тому, что при обращении к URL вы получаете ошибку 404 или 500 вместо XML-описания.

Веб-сервер Расширение Тип аутентификации Сложность настройки
IIS isapi.dll Basic / Windows Средняя
Apache mod_1c Basic Высокая
Nginx + Apache mod_1c (Proxy) Basic Высокая
💡

При настройке IIS обязательно добавьте MIME-тип для файлов .wsdl, если сервер не отдает их корректно по умолчанию. Иногда это решает проблему скачивания файла.

Формирование URL для получения WSDL

Когда веб-сервер настроен и база опубликована, можно приступать к формированию адреса для получения описания. Стандартный шаблон URL для веб-сервиса 1С имеет строгую структуру, нарушение которой приведет к ошибке. Адрес должен указывать на конкретный сервис внутри опубликованной базы.

Базовый путь выглядит следующим образом: http://<сервер>/<база>/ws/<ИмяВебСервиса>. Однако для получения именно файла описания, а не выполнения метода, необходимо добавить специальный параметр запроса ?wsdl. Этот параметр сообщает платформе, что клиенту нужна схема, а не выполнение бизнес-логики.

Если ваш сервис называется ExchangeService, а база опубликована под именем Accounting на сервере srv01, то итоговый адрес будет: http://srv01/Accouting/ws/ExchangeService?wsdl. Введя этот адрес в браузере, вы должны увидеть XML-код.

Что делать, если браузер предлагает скачать файл?

Если при переходе по ссылке браузер сразу предлагает сохранить файл, а не показывает XML-код, это нормально. Просто сохраните его с расширением .xml или .wsdl и откройте в текстовом редакторе для проверки структуры.

Диагностика ошибок при генерации описания

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

Частой проблемой является несоответствие типов данных. Если вы используете типы, которые не поддерживаются для передачи по SOAP (например, сложные структуры с неопределенными полями), генерация WSDL прервется. В логе сервера 1С или в ответе HTTP вы увидите сообщение о невозможности сериализации типа.

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

  • 🚫 Ошибка 500 Internal Server Error часто указывает на сбой в коде модуля сервиса.
  • 📄 Ошибка 403 Forbidden означает отсутствие прав у пользователя на вызов сервиса.
  • 🧩 Ошибка сериализации говорит о недопустимых типах параметров в методах.

⚠️ Внимание: Интерфейсы и настройки веб-серверов могут обновляться разработчиками платформ и ОС. Если стандартные пути не работают, сверяйте актуальные требования в документации к вашей конкретной версии 1С:Предприятие и руководстве администратора веб-сервера.

📊 С каким веб-сервером вы работаете?
IIS
Apache
Nginx
Встроенный сервер 1С
Не знаю

Использование встроенных средств отладки

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

Кроме того, можно воспользоваться сторонними инструментами, такими как SoapUI или Postman. Попробуйте импортировать полученный URL в эти утилиты. Они часто дают более человеко-читаемое описание ошибки, чем браузер, и позволяют сразу проверить работоспособность методов после исправления WSDL.

Если вы разрабатываете новый сервис, используйте режим предприятия с отладчиком. Запустите код, который обращается к веб-сервису локально, чтобы убедиться в логике работы перед публикацией. Однако помните, что локальный вызов не всегда эмулирует поведение HTTP-контекста.

Альтернативные способы получения описания

Иногда нет возможности или желания настраивать полноценный веб-сервер. В таких случаях можно сгенерировать WSDL файл программно или через консольные утилиты. Платформа предоставляет инструменты для выгрузки описания метаданных без запуска HTTP-демона.

Один из способов — использование утилиты rmngr или специализированных обработок, которые эмулируют запрос к сервису внутри процесса 1С и сохраняют результат в файл. Это удобно для автоматизации сборки и деплоя, когда WSDL должен поставляться вместе с обновлением конфигурации.

Также можно получить описание через OData, если ваша версия платформы поддерживает эту технологию. Хотя это не чистый WSDL, описание метаданных OData ($metadata) содержит аналогичную информацию о структуре данных и может быть использовано современными клиентами для интеграции.

💡

Наиболее надежный способ получения актуального WSDL — это запрос через браузер к опубликованной базе на рабочем веб-сервере с параметром ?wsdl.

Безопасность и ограничение доступа к WSDL

Публикация WSDL открывает внешнему миру структуру вашей информационной системы. Злоумышленник может изучить доступные методы и попытаться подобрать параметры для несанкционированного доступа. Поэтому важно ограничивать круг лиц, которые могут запрашивать описание сервиса.

На уровне веб-сервера (IIS/Apache) можно настроить правила доступа (IP Security), разрешив запросы к файлу ?wsdl только с адресов серверов-партнеров. Это скроет структуру данных от посторонних глаз, но оставит возможность работы для легальных клиентов, которые уже знают контракт.

В самой конфигурации 1С используйте роли и права. Создайте специальную роль "Просмотр WSDL", которая разрешает только чтение описания, но запрещает выполнение методов. Назначайте эту роль только сервисным учетным записям, используемым для настройки интеграции.

Можно ли получить WSDL без публикации на IIS?

Да, это возможно через консольные утилиты командной строки сервера 1С или с помощью специальных обработок, запускаемых в режиме предприятия, которые эмулируют HTTP-запрос внутри процесса.

Почему при открытии ссылки в браузере появляется ошибка XML?

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

Как обновить WSDL после изменения конфигурации?

WSDL генерируется динамически при каждом запросе. После обновления конфигурации на сервере и перезапуска служб 1С, файл описания автоматически изменится при следующем обращении по URL с параметром ?wsdl.

В чем разница между HTTP-сервисом и Веб-сервисом в 1С?

Веб-сервис использует протокол SOAP и WSDL для строгого описания контракта. HTTP-сервис работает по принципу REST, обрабатывает произвольные URL и форматы данных (JSON, XML), не требуя обязательного WSDL.

Нужно ли перезагружать сервер 1С после изменения веб-сервиса?

Обычно достаточно обновить конфигурацию базы данных в режиме конфигуратора. Однако, если изменения касаются прав доступа или настроек публикации, может потребоваться перезапуск службы веб-сервера или пула приложений.