При публикации конфигураций и сервисов «1С:Предприятие 8.3» на веб-сервере Apache разработчики нередко сталкиваются с ситуацией: публикация через конфигуратор завершается успешно, однако при попытке получить WSDL-описание сервиса в браузере или стороннем клиенте возвращается ошибка HTTP: Not found. Ошибка при выполнении запроса GET к ресурсу. Разберем по шагам, почему возникает эта ошибка, как правильно формировать адрес обращения к SOAP веб-сервисам и какие нюансы нужно учесть при настройке взаимодействия веб-сервера и сервера 1С.
Проанализируем структуру ссылки, которую часто ошибочно используют для проверки: http://10.5.5.121/VV_Stage/ws1.1cws?wsdl. В данной ссылке сразу после имени публикации указано имя точки подключения сервиса. Однако стандарт платформы «1С:Предприятие 8.3» строго регламентирует иерархию маршрутизации веб-запросов.
Для обращения к SOAP Web-сервисам 1С между именем публикации и именем самого веб-сервиса обязательно должен присутствовать сегмент пути ws.
Рассмотрим правильный формат адреса для получения схемы WSDL:
http://<Сервер>/<ИмяПубликации>/ws/<ИмяВебСервиса>.1cws?wsdl
Если применить это правило к рассматриваемому примеру, корректная ссылка примет вид:
http://10.5.5.121/VV_Stage/ws/ws1.1cws?wsdl
Обратим внимание на регистр символов в строке адреса: Apache и платформа 1С чувствительны к регистру. Имя публикации VV_Stage и псевдоним сервиса ws1.1cws должны в точности соответствовать тем именам, которые заданы в конфигурации и файле дескриптора публикации.
После публикации базы на веб-сервере в целевом каталоге создается конфигурационный файл default.vrd. Выясним, какие параметры отвечают за доступность веб-сервисов внутри этого файла.
Разберем пример корректной структуры файла 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="/VV_Stage"
ib="Srvr="AppServer1C";Ref="VV_Stage";">
<ws pointEnableCommon="true">
<point name="ws1" alias="ws1.1cws" enable="true"/>
</ws>
</point>
Рассмотрим ключевые параметры файла дескриптора:
pointEnableCommon="true" в секции <ws> разрешает публикацию всех веб-сервисов конфигурации.<point>, где атрибут name задает имя объекта метаданных в конфигураторе, а alias — имя ресурса с расширением .1cws.<ws> установлен флаг publishExtensionsByDefault="true".Когда Apache и клиент 1С установлены на одном сервере, а кластер серверов «1С:Предприятия» (SQL-база) расположен на другом хосте, необходимо учесть сетевые доступы и параметры аутентификации.
Разберем порядок проверки распределенной конфигурации:
ib файла default.vrd должно быть четко указано имя или IP-адрес сервера 1С: Srvr="ИмяСервера1С";Ref="ИмяБазы";.1540 — агент кластера, 1541 — главный менеджер кластера, и диапазон 1560:1591 — рабочие процессы). Веб-сервер Apache должен беспрепятственно устанавливать TCP-соединения с этими портами.default.vrd:
ib="Srvr="AppServer1C";Ref="VV_Stage";Usr="WebUser";Pwd="SecretPass";"Проанализируем конфигурационный файл веб-сервера httpd.conf. Для корректной обработки обращений к модулю 1С должны соблюдаться следующие системные требования:
wsap22.dll, тогда как для Apache 2.4 используется модуль wsap24.dll.SYSTEM или специальная сервисная учетная запись) должна обладать правами на чтение каталога с файлом default.vrd и бинарных файлов платформы 1С.Таким образом, для устранения ошибки HTTP 404 в первую очередь необходимо скорректировать URL, добавив путь /ws/, и проверить в файле default.vrd разрешение на публикацию конкретного веб-сервиса.