Публикация базы 1С:Предприятие через веб-сервер для работы в браузере
Содержание
Чтобы настроить веб-сервер
для 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
- Запустите
setup.exeиз дистрибутива технологической платформы (или сервера 1С). - На шаге выбора компонентов включите «Модули расширения веб-сервера». Если на этой же машине нужен Конфигуратор для публикации, оставьте и «1С:Предприятие».
- Завершите установку. Модули лягут в каталог
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С от имени администратора (правой кнопкой по ярлыку). Без этого публикация упадёт с ошибкой доступа к IIS.
- Откройте базу в режиме Конфигуратора.
- Выберите
Администрирование → Публикация на веб-сервере. - Укажите Имя (оно станет частью адреса, лучше латиницей без пробелов), веб-сервер Internet Information Services и Каталог — по умолчанию
C:\inetpub\wwwroot\<имя>. - Отметьте нужное: публиковать тонкий клиент и веб-клиент, веб-сервисы, HTTP-сервисы, OData.
- Нажмите «Опубликовать» и согласитесь на перезапуск веб-сервера.
Конфигуратор создаст каталог публикации с файлом 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="srv1c";Ref="buh";">
</point>
Кавычки внутри атрибута ib записываются как ". Атрибут 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С в интернет без шифрования — это пароли пользователей открытым текстом. Минимальный набор мер:
- 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 → Привязки. - Редирект с HTTP на HTTPS, чтобы пользователи не входили по открытому каналу по старой ссылке.
- Пароли у всех пользователей 1С. Пользователь без пароля в опубликованной базе — открытая дверь. Проверьте список в
Администрирование → Пользователив Конфигураторе. - Ограничение доступа к серверу 1С. Порты 1540, 1541 и диапазон рабочих процессов открывайте только для адреса веб-сервера, а не наружу.
- Лишние сервисы — не публиковать. Если OData и веб-сервисы не нужны, снимите эти флажки при публикации.
Если базу нужно открыть только сотрудникам, надёжнее держать веб-сервер внутри сети и пускать людей через VPN, чем выставлять 1С напрямую в интернет.
Для внутренней сети подойдёт и вход под учётной записью Windows: включите проверку подлинности Windows в IIS, а в карточке пользователя 1С — аутентификацию операционной системы с указанием доменного пользователя.
Обновление платформы и смена публикации
После обновления платформы на сервере 1С публикация продолжает ссылаться на старый модуль. Клиенты получат ошибку несоответствия версий, пока вы не обновите и веб-сервер.
Порядок такой:
- Установите на веб-сервер «Модули расширения веб-сервера» новой версии.
- На Windows переопубликуйте базу из Конфигуратора новой версии — он перепишет обработчик на новый
wsisapi.dll. - На Linux поменяйте номер версии в строке
LoadModuleили повторитеwebinstиз каталога новой версии. - Перезапустите веб-сервер в нерабочее время.
Старую версию платформы удаляйте только после того, как убедитесь, что новая публикация работает.
Почему не открывается опубликованная база: разбор ошибок
Где смотреть подробности:
- IIS — журналы в
C:\inetpub\logs\LogFilesи журнал событий WindowsПриложение; код ошибки с подкодом (например, 500.19) сразу сужает поиск. - Apache на Debian и Ubuntu —
/var/log/apache2/error.log; на RHEL —/var/log/httpd/error_log. - Сервер 1С — технологический журнал, если до кластера запрос доходит, а падает уже там.