Администрирование · 11 мин
1С: как проверить публикацию веб-сервиса
Как проверить публикацию веб-сервиса 1С на IIS и Apache: проверка wsdl, тестирование через браузер и soapUI, типичные ошибки 404, 500 и способы их устранения.
Публикация веб-сервиса 1С на веб-сервере (IIS или Apache) — только половина задачи. До передачи адреса потребителям нужно убедиться, что сервис реально доступен: возвращает WSDL-описание, принимает SOAP-запросы и проходит аутентификацию. Проверка занимает несколько минут, если знать, где смотреть и что считать нормальным результатом.
Типичная ситуация: публикация выполнена через конфигуратор, галочки проставлены, ошибок мастер не показал — но внешняя система получает отказ в соединении или пустой ответ. Причина почти всегда находится в одном из четырёх мест: настройки веб-сервера, права доступа к файлам публикации, аутентификация или ошибки в самом коде модуля веб-сервиса.
Ниже разобран полный цикл проверки: от запроса WSDL в браузере до тестового вызова операции, а также диагностика типичных ошибок HTTP 404, 500 и 401.
Что считается успешной публикацией веб-сервиса
Веб-сервис 1С считается корректно опубликованным, когда выполняются три условия. Во-первых, по URL сервиса с параметром ?wsdl возвращается XML-документ с описанием сервиса, его операций и типов данных. Во-вторых, SOAP-запрос к операции обрабатывается и возвращает осмысленный ответ, а не ошибку сервера. В-третьих, аутентификация проходит под предусмотренной учётной записью, а анонимный доступ закрыт, если он не планировался.
Формат адреса публикации обычно выглядит так: http://имя_сервера/имя_публикации/ws/ИмяВебСервиса, где имя публикации — это имя виртуального каталога, заданное при публикации базы. Имя веб-сервиса берётся из свойства «Имя» объекта в ветке «Общие — Web-сервисы» конфигурации, а не из синонима.
Проверка публикации через браузер по запросу WSDL
Самый быстрый способ — открыть в браузере адрес сервиса с суффиксом ?wsdl, например: http://srv1c/trade/ws/Exchange?wsdl. Если всё настроено верно, браузер покажет XML-документ (или предложит его скачать). Внутри должны быть элементы definitions, service с именем вашего сервиса и перечисление операций.
Если для публикации включена аутентификация, браузер сначала запросит логин и пароль пользователя информационной базы. Введите учётные данные пользователя 1С, у которого есть право на использование веб-сервиса. Появление окна авторизации — уже хороший знак: значит, запрос дошёл до расширения веб-сервисов 1С.
Ошибка 404 на этом шаге означает, что веб-сервер не находит публикацию: неверный URL, не создан виртуальный каталог или не выполнена публикация именно на этом сервере. Ошибка 500 говорит о том, что запрос дошёл, но возникла внутренняя проблема — чаще всего с доступом к базе или файлу default.vrd.
Как проверить результат
Возвращается XML с описанием сервиса и операций
404 — публикация не найдена; 500 — ошибка обработки; 401/403 — проблема с доступом
Окно авторизации появляется и принимает учётные данные 1С
Окно не появляется при включённой аутентификации или учётные данные отклоняются
Перечислены все операции сервиса и типы данных XDTO-пакетов
Операций нет или сервис пуст — проверяйте конфигурацию
Проверка настроек публикации в конфигураторе
Перед поиском проблемы полезно перепроверить исходные настройки. Откройте конфигуратор: «Администрирование — Публикация на веб-сервере». Убедитесь, что на вкладке «Web-сервисы» отмечен флажок «Публиковать Web-сервисы» и стоят галочки напротив нужных сервисов. После изменений нажмите «Опубликовать» — простое сохранение диалога публикацию не обновляет.
Проверьте файл публикации default.vrd в каталоге виртуального приложения. В нём должна присутствовать секция <ws> с элементами <point name="ИмяСервиса"> для каждого опубликованного сервиса. Если секции нет — сервисы физически не опубликованы, даже если галочки в конфигураторе стояли.
Тестовый вызов операции веб-сервиса
Получение WSDL подтверждает доступность публикации, но не гарантирует работоспособность операций: код модуля веб-сервиса может содержать ошибки, а права пользователя — не покрывать нужные объекты. Поэтому следующий шаг — реальный вызов операции.
Проверка через soapUI или Postman
Инструмент soapUI (или аналогичный) позволяет импортировать WSDL по URL и автоматически сформировать шаблоны запросов ко всем операциям. Заполните обязательные параметры тестовыми значениями, укажите аутентификацию (Basic Auth с логином и паролем пользователя 1С) и отправьте запрос. Успешный ответ — SOAP-конверт с результатом операции. Ошибка вернётся как SOAP Fault с текстом исключения из 1С.
Проверка обработкой с WS-прокси из другой базы 1С
Альтернатива — вызвать сервис из другой информационной базы 1С через объект WSПрокси, созданный по WS-ссылке. Этот способ ближе к реальному сценарию интеграции «1С — 1С» и сразу проверяет корректность типов XDTO при сериализации.
Определение = Новый WSОпределения("http://srv1c/trade/ws/Exchange?wsdl", "user", "password");
Прокси = Новый WSПрокси(Определение, "http://localhost/exchange", "Exchange", "ExchangeSoap");
Результат = Прокси.Ping("test");
Сообщить(Результат);Имя пространства имён (второй параметр WSПрокси) берётся из свойства «URI пространства имен» веб-сервиса в конфигурации, а имя порта — из WSDL, элемент port внутри service.
Диагностика типичных ошибок
Большинство проблем публикации сводится к нескольким повторяющимся сценариям. Их удобно разбирать по коду HTTP-ответа.
| Код / симптом | Вероятная причина | Что сделать |
|---|---|---|
| 404 Not Found | Неверный URL, нет виртуального каталога, сервис не опубликован | Сверить URL с именем публикации и именем сервиса; проверить наличие сайта в IIS/Apache и секцию ws в default.vrd |
| 500 Internal Server Error | Ошибка доступа к базе, неверная строка соединения в default.vrd, нет прав у пользователя веб-сервера на каталог | Проверить параметры ib в default.vrd; дать учётной записи пула (IIS) или пользователю Apache права на чтение каталога публикации |
| 401 / 403 | Не настроена или неверно настроена аутентификация; пользователь 1С без прав на веб-сервис | Проверить тип аутентификации на веб-сервере и роли пользователя 1С |
| SOAP Fault при вызове | Ошибка в коде операции, нет прав на объекты данных | Смотреть текст Fault и журнал регистрации базы |
Отдельный частый случай для IIS: не установлен или не сопоставлен модуль расширения веб-сервисов 1С (ISAPI). Проверьте, что при установке платформы были выбраны компоненты «Модули расширения веб-сервера», а в IIS разрешено выполнение ISAPI-расширений соответствующей разрядности. Для Apache проверяется подключение модуля wsap24.so (или аналогичного для вашей версии платформы) в httpd.conf.
Где искать диагностическую информацию
Если по HTTP-коду причина не ясна, смотрите журналы. Журнал регистрации информационной базы покажет ошибки сеансов веб-сервиса: отфильтруйте события по виду «Сеанс» и имени пользователя, под которым идёт обращение. Там видны ошибки аутентификации и исключения в коде операций.
Логи веб-сервера (access.log и error.log у Apache, журналы сайта в IIS) показывают, дошёл ли запрос до сервера и какой код он вернул. Если запроса нет в логах веб-сервера — проблема на уровне сети: файрвол, закрытый порт, неверное имя хоста. Проверьте доступность порта командой telnet сервер 80 или аналогом.
Для глубокой диагностики можно включить технологический журнал платформы с событием EXCP — он зафиксирует исключения, возникающие внутри расширения веб-сервисов, включая те, что не попадают в журнал регистрации.
- 1Убедиться, что в конфигураторе включена публикация Web-сервисов и отмечены нужные сервисы; нажать «Опубликовать»
- 2Проверить наличие секции ws в файле default.vrd каталога публикации
- 3Открыть в браузере URL сервиса с ?wsdl и получить XML-описание
- 4Ввести учётные данные пользователя 1С при запросе аутентификации
- 5Выполнить тестовый вызов операции через soapUI или WSПрокси
- 6При ошибках — сверить HTTP-код с таблицей причин и проверить журналы веб-сервера и регистрации
Проверка безопасности перед передачей сервиса потребителям
Работающий сервис — ещё не безопасный сервис. Перед тем как отдать адрес внешней системе, убедитесь, что анонимный доступ закрыт: запрос ?wsdl без учётных данных должен возвращать 401, а не XML. Если WSDL доступен анонимно, любой может изучить структуру операций и типов данных.
Проверьте, что учётная запись, под которой работает сервис, имеет минимально необходимые права: только на использование веб-сервиса и на те объекты данных, которые реально нужны операциям. Пользователь с полными правами под веб-сервисом — серьёзный риск при компрометации пароля.
Для доступа извне локальной сети используйте HTTPS: базовая аутентификация передаёт логин и пароль в открытом виде, и без шифрования они перехватываются в трафике. Настройка сертификата выполняется средствами веб-сервера, а не 1С.
FAQ
Почему ?wsdl открывается, а вызов операции возвращает ошибку?
WSDL формируется из метаданных и не выполняет код операции. Ошибка при вызове означает проблему в модуле веб-сервиса, правах пользователя на данные или в переданных параметрах. Текст исключения ищите в SOAP Fault и журнале регистрации.
Как проверить публикацию, если нет доступа к браузеру на сервере?
Проверку можно выполнить с любой машины в сети по полному URL сервера. Если внешний доступ закрыт, используйте PowerShell-команду Invoke-WebRequest с адресом ?wsdl — она покажет HTTP-код и тело ответа без браузера.
Нужно ли перезапускать веб-сервер после повторной публикации?
Для IIS обычно достаточно повторной публикации — изменения default.vrd подхватываются автоматически. Для Apache после ручной правки httpd.conf требуется перезапуск службы. Если изменения «не видно», перезапуск веб-сервера — первое действие.
Чем отличается проверка HTTP-сервиса от проверки веб-сервиса?
HTTP-сервисы не имеют WSDL и вызываются обычными HTTP-запросами по шаблону URL. Проверка сводится к GET/POST-запросу по адресу вида /hs/ИмяСервиса/шаблон и анализу кода и тела ответа. Инструменты те же: браузер, Postman, curl.
Можно ли проверить публикацию без реальных данных?
Да. Добавьте в веб-сервис простую тестовую операцию без обращения к данным (например, возвращающую строку) и вызывайте её для проверки канала. Это отделяет проблемы публикации от проблем доступа к объектам базы.
Что важно запомнить
Базовая проверка публикации — запрос ?wsdl в браузере: XML-описание означает, что сервис доступен. Полная проверка включает тестовый вызов операции и контроль аутентификации. Ошибки 404, 500 и 401 локализуются по коду ответа, журналам веб-сервера и журналу регистрации. Перед передачей сервиса потребителям закройте анонимный доступ и ограничьте права учётной записи.