При администрировании инфраструктуры 1С часто возникает парадоксальная ситуация: пользователи успешно подключаются к информационной базе через браузер или тонкий клиент по HTTP-адресу, но при попытке открыть в Конфигураторе меню «Администрирование» — «Публикация на веб-сервере» система выдает сообщение «Веб-серверы не обнаружены!». Разберем архитектуру взаимодействия компонентов, выясним причину такого поведения и рассмотрим, как правильно публиковать базы на выделенных веб-серверах.
Ответим сразу на главный теоретический вопрос: нет, работа веб-клиента без публикации информационной базы невозможна в принципе. Проанализируем, почему это так с технической точки зрения.
Веб-клиент или браузер умеет взаимодействовать исключительно по стандартным протоколам HTTP или HTTPS. В то же время серверный кластер «1С:Предприятия» обменивается данными по собственному закрытому бинарному TCP-протоколу. Браузер не может напрямую отправить запрос к процессам кластера ragent, rmngr или rphost. Необходим промежуточный шлюз — специализированный веб-сервер (Apache или IIS) с установленным модулем расширения платформы 1С (wsap24.so для Linux или wsisapi.dll для Windows).
Веб-сервер выполняет роль транслятора: он принимает входящие HTTP-пакеты от браузера или тонкого клиента, преобразует их в вызовы кластера серверов 1С и возвращает сформированный ответ обратно клиенту. Таким образом, если пользователи работают через веб-браузер, база гарантированно опубликована на каком-то веб-сервере.
Выясним причину ошибки внутри Конфигуратора. Пункт меню «Администрирование» — «Публикация на веб-сервере» рассчитан исключительно на работу с локальной машиной:
Сам кластер серверов 1С и база данных не хранят список подключенных к ним веб-серверов. Ситуация аналогична подключению тонких клиентов: сервер 1С не ведет учет компьютеров, у которых база просто добавлена в список запуска.
Если веб-сервер расположен на выделенном сервере (в частности, под управлением Linux), публикация осуществляется штатной консольной утилитой webinst либо ручным созданием дескриптора публикации.
Рассмотрим использование консольной утилиты webinst, входящей в комплект поставки платформы 1С. Для публикации базы на сервере Apache выполним команду следующего формата:
/opt/1cv8/x86_64/8.3.XX.XXXX/webinst -apache24 -wsdir BaseName -dir '/var/www/BaseName' -connstr "Srvr=app-server;Ref=ib_name;" -confpath /etc/apache2/apache2.conf
Разберем параметры этой команды подробно:
-apache24 — указывает тип и версию целевого веб-сервера.-wsdir — задает виртуальный каталог (URL-алиас), по которому база будет доступна в браузере.-dir — физическая директория на сервере, где утилита создаст файл дескриптора публикации default.vrd.-connstr — строка подключения к кластеру «1С:Предприятия» (для клиент-серверной базы) или путь к каталогу (для файловой базы).-confpath — точный путь к основному файлу конфигурации веб-сервера.В результате работы утилиты в директории /var/www/BaseName создается XML-файл 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="/BaseName"
ib="Srvr=app-server;Ref=ib_name;">
<ws/>
<httpServices/>
</point>
А в конфигурационный файл Apache добавляются директивы подключения модуля платформы LoadModule _1cws_module, обработчик SetHandler 1c-application и путь к дескриптору через ManagedApplicationDescriptor.
Разберем важные системные правила, которые необходимо соблюдать при обслуживании опубликованных баз:
wsap24.so или wsisapi.dll) должна строго до последней цифры совпадать с версией кластера серверов 1С. Если вы обновили платформу кластера, обязательно установите ту же версию платформы на веб-сервер и переопубликуйте базу либо скорректируйте путь к библиотеке в конфигурации веб-сервера./opt/1cv8/current, и укажем ее в настройках веб-сервера. При обновлении достаточно будет переключить симлинк на новую папку релиза.www-data в Debian/Ubuntu), обязан иметь права на чтение файлов платформы 1С, а также полные права на чтение и запись в каталог с файлом default.vrd.Таким образом, описанная ситуация является абсолютно штатной практикой: база опубликована на выделенном сервере Linux через утилиту или вручную, а локальный Конфигуратор не отображает публикацию, так как сканирует только собственную рабочую станцию.