Веб-клиент и HTTP-сервисы 1С: ставим модуль для IIS и Apache и публикуем базу
Содержание
Модуль расширения веб-сервера ставят из того же дистрибутива платформы 1С 8.3, что и клиент: при установке отметьте компонент «Модули расширения веб-сервера». Затем включите на сервере IIS или Apache и опубликуйте базу — через Конфигуратор (Администрирование → Публикация на веб-сервере) или утилитой webinst. Версия и разрядность модуля должны совпадать с версией платформы сервера 1С и разрядностью веб-сервера.
Типичная ситуация: главбух уходит на удалёнку, и ему нужно открыть базу из браузера. Или интегратор просит HTTP-сервис для обмена с сайтом. В обоих случаях без модуля расширения веб-сервера не обойтись. Ниже — пошаговая установка для Windows и Linux, настройка доступа и разбор ошибок, на которых спотыкаются чаще всего.
Зачем нужен модуль расширения веб-сервера 1С
Сам по себе IIS или Apache ничего не знает о базах 1С. Модуль — это библиотека, которую веб-сервер подгружает и через которую передаёт запросы платформе. Для сервера 1С он выступает как обычный клиент.
Что даёт опубликованная база:
- 🌐 веб-клиент — работа в браузере без установки платформы на компьютер;
- 🖥 тонкий клиент по HTTP — подключение по адресу
http://server/baseвместо прямого доступа к файлам или кластеру; - 🔗 HTTP-сервисы и веб-сервисы — обмен с сайтами, маркетплейсами, мобильными приложениями;
- 📊 OData — стандартный REST-интерфейс для выгрузки данных во внешние системы;
- 📱 мобильный клиент — подключение к базе через интернет .
Модуль ставится на компьютер с веб-сервером. Это не обязательно сервер 1С: веб-сервер может стоять на отдельной машине и обращаться к кластеру по сети.
Требования: версии, разрядность, роли сервера
Три правила, от которых зависит, заработает ли модуль:
- Версия модуля = версия сервера 1С. Для клиент-серверной базы модуль должен быть той же сборки платформы, что и кластер, вплоть до последней цифры. Обновили сервер 1С — обновите и модуль на веб-сервере.
- Разрядность модуля = разрядность веб-сервера. 64-битный IIS или Apache загружает только 64-битный модуль. Если ставите 32-битную платформу, придётся включать 32-битный режим пула приложений IIS.
- Модуль под конкретный веб-сервер. В каталоге
binплатформы лежат разные библиотеки под разные серверы.
| Веб-сервер | Файл модуля (Windows) | Файл модуля (Linux) |
|---|---|---|
| IIS | wsisapi.dll | — |
| Apache 2.2 | wsap22.dll | wsap22.so |
| Apache 2.4 | wsap24.dll | wsap24.so |
Для современных систем берите связку IIS 10 (Windows Server 2016 и новее, Windows 10/11) или Apache 2.4. Apache 2.2 давно не поддерживается своими разработчиками — на новых установках его не используйте.
Что ещё понадобится:
- права локального администратора (Windows) или
root/sudo(Linux); - лицензии: пользователи веб-клиента занимают клиентские лицензии так же, как пользователи толстого или тонкого клиента ;
- доступ веб-сервера к базе: к каталогу файловой базы или к портам кластера 1С (агент — 1540, менеджер — 1541, плюс диапазон рабочих процессов из свойств рабочего сервера).
Где взять дистрибутив с модулем расширения
Отдельного «установщика модуля» нет. Он входит в дистрибутив технологической платформы 1С:Предприятие 8.3 — тот же, которым ставят клиент и сервер. Скачивают его из личного кабинета на портале обновлений 1С при действующей подписке на ИТС или из комплекта поставки.
На что смотреть при выборе дистрибутива:
- для Windows — полный дистрибутив платформы (
windows64fullдля 64-битной системы); в «тонком клиенте» модуля нет; - для Linux — дистрибутив сервера для вашей архитектуры (DEB или RPM);
- номер версии берите ровно тот, что стоит на сервере 1С. Посмотреть его можно в консоли администрирования серверов или в окне «О программе» любого клиента, подключённого к этой базе.
Установка модуля на Windows и настройка IIS
Шаг 1. Включите роль IIS с расширениями ISAPI
На Windows Server откройте «Диспетчер серверов» → «Добавить роли и компоненты» → роль «Веб-сервер (IIS)». В службах ролей отметьте:
- «Разработка приложений» → «Расширения ISAPI» и «Фильтры ISAPI»;
- «Средства управления» → «Консоль управления IIS».
На Windows 10/11 то же самое делается через «Включение или отключение компонентов Windows» → «Службы IIS». Для публикации из Конфигуратора на старых релизах платформы также отмечали «Совместимость управления IIS 6» — включите её, если публикация завершается ошибкой.
После установки откройте в браузере http://localhost. Должна появиться стартовая страница IIS.
Шаг 2. Поставьте компонент «Модули расширения веб-сервера»
- Запустите
setup.exeиз дистрибутива платформы той же версии, что и сервер 1С. - На экране выбора компонентов разверните список и для пункта «Модули расширения веб-сервера» выберите «Данный компонент будет установлен на локальный жесткий диск».
- Если платформа на этом компьютере уже стоит, запустите установщик ещё раз и выберите «Изменить» — компонент добавится к существующей установке.
После установки в каталоге C:\Program Files\1cv8\8.3.xx.xxxx\bin\ появится wsisapi.dll.
Шаг 3. Опубликуйте базу
Через Конфигуратор. Запустите 1С от имени администратора — без этого публикация не запишет настройки IIS. Откройте базу в Конфигураторе и выберите Администрирование → Публикация на веб-сервере. Укажите:
- имя — оно станет частью адреса (
http://server/buh). Используйте латиницу без пробелов; - веб-сервер — Internet Information Services;
- каталог — например,
C:\inetpub\wwwroot\buh; - галочки нужных функций: веб-клиент, OData, HTTP-сервисы, веб-сервисы.
Нажмите «Опубликовать». Программа создаст каталог, файл default.vrd с описанием публикации и web.config с обработчиком, указывающим на wsisapi.dll. IIS предложат перезапустить — соглашайтесь.
Через webinst. Утилита лежит в том же каталоге bin. Удобна, когда Конфигуратора на веб-сервере нет или публикацию нужно повторять скриптом:
cd "C:\Program Files\1cv8\8.3.xx.xxxx\bin"
webinst -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=srv1c;Ref=buh;"
Для файловой базы строка подключения выглядит так: -connstr "File=""D:\Bases\buh"";".
Шаг 4. Выдайте права
Это главный приём, о котором забывают. Веб-сервер работает от служебных учётных записей, а не от вашей:
- на каталог
binплатформы — чтение и выполнение для группыIIS_IUSRS; - на каталог публикации (
C:\inetpub\wwwroot\buh) — чтение дляIIS_IUSRS; - для файловой базы — полный доступ (чтение и запись) на каталог базы для
IIS_IUSRSиIUSR. Без записи платформа не сможет создать файлы блокировки, и база не откроется.
Разрядность. Если поставили 32-битную платформу на 64-битный сервер, в «Диспетчере IIS» → «Пулы приложений» → пул сайта → «Дополнительные параметры» установите «Разрешены 32-разрядные приложения» = True. Лучше сразу ставить 64-битную платформу.
Установка модуля на Linux и подключение к Apache
Шаг 1. Установите Apache 2.4
На Debian и Ubuntu:
sudo apt update
sudo apt install apache2
sudo systemctl enable --now apache2
На RHEL-подобных системах пакет называется httpd, конфигурация лежит в /etc/httpd/conf/httpd.conf.
Шаг 2. Поставьте компонент веб-сервера из дистрибутива 1С
С версии платформы 8.3.20 дистрибутив для Linux — единый установщик setup-full-8.3.xx.xxxx-x86_64.run. Компонент веб-сервера ставится вместе с сервером или отдельно:
chmod +x setup-full-8.3.xx.xxxx-x86_64.run
sudo ./setup-full-8.3.xx.xxxx-x86_64.run --mode unattended --enable-components server,ws
Здесь ws — модули расширения веб-сервера. Если нужен только веб-сервер (сервер 1С на другой машине), оставьте --enable-components ws. Для старых версий платформы модуль поставлялся отдельным пакетом с ws в имени — его ставят тем же менеджером пакетов, что и остальные пакеты 1С.
Файлы появятся в /opt/1cv8/x86_64/8.3.xx.xxxx/, среди них wsap24.so и webinst.
Шаг 3. Опубликуйте базу через webinst
cd /opt/1cv8/x86_64/8.3.xx.xxxx
sudo mkdir -p /var/www/buh
sudo ./webinst -publish -apache24 -wsdir buh -dir /var/www/buh \
-connstr "Srvr=srv1c;Ref=buh;" -confpath /etc/apache2/apache2.conf
Утилита создаст default.vrd в /var/www/buh и допишет в конфигурацию Apache примерно такой блок:
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.xx.xxxx/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 в конфигурации должна быть одна, даже если публикаций несколько.
Шаг 4. Права и перезапуск
Apache в Debian/Ubuntu работает от пользователя www-data. Дайте ему права на каталог публикации, а для файловой базы — на чтение и запись каталога базы:
sudo chown -R www-data:www-data /var/www/buh
sudo apachectl configtest
sudo systemctl restart apache2
Перезапуск Apache обрывает все текущие сеансы веб-клиента и HTTP-обмены. На рабочем сервере делайте это вне часов работы бухгалтерии или предупредите пользователей.
Защита публикации: HTTPS и способы входа
Публикация на голом HTTP годится только для локальной сети. Если база смотрит в интернет, пароли и данные идут открытым текстом.
HTTPS
- IIS: «Диспетчер IIS» → сайт → «Привязки» → «Добавить» → тип
https, порт 443, выберите сертификат. Сертификат можно выпустить у коммерческого центра или бесплатно через Let’s Encrypt (для Windows есть клиенты вроде win-acme). - Apache: включите
mod_ssl(sudo a2enmod ssl), настройте виртуальный хост на порту 443 с путями к сертификату и ключу. Для Let’s Encrypt удобенcertbot --apache. - Добавьте перенаправление с HTTP на HTTPS, чтобы пользователи не заходили по старому адресу.
Тонкий клиент и мобильная платформа проверяют сертификат сервера. С самоподписанным сертификатом получите ошибку подключения — для внешнего доступа нужен сертификат доверенного центра.
Аутентификация
| Способ | Как работает | Когда использовать |
|---|---|---|
| Пользователи 1С | Логин и пароль из списка пользователей базы | Основной вариант |
| Аутентификация ОС | Вход под доменной учётной записью; при webinst — ключ -osauth | Домен Windows, работа внутри сети |
Логин в default.vrd | Параметры usr и pwd в описании публикации, вход без запроса пароля | Только для технических HTTP-сервисов с отдельным пользователем с минимальными правами |
Никогда не прописывайте в default.vrd пользователя с полными правами: любой, кто знает адрес, войдёт в базу без пароля.
Дополнительно:
- 🔒 у всех пользователей базы должны быть пароли, у администратора — сложный;
- 🚫 публикуйте только нужное: если веб-клиент не используется, а нужен лишь обмен, оставьте HTTP-сервисы;
- 🧱 ограничьте доступ по IP на уровне веб-сервера или межсетевого экрана, если клиенты известны заранее.
Проверка работы модуля и публикации
Проверяйте по порядку — так сразу видно, на каком звене проблема.
- Веб-сервер жив.
http://localhostоткрывает стартовую страницу IIS или Apache. - Модуль загружен. На Linux выполните
apachectl -M | grep 1cws— в списке должен быть_1cws_module. На IIS откройте сайт публикации → «Сопоставления обработчиков»: там есть обработчик с путём кwsisapi.dll. - Веб-клиент открывается. Зайдите в браузере на
http://server/buh. Должно появиться окно входа 1С. - Тонкий клиент подключается. В списке баз добавьте базу с типом «На веб-сервере» и адресом
http://server/buh. - Сервисы отвечают. Если публиковали OData, запрос
http://server/buh/odata/standard.odata/вернёт список доступных объектов (после ввода логина и пароля пользователя 1С). HTTP-сервисы доступны по адресуhttp://server/buh/hs/<корневой URL сервиса>/.
Проверьте и снаружи: с компьютера вне сети откройте внешний адрес. Если локально работает, а снаружи нет — дело в пробросе порта, межсетевом экране или DNS, а не в 1С.
Ошибки при установке модуля и публикации
wsisapi.dll. Проверьте, что службы «Расширения ISAPI» и «Фильтры ISAPI» установлены.IIS_IUSRS нет прав на каталог bin платформы.apachectl configtest. Если ругается на LoadModule — неверный путь к wsap24.so (обновили платформу и удалили старую версию) или модуль от Apache 2.2 подключён к 2.4. Также проверьте, что строка LoadModule _1cws_module не дублируется.LoadModule.IIS_IUSRS/IUSR или www-data) нет прав на запись в каталог базы. Выдайте права на чтение и запись.Если не помогло
- Посмотрите журналы: на IIS — «Просмотр событий» → «Журналы Windows» → «Приложение» и логи в
C:\inetpub\logs\LogFiles; на Linux —/var/log/apache2/error.log. - Удалите публикацию (в Конфигураторе кнопка «Отключить», для webinst — ключ
-delete) и опубликуйте заново: так исчезают ошибки из ручных правок конфигурации. - Проверьте, что после обновления платформы путь в
web.configилиLoadModuleуказывает на существующую версию.
Частые вопросы
Нужно ли ставить модуль расширения, если база файловая?
Можно ли поставить модуль без сервера 1С?
Srvr=srv1c;Ref=buh;.Что делать с модулем после обновления платформы?
web.config/LoadModule. Старую версию удаляйте только после проверки.Можно ли опубликовать несколько баз на одном веб-сервере?
http://server/buh, http://server/zup. Модуль при этом один на версию платформы.