К статье
Практический материал

Администрирование · 9 мин

Как проверить веб-сервис в 1С: от публикации до диагностики ошибок

Как проверить веб-сервис в 1С: публикация на IIS/Apache, тестирование через браузер, SoapUI и Postman, диагностика ошибок 401, 404, 500 и типовые проблемы.

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

Диагностика строится по цепочке: доступность публикации → получение WSDL-описания → вызов конкретной операции → проверка логики внутри 1С. Каждый шаг даёт однозначный признак, на каком уровне проблема: веб-сервер, публикация, аутентификация или код сервиса. Ниже разобраны практические способы проверки и типовые ошибки.

Что нужно подготовить перед проверкой

Для полноценной диагностики понадобятся: адрес публикации базы (URL, под которым база доступна через веб-сервер), имя веб-сервиса из конфигурации, учётная запись с правами на использование сервиса и инструмент для отправки тестовых запросов. Имя сервиса смотрят в конфигураторе: ветка «Общие» → «Web-сервисы» → свойства нужного объекта, поле «Имя».

Также уточните, какой тип сервиса проверяется. В 1С есть классические SOAP-сервисы (объект «Web-сервисы») и HTTP-сервисы (объект «HTTP-сервисы»). У них разный формат URL и разные способы тестирования: SOAP проверяется через WSDL и вызов операций, HTTP-сервис — прямыми GET/POST-запросами к шаблону URL.

Шаг 1. Проверка публикации и получение WSDL

Самая быстрая проверка — открыть в браузере адрес вида http://сервер/ИмяБазы/ws/ИмяСервиса?wsdl. Для HTTP-сервисов используется путь http://сервер/ИмяБазы/hs/КорневойURL/.... Если в ответ приходит XML-документ с описанием сервиса — публикация работает, веб-сервер передаёт запросы платформе 1С.

Если вместо XML появляется ошибка 404 — сервис не опубликован или URL указан неверно. Проверьте, что публикация выполнена через «Администрирование» → «Публикация на веб-сервере» в конфигураторе, и что в настройках публикации включён флажок «Публиковать Web-сервисы». После изменения настроек публикацию нужно выполнить заново.

Ошибка 401 или запрос логина и пароля, который не принимает корректные данные, указывает на проблему аутентификации. Убедитесь, что пользователь существует в базе, у него есть право на использование сервиса и на веб-сервере настроен подходящий метод аутентификации (Basic или анонимный доступ).

Быстрая проверка доступности
  1. 1
    Откройте браузер и введите http://сервер/ИмяБазы/ws/ИмяСервиса?wsdl
  2. 2
    При запросе авторизации введите логин и пароль пользователя 1С
  3. 3
    Убедитесь, что в ответ пришёл XML с описанием операций сервиса
  4. 4
    Если XML получен — переходите к тестированию операций, если нет — смотрите HTTP-код ошибки

Шаг 2. Тестирование операций через SoapUI или Postman

Полученный WSDL не гарантирует, что операции сервиса выполняются корректно — он подтверждает только доступность. Для проверки логики используют SoapUI: создаётся новый SOAP-проект, указывается URL WSDL, программа автоматически строит шаблоны запросов для всех операций. Остаётся заполнить параметры и отправить запрос.

Для HTTP-сервисов удобнее Postman или curl. Отправьте GET или POST-запрос на URL шаблона сервиса, задайте заголовки (Content-Type, Authorization) и тело запроса, если оно требуется. Корректный ответ — HTTP 200 с ожидаемыми данными в JSON, XML или другом формате, который возвращает ваш код.

bash
curl -u Пользователь:Пароль -X GET "http://server/base/hs/api/goods/123" -H "Accept: application/json"

Для SOAP-сервиса тот же тест через curl выглядит сложнее — нужно сформировать SOAP-конверт. Проще взять готовый шаблон из SoapUI и подставить свои значения параметров.

Шаг 3. Проверка из тестовой обработки 1С

Если сервис будут вызывать другие базы 1С, полезно проверить его именно из 1С — через WS-ссылки или программное создание WS-прокси. В конфигураторе добавьте WS-ссылку (ветка «Общие» → «WS-ссылки»), укажите URL WSDL — если ссылка создалась без ошибок, платформа успешно прочитала описание сервиса.

Вызов операции выполняется через объект WSПрокси. Ниже пример кода для теста:

Определение = Новый WSОпределения("http://server/base/ws/TestService?wsdl",

"Пользователь", "Пароль");

Прокси = Новый WSПрокси(Определение,

"http://example.org/webservice", "TestService", "TestServiceSoap");

Результат = Прокси.TestOperation("Проверка связи");

Сообщить(Результат);

Если вызов из 1С не работает, а из SoapUI работает — проблема обычно в прокси-сервере, настройках безопасного соединения (TLS) или в версии платформы на стороне клиента. Проверьте, доступен ли сервер с машины, где запускается клиент 1С.

Диагностика по HTTP-кодам ошибок

Код ответа веб-сервера — главный индикатор, на каком уровне сбой. Ниже типовые ситуации при проверке сервисов 1С.

КодВероятная причинаЧто делать
200Сервис отвечает штатноПроверять содержимое ответа и логику операций
401Ошибка аутентификацииПроверить логин/пароль, права пользователя, метод аутентификации на веб-сервере
403Доступ запрещёнПроверить права на каталог публикации и настройки веб-сервера
404Сервис или база не опубликованыПроверить имя сервиса, публикацию, регистр букв в URL
500Ошибка выполнения кода сервисаСмотреть журнал регистрации и текст ошибки в ответе
Контрольные точки

Как отличить норму от проблемы

Ответ на ?wsdl
Норма

XML с описанием операций

Тревожный признак

404, пустая страница или HTML-ошибка веб-сервера

Вызов операции
Норма

HTTP 200 и корректные данные в ответе

Тревожный признак

HTTP 500 с текстом исключения 1С

Время ответа
Норма

Секунды на простую операцию

Тревожный признак

Таймаут или ответ дольше допустимого для интеграции

Журнал регистрации и отладка кода сервиса

Когда сервис возвращает ошибку 500, источник — код операции внутри 1С. Откройте журнал регистрации (в режиме предприятия: «Администрирование» → «Обслуживание» → «Журнал регистрации») и отфильтруйте события по пользователю, под которым выполняется вызов. Там будет текст исключения с указанием модуля и строки.

Для глубокой отладки включите отладку на сервере (флаг -debug в параметрах службы агента сервера 1С) и в конфигураторе подключитесь к сеансу веб-сервиса: «Отладка» → «Подключение» → выбор предмета отладки «Web-сервис». После этого точки останова в модуле сервиса будут срабатывать при внешних вызовах.

Типовые проблемы и их устранение

Чаще всего проверка выявляет не сложные дефекты кода, а ошибки окружения. Ниже — ситуации, которые встречаются регулярно.

Типичные ошибки при проверке
01
Проверка по неверному URL: после перепубликации базы имя публикации изменилось — уточните актуальный путь в default.vrd или настройках веб-сервера
02
Тестирование под администратором: у реального пользователя интеграции меньше прав, и у него сервис не работает — проверяйте под боевой учётной записью
03
Игнорирование регистра символов: имя сервиса в URL чувствительно к регистру на части конфигураций веб-серверов
04
Проверка только WSDL: описание возвращается, но операция падает с ошибкой — обязательно вызывайте хотя бы одну реальную операцию

Отдельная группа проблем — сертификаты при работе по HTTPS. Если сервис опубликован на защищённом соединении, а клиент 1С не доверяет сертификату, вызов завершится ошибкой ещё до обращения к сервису. Проверьте цепочку сертификатов и при необходимости добавьте корневой сертификат в хранилище на клиентской машине.

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

Частые вопросы

Чем отличается проверка SOAP-сервиса от HTTP-сервиса в 1С?

SOAP-сервис проверяется через WSDL-описание (?wsdl) и вызов операций по протоколу SOAP, удобный инструмент — SoapUI. HTTP-сервис тестируется прямыми запросами к URL-шаблонам (GET, POST и др.) через Postman, curl или браузер. У HTTP-сервисов нет WSDL, описание задаёт только разработчик.

Браузер запрашивает логин и пароль, но верные данные не принимает. В чём причина?

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

WSDL открывается, но вызов операции возвращает ошибку 500. Что проверять в первую очередь?

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

Можно ли проверить веб-сервис без SoapUI и Postman?

Да. Минимальная проверка доступности выполняется прямо в браузере через ?wsdl, а вызов операций — из другой базы 1С через WS-ссылку и WSПрокси. Для HTTP-сервисов с GET-запросами без параметров достаточно браузера.

Сервис работает из браузера, но не работает из 1С-клиента. Где искать проблему?

Проверьте сетевую доступность сервера с машины клиента (ping, telnet по порту), настройки прокси, доверие к TLS-сертификату при HTTPS и версию платформы клиента. Браузер и 1С используют разные механизмы работы с сертификатами и прокси.

Как проверить сервис, опубликованный только во внутренней сети?

Выполняйте проверку с машины внутри той же сети или через VPN. Если нужно открыть сервис наружу, согласуйте это с администратором: потребуется публикация на пограничном веб-сервере, HTTPS и отдельная учётная запись с минимально необходимыми правами.

Итог

Что важно запомнить

Проверка веб-сервиса 1С идёт по цепочке: WSDL в браузере → вызов операции в SoapUI/Postman → анализ журнала регистрации при ошибках. HTTP-код ответа сразу показывает уровень проблемы: 401 — аутентификация, 404 — публикация, 500 — код сервиса. Тестируйте под той учётной записью, под которой будет работать реальная интеграция.