Несмотря на то что платформа 1С:Предприятие 8.1 давно считается устаревшей, задачи по интеграции существующих систем на этой версии с современными сервисами до сих пор актуальны. В отличие от современных версий 8.3, где публикация выполняется парой кликов в конфигураторе, в версии 8.1 этот процесс требует глубокого понимания архитектуры веб-серверов и ручной правки конфигурационных файлов. Рассмотрим подробно, как развернуть веб-сервис и с какими подводными камнями можно столкнуться.
Первое, что мы должны проанализировать, — это совместимость программного обеспечения. Платформа 1С 8.1 была спроектирована под стандарты своего времени, поэтому попытка использовать современный Apache 2.4 или 64-битные системы приведет к ошибкам. Разберем основные требования:
wsap22.dll) предназначен строго для Apache версии 2.2. Если вы используете более старый Apache 2.0, вам понадобится файл wsap2.dll. Использование версии 2.4 практически невозможно без сложной перекомпиляции модулей.При выборе публикации в конфигураторе 1С 8.1 создает файл с расширением .1cws. Это XML-дескриптор, который служит связующим звеном между веб-сервером и информационной базой. Проанализируем типичное содержимое этого файла:
<?xml version="1.0" encoding="UTF-8"?>
<service namespace="http://www.tu.ru" name="CorpDocChek" connectString="Srvr='172.16.0.184';Ref='cop';"/>
Разберем важные параметры внутри дескриптора:
namespace — пространство имен вашего веб-сервиса, определенное в конфигурации.name — имя веб-сервиса, как оно задано в дереве метаданных.connectString — строка соединения. Для клиент-серверного варианта это Srvr="..." ; Ref="...", для файлового — File="...".Важно: Обратите внимание на кавычки. Внутри XML-атрибута connectString значения параметров должны быть выделены одинарными кавычками или экранированы, чтобы не нарушить структуру XML-документа.
После того как файл дескриптора создан, нам необходимо вручную обучить Apache работать с ним. Для этого мы должны отредактировать файл httpd.conf. Выясним, какие строки необходимо добавить для корректной работы.
Сначала загружаем модуль расширения 1С. Указываем полный путь к библиотеке в каталоге установки 1С:
LoadModule _1cws_module "C:/Program Files (x86)/1cv81/bin/wsap22.dll"
Если при запуске Apache выдает ошибку "the request operation has failed", это первый сигнал о том, что либо путь к wsap22.dll указан неверно, либо разрядность Apache (64-бит) не совпадает с разрядностью библиотеки (32-бит).
Затем создаем блок управления доступом и обработчик для нашего сервиса. Рассмотрим пример конфигурации:
<Location /MyBase/ws>
DirectorySlash Off
SetHandler 1c-application
ManagedWebServiceDescriptor "C:/inetpub/wwwroot/MyBase/service.1cws"
Allow from all
</Location>
Разберем, что здесь происходит:
<Location /MyBase/ws> — это URL-путь, по которому будет доступен сервис (например, http://localhost/MyBase/ws/ServiceName?wsdl).SetHandler 1c-application — указывает Apache передавать управление запросом модулю 1С.ManagedWebServiceDescriptor — содержит физический путь к вашему файлу .1cws на диске.Allow from all — разрешает доступ к этому ресурсу (синтаксис Apache 2.2).Если настройка Apache кажется слишком трудоемкой, можно использовать IIS. В 1С 8.1 для этого применяется библиотека wsisu.dll. Проанализируем этапы настройки на IIS:
.1cws с типом text/xml..1cws, указывая путь к wsisu.dll в папке bin платформы 1С.Часто после настройки конфигурационных файлов сервис все равно не работает. Выясним причину, которая обычно кроется в правах доступа. Пользователь, от имени которого работает служба веб-сервера (в Apache это обычно SYSTEM, в IIS — IUSR или AppPoolIdentity), должен иметь следующие права:
bin 1С, где лежат DLL.Также рекомендуется добавить путь к папке bin платформы 1С в системную переменную PATH. Это необходимо, так как библиотека wsap22.dll может динамически подгружать другие компоненты из своего окружения, и если они не будут найдены, модуль не загрузится.
Для проверки правильности публикации откройте браузер и введите адрес:
http://имя_сервера/MyBase/ws/ИмяВебСервиса?wsdl
Если вы видите структуру XML с описанием методов и типов данных — поздравляем, публикация прошла успешно. Если же браузер выдает ошибку 403 или 500, необходимо вернуться к проверке прав доступа и корректности путей в файле httpd.conf.