Веб-клиент и HTTP-сервисы 1С: ставим модуль для IIS и Apache и публикуем базу

· 10 мин

Содержание

Модуль расширения веб-сервера ставят из того же дистрибутива платформы 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С. Для клиент-серверной базы модуль должен быть той же сборки платформы, что и кластер, вплоть до последней цифры. Обновили сервер 1С — обновите и модуль на веб-сервере.
  2. Разрядность модуля = разрядность веб-сервера. 64-битный IIS или Apache загружает только 64-битный модуль. Если ставите 32-битную платформу, придётся включать 32-битный режим пула приложений IIS.
  3. Модуль под конкретный веб-сервер. В каталоге bin платформы лежат разные библиотеки под разные серверы.
Веб-серверФайл модуля (Windows)Файл модуля (Linux)
IISwsisapi.dll—
Apache 2.2wsap22.dllwsap22.so
Apache 2.4wsap24.dllwsap24.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. Поставьте компонент «Модули расширения веб-сервера»

  1. Запустите setup.exe из дистрибутива платформы той же версии, что и сервер 1С.
  2. На экране выбора компонентов разверните список и для пункта «Модули расширения веб-сервера» выберите «Данный компонент будет установлен на локальный жесткий диск».
  3. Если платформа на этом компьютере уже стоит, запустите установщик ещё раз и выберите «Изменить» — компонент добавится к существующей установке.

После установки в каталоге 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 на уровне веб-сервера или межсетевого экрана, если клиенты известны заранее.

Проверка работы модуля и публикации

Проверяйте по порядку — так сразу видно, на каком звене проблема.

  1. Веб-сервер жив. http://localhost открывает стартовую страницу IIS или Apache.
  2. Модуль загружен. На Linux выполните apachectl -M | grep 1cws — в списке должен быть _1cws_module. На IIS откройте сайт публикации → «Сопоставления обработчиков»: там есть обработчик с путём к wsisapi.dll.
  3. Веб-клиент открывается. Зайдите в браузере на http://server/buh. Должно появиться окно входа 1С.
  4. Тонкий клиент подключается. В списке баз добавьте базу с типом «На веб-сервере» и адресом http://server/buh.
  5. Сервисы отвечают. Если публиковали OData, запрос http://server/buh/odata/standard.odata/ вернёт список доступных объектов (после ввода логина и пароля пользователя 1С). HTTP-сервисы доступны по адресу http://server/buh/hs/<корневой URL сервиса>/.

Проверьте и снаружи: с компьютера вне сети откройте внешний адрес. Если локально работает, а снаружи нет — дело в пробросе порта, межсетевом экране или DNS, а не в 1С.

Ошибки при установке модуля и публикации

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

Если не помогло

  • Посмотрите журналы: на 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. Модуль при этом один на версию платформы.
Какой веб-сервер выбрать: IIS или Apache?
На Windows проще IIS — он входит в систему и настраивается из Конфигуратора. На Linux вариант один — Apache 2.4. По возможностям публикации разницы нет.