Публикация базы 1С:Предприятие через веб-сервер для работы в браузере

· 10 мин

Содержание

Чтобы настроить веб-сервер для 1С:Предприятие, нужны три вещи: веб-сервер (IIS на Windows или Apache), установленные «Модули расширения веб-сервера» той же версии и разрядности, что и платформа, и публикация базы. Публикуют базу из Конфигуратора, запущенного от имени администратора: Администрирование → Публикация на веб-сервере. На Linux то же самое делает утилита webinst.

После публикации база открывается в браузере по адресу вида http://server/base/, а тонкий клиент подключается к ней по HTTP без прямого доступа к каталогу базы или к кластеру. Для пользователя это выглядит как обычная работа в 1С, только окно программы открыто во вкладке браузера.

Что выбрать: IIS или Apache, и что проверить заранее

Веб-клиент 1С работает через модуль расширения, который подгружается в веб-сервер. Платформа 8.3 поддерживает IIS и Apache версий 2.2 и 2.4. На новых установках берите Apache 2.4: модуль для 2.2 оставлен для совместимости.

ВариантКогда подходитНа что обратить внимание
IIS на Windows ServerСервер 1С и так на Windows, есть администратор WindowsРоли ставятся мастером, публикация в один клик из Конфигуратора
Apache 2.4 на WindowsНужна единая настройка с Linux-серверами или нет желания ставить IISМодуль wsap24.dll, правка httpd.conf
Apache 2.4 на LinuxСервер 1С на Linux, публикация в интернетМодуль wsap24.so, утилита webinst, права пользователя веб-сервера

Перед стартом проверьте по списку:

  • 🖥️ Версия платформы. Модуль расширения должен быть ровно той версии, что и сервер 1С (для клиент-серверной базы). Сборка 8.3.24.1548 на веб-сервере и 8.3.24.1586 на сервере 1С вместе не заработают.
  • 🔢 Разрядность. 64-битный Apache загружает только 64-битный модуль. Для IIS разрядность модуля должна совпадать с разрядностью пула приложений.
  • 🌐 Сеть. Веб-сервер обращается к серверу 1С как обычный клиент: агент на порту 1540, менеджер кластера на 1541 и рабочие процессы в диапазоне, заданном в свойствах рабочего сервера (по умолчанию 1560–1591). Эти порты должны быть открыты от веб-сервера к серверу 1С.
  • 📁 Файловая база. Если публикуете файловую базу , веб-сервер должен видеть её каталог, а учётная запись, от которой он работает, — иметь права на чтение и запись.
  • 🔑 Лицензии. Каждый сеанс веб-клиента или тонкого клиента через веб-сервер занимает клиентскую лицензию так же, как обычный запуск.

Веб-сервер и сервер 1С можно держать на одной машине. Для публикации в интернет удобнее вынести веб-сервер отдельно, а к серверу 1С открыть доступ только с его адреса.

Установка модулей расширения веб-сервера

Модули ставятся из дистрибутива платформы, отдельно их скачивать не нужно.

На Windows

  1. Запустите setup.exe из дистрибутива технологической платформы (или сервера 1С).
  2. На шаге выбора компонентов включите «Модули расширения веб-сервера». Если на этой же машине нужен Конфигуратор для публикации, оставьте и «1С:Предприятие».
  3. Завершите установку. Модули лягут в каталог bin платформы, например C:\Program Files\1cv8\8.3.24.1548\bin\: wsisapi.dll для IIS, wsap24.dll для Apache 2.4.

Для 64-битного IIS или Apache нужен 64-битный дистрибутив платформы. Если поставить 32-битный, модуль окажется в C:\Program Files (x86)\1cv8\… и в 64-битный процесс не загрузится.

На Linux

В современных версиях 8.3 платформа ставится единым установщиком. В нём отметьте компонент модулей расширения веб-сервера. В старых сборках, распространяемых пакетами, это отдельный пакет с суффиксом -ws (например, 1c-enterprise83-ws), который ставится вместе с common и server.

После установки модуль лежит в каталоге платформы, например /opt/1cv8/x86_64/8.3.24.1548/wsap24.so, рядом с утилитой webinst.

Настройка IIS для публикации 1С

Роли и компоненты

Откройте Диспетчер серверов → Управление → Добавить роли и компоненты, роль «Веб-сервер (IIS)». В службах роли отметьте:

  • Основные функции HTTP: документ по умолчанию, статическое содержимое, ошибки HTTP;
  • Разработка приложений: расширения ISAPI и фильтры ISAPI — без них модуль wsisapi.dll не запустится;
  • Безопасность: обычная проверка подлинности и проверка подлинности Windows, если планируете вход под учётной записью ОС;
  • Средства управления: консоль управления IIS.

На Windows 10 и 11 те же галочки находятся в Панель управления → Программы → Включение или отключение компонентов Windows → Службы IIS.

Публикация из Конфигуратора

  1. Запустите 1С от имени администратора (правой кнопкой по ярлыку). Без этого публикация упадёт с ошибкой доступа к IIS.
  2. Откройте базу в режиме Конфигуратора.
  3. Выберите Администрирование → Публикация на веб-сервере.
  4. Укажите Имя (оно станет частью адреса, лучше латиницей без пробелов), веб-сервер Internet Information Services и Каталог — по умолчанию C:\inetpub\wwwroot\<имя>.
  5. Отметьте нужное: публиковать тонкий клиент и веб-клиент, веб-сервисы, HTTP-сервисы, OData.
  6. Нажмите «Опубликовать» и согласитесь на перезапуск веб-сервера.

Конфигуратор создаст каталог публикации с файлом default.vrd и добавит в IIS приложение с обработчиком, который ссылается на wsisapi.dll.

Пул приложений и права

Для 64-битного модуля у пула приложений параметр «Разрешены 32-разрядные приложения» должен быть False, для 32-битного — True. Несовпадение даёт ошибку 500 при первом же обращении.

Права NTFS:

  • группе IIS_IUSRS — чтение и выполнение на каталог bin платформы и на каталог публикации;
  • для файловой базы — изменение на каталог базы для IIS_IUSRS и IUSR (или для учётной записи пула, если меняли её).

Apache на Linux: публикация через webinst

Установка Apache

На Debian и Ubuntu:

sudo apt install apache2
sudo systemctl enable --now apache2

На RHEL-подобных системах пакет называется httpd, а главный конфиг — /etc/httpd/conf/httpd.conf.

Публикация базы

Утилиту webinst запускают от root из каталога платформы. Пример для клиент-серверной базы buh на сервере srv1c:

cd /opt/1cv8/x86_64/8.3.24.1548
sudo ./webinst -publish -apache24 -wsdir buh -dir /var/www/buh \
  -connstr "Srvr=srv1c;Ref=buh;" -confpath /etc/apache2/apache2.conf

Что означают параметры:

ПараметрЗначение
-publishОпубликовать (для снятия публикации — -delete)
-apache24Тип веб-сервера; для IIS на Windows — -iis
-wsdirИмя публикации, часть адреса: http://host/buh/
-dirКаталог, где будет лежать default.vrd
-connstrСтрока соединения с базой
-confpathКонфигурационный файл Apache, в который допишутся директивы

Для файловой базы строка соединения выглядит как File="/srv/1c/bases/buh";.

После публикации перезапустите Apache. Перезапуск обрывает все текущие сеансы веб-клиентов, поэтому на рабочем сервере делайте его вне рабочего времени или предупредите пользователей:

sudo apachectl configtest && sudo systemctl restart apache2

Что webinst дописывает в конфиг

В apache2.conf появится блок примерно такого вида:

LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.24.1548/wsap24.so"

# 1c publication
Alias "/buh" "/var/www/buh/"
<Directory "/var/www/buh/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "/var/www/buh/default.vrd"
</Directory>

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

Права пользователя Apache

Apache на Debian работает от www-data. Для файловой базы этому пользователю нужны чтение и запись в каталог базы:

sudo chown -R www-data:www-data /srv/1c/bases/buh

Если с базой одновременно работают обычные клиенты под другой учётной записью, вместо смены владельца выдайте общую группу с правами на запись.

Файл default.vrd и адрес для подключения

default.vrd — описание публикации в XML. Конфигуратор и webinst создают его сами, но править вручную приходится часто. Минимальный вариант:

<?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="/buh"
       ib="Srvr=&quot;srv1c&quot;;Ref=&quot;buh&quot;;">
</point>

Кавычки внутри атрибута ib записываются как &quot;. Атрибут base совпадает с именем публикации в адресе.

Как подключиться после публикации:

  • 🌍 Веб-клиент — открыть в браузере http://server/buh/ (или https://…, если настроен сертификат).
  • 💻 Тонкий клиент — в списке баз нажать «Добавить», выбрать вариант расположения «На веб-сервере» и указать тот же адрес.
  • 🔗 HTTP-сервисы и OData — адреса вида http://server/buh/hs/<корневой URL сервиса>/ и http://server/buh/odata/standard.odata/, если их публикация была отмечена.

В default.vrd можно прописать логин и пароль пользователя 1С через атрибуты usr и pwd, чтобы не спрашивать их при входе. Не делайте так для публикации в интернет: любой, кто узнает адрес, войдёт в базу под этим пользователем.

Безопасность публикации и HTTPS

Публикация 1С в интернет без шифрования — это пароли пользователей открытым текстом. Минимальный набор мер:

  1. HTTPS. Для внешнего адреса получите сертификат, например бесплатный Let’s Encrypt через certbot. На Apache: sudo apt install certbot python3-certbot-apache, затем sudo certbot --apache -d 1c.example.ru. В IIS добавьте привязку https на порт 443 к сайту в Диспетчер IIS → Сайты → Default Web Site → Привязки.
  2. Редирект с HTTP на HTTPS, чтобы пользователи не входили по открытому каналу по старой ссылке.
  3. Пароли у всех пользователей 1С. Пользователь без пароля в опубликованной базе — открытая дверь. Проверьте список в Администрирование → Пользователи в Конфигураторе.
  4. Ограничение доступа к серверу 1С. Порты 1540, 1541 и диапазон рабочих процессов открывайте только для адреса веб-сервера, а не наружу.
  5. Лишние сервисы — не публиковать. Если OData и веб-сервисы не нужны, снимите эти флажки при публикации.

Если базу нужно открыть только сотрудникам, надёжнее держать веб-сервер внутри сети и пускать людей через VPN, чем выставлять 1С напрямую в интернет.

Для внутренней сети подойдёт и вход под учётной записью Windows: включите проверку подлинности Windows в IIS, а в карточке пользователя 1С — аутентификацию операционной системы с указанием доменного пользователя.

Обновление платформы и смена публикации

После обновления платформы на сервере 1С публикация продолжает ссылаться на старый модуль. Клиенты получат ошибку несоответствия версий, пока вы не обновите и веб-сервер.

Порядок такой:

  1. Установите на веб-сервер «Модули расширения веб-сервера» новой версии.
  2. На Windows переопубликуйте базу из Конфигуратора новой версии — он перепишет обработчик на новый wsisapi.dll.
  3. На Linux поменяйте номер версии в строке LoadModule или повторите webinst из каталога новой версии.
  4. Перезапустите веб-сервер в нерабочее время.

Старую версию платформы удаляйте только после того, как убедитесь, что новая публикация работает.

Почему не открывается опубликованная база: разбор ошибок

Диагностика: выберите симптом

Где смотреть подробности:

  • IIS — журналы в C:\inetpub\logs\LogFiles и журнал событий Windows Приложение; код ошибки с подкодом (например, 500.19) сразу сужает поиск.
  • Apache на Debian и Ubuntu — /var/log/apache2/error.log; на RHEL — /var/log/httpd/error_log.
  • Сервер 1С — технологический журнал, если до кластера запрос доходит, а падает уже там.

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

Нужна ли отдельная лицензия на веб-сервер 1С?
Отдельной лицензии на модуль расширения нет. Пользователи веб-клиента и тонкого клиента через веб-сервер занимают клиентские лицензии, как при обычном запуске, а для клиент-серверной базы нужна и лицензия на сервер 1С.
Можно ли опубликовать несколько баз на одном веб-сервере?
Да. Каждая база публикуется под своим именем и получает свой каталог с default.vrd и свой адрес. Все публикации должны работать с одной версией модуля расширения.
Какие браузеры поддерживает веб-клиент 1С?
Актуальные версии Chrome, Firefox, Edge, Safari и Яндекс Браузера. Конкретный список зависит от версии платформы и указан в её системных требованиях.
Чем веб-клиент отличается от тонкого клиента через веб-сервер?
Веб-клиент работает в браузере и ничего не требует на компьютере пользователя. Тонкий клиент ставится как программа, но подключается по тому же адресу публикации и работает быстрее, плюс без ограничений браузера при работе с файлами и оборудованием.
Можно ли поставить веб-сервер на компьютер с файловой базой без сервера 1С?
Можно. Это обычный способ дать удалённый доступ к файловой базе. Если одновременно работает много пользователей и база заметно тормозит, переходите на клиент-серверный вариант.