При организации работы пользователей через веб-клиент или интеграции сторонних систем с 1С через HTTP/SOAP веб-сервисы часто возникает необходимость опубликовать несколько информационных баз на одном веб-сервере. Кроме того, администраторам требуется изменить стандартный путь публикации или разграничить доступ, отключив графический интерфейс (веб-клиент) и оставив активными только сервисы.
Рассмотрим подробно, как правильно организовать структуру каталогов, настроить файл default.vrd и подготовить веб-сервер для корректной работы нескольких публикаций.
По умолчанию при публикации базы 1С создается физический каталог на диске и соответствующее приложение на веб-сервере (IIS или Apache). Чтобы опубликовать несколько баз в рамках одного веб-сайта, не обязательно ограничиваться корнем сайта (например, C:\inetpub\wwwroot).
Разберем по шагам алгоритм публикации нескольких баз в подкаталогах:
wwwroot, так и любой другой каталог на сервере, например D:\WebBases\Base1 и D:\WebBases\Base2).default.vrd и файл конфигурации веб-сервера web.config (для IIS).В итоге каждая база получает свой собственный URL-адрес вида http://myserver/Base1 и http://myserver/Base2, обращаясь к изолированным файлам default.vrd.
Файл default.vrd представляет собой XML-документ в кодировке UTF-8, описывающий параметры подключения к информационной базе 1С и настройки доступных сервисов.
Проанализируем ситуацию, когда требуется отключить интерактивный вход через веб-клиент, оставив базу доступной только для интеграционных веб-сервисов с фиксированным логином и паролем. Для этого в корневом теге <point> задаются следующие атрибуты:
<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="/Base1"
ib="File="C:\Bases\DemoAccounting";usr=web;pwd=secret;"
enable="false">
</point>
Выясним значение ключевых параметров в этой строке:
ib="..." — строка подключения к информационной базе 1С. В параметре usr и pwd можно жестко задать имя пользователя и пароль 1С для автоматической аутентификации при обращениях к сервисам.enable="false" — отключает возможность работы пользователей через веб-клиент (интерфейс 1С в браузере не будет загружаться). При этом программные сервисы продолжат функционировать.allowexecutescheduledjobs="" — параметр, позволяющий управлять выполнением фоновых и регламентных заданий в файловом варианте базы через веб-сервер.Для точечного включения или отключения отдельных возможностей используем вложенные теги внутри <point>:
<ws> — управление публикации SOAP веб-сервисов;<httpServices> — настройка доступа к HTTP-сервисам;<odata> — включение REST API (OData) базы данных;<cors> — настройка кросс-доменных запросов (Cross-Origin Resource Sharing) из браузера.При работе с файловыми базами 1С и веб-сервером IIS следует учесть несколько критически важных нюансов:
IIS_IUSRS или ApplicationPoolIdentity), должна иметь полные права (чтение, запись, изменение) не только на папку с файлом default.vrd, но и на весь каталог с файлом базы данных 1Cv8.1CD.wsisapi.dll) рекомендуется настраивать работу через HTTP-модуль (wshttp.dll), что обеспечивает повышенную стабильность работы веб-сервисов.default.vrd, рекомендуется использовать штатную консольную утилиту 1С webinst с ключами -publish, -wsdir, -dir и -connstr.