Публикация базы 1С через IIS или Apache: от установки модулей до HTTPS
Содержание
Чтобы открыть базу 1С в браузере, нужны три вещи: сам веб-сервер (IIS или Apache 2.4), компонент платформы «Модули расширения веб-сервера» той же версии, что и база, и публикация через Конфигуратор: Администрирование → Публикация на веб-сервере. Конфигуратор при этом запускают от имени администратора, иначе он не сможет записать настройки в IIS или в httpd.conf.
Типичная ситуация: главбух уезжает в командировку, удалённый рабочий стол поднимать долго, а отчёт сдавать завтра. Веб-публикация решает задачу за час: бухгалтер открывает ссылку вида http://srv01/buh и работает в веб-клиенте, без установки платформы. Инструкция ниже подходит для 1С 8.3 на платформе 8.3.2x, Windows Server 2016 и новее, а также для Linux с Apache.
Что выбрать: IIS или Apache и что подготовить заранее
Веб-сервер не хранит данные и не считает проводки. Он только принимает запросы браузера и через модуль расширения передаёт их платформе. Поэтому мощность ему нужна скромная, а главное — правильная связка версий.
| Вариант | Когда подходит | На что смотреть |
|---|---|---|
| IIS на Windows Server | Сервер уже на Windows, нужен вход по доменной учётной записи | Роль IIS с компонентами ISAPI, права пула приложений |
| Apache 2.4 на Windows | Не хочется включать IIS, нужна простая конфигурация в одном файле | Сборка Apache той же разрядности, что модуль 1С |
| Apache 2.4 на Linux | Сервер 1С на Linux или отдельная машина под публикацию | Пакет веб-расширения той же версии, права пользователя веб-сервера |
Перед установкой проверьте:
- 🔢 Номер платформы. Модуль расширения должен совпадать с версией сервера 1С до последней цифры, например 8.3.24.1467 и 8.3.24.1467. Для файловой базы — с версией, на которой с ней работают.
- 🧩 Разрядность. 64-битный модуль работает только с 64-битным веб-сервером, 32-битный — с 32-битным.
- 📁 Тип базы. Для файловой базы веб-сервер должен видеть её каталог. Для клиент-серверной — иметь сетевой доступ к агенту кластера (порт 1540), менеджеру (1541) и диапазону портов рабочих процессов.
- 🔑 Лицензии. Модуль расширения лицензии не требует, но каждый сеанс веб-клиента занимает клиентскую лицензию, как обычный толстый или тонкий клиент.
- 🌐 Порты 80 и 443. На машине не должно быть второго веб-сервера, который их уже занял.
Для внутренней сети хватит отдельного сервера с 2 ядрами и 4 ГБ памяти. Ресурсы съедает рабочий процесс 1С, а не IIS или Apache.
Шаг 1. Установка модулей расширения веб-сервера
Модули ставятся из того же дистрибутива платформы, что и сервер 1С. На Windows это полный дистрибутив «Технологическая платформа» нужной разрядности.
- Запустите
setup.exeиз дистрибутива платформы. - На шаге выбора компонентов отметьте «Модули расширения веб-сервера». Если на этой машине будете публиковать базу из Конфигуратора, оставьте также компонент «1С:Предприятие».
- Завершите установку. В каталоге
C:\Program Files\1cv8\<версия>\binпоявятся библиотекиwsisapi.dll(для IIS) иwsap24.dll(для Apache 2.4).
Если сервер 1С уже стоит на этой машине, запустите установку ещё раз в режиме изменения и просто добавьте компонент.
На Linux модули идут отдельным пакетом с суффиксом ws в имени. В новых дистрибутивах установщик один, и компонент выбирают в его списке. После установки в каталоге платформы, например /opt/1cv8/x86_64/8.3.24.1467/, появятся wsap24.so и утилита webinst.
Если на машине стоит несколько версий платформы, Конфигуратор публикует базу с модулем своей версии. Запускайте Конфигуратор именно той версии, на которой работает сервер.
Шаг 2. Включение IIS и публикация базы
Установка роли IIS
На Windows Server роль включается через «Диспетчер серверов» → «Добавить роли и компоненты» → «Веб-сервер (IIS)». В разделе «Службы ролей» обязательно отметьте:
Разработка приложений → Расширения ISAPI;Разработка приложений → Фильтры ISAPI;Средства управления → Консоль управления IIS.
На Windows 10 и 11 те же пункты находятся в окне «Включение или отключение компонентов Windows» в ветке «Службы IIS».
После установки откройте в браузере http://localhost. Стартовая страница IIS означает, что сервер работает.
Публикация из Конфигуратора
- Запустите Конфигуратор от имени администратора (правой кнопкой по ярлыку).
- Откройте базу и выберите
Администрирование → Публикация на веб-сервере. - Заполните поля:
- Имя — часть адреса, латиницей без пробелов, например
buh; - Веб-сервер — Internet Information Services;
- Каталог — например
C:\inetpub\wwwroot\buh.
- Имя — часть адреса, латиницей без пробелов, например
- Оставьте флажок «Публиковать тонкий клиент и веб-клиент». Флажки OData, HTTP- и веб-сервисов включайте, только если они нужны интеграциям.
- Нажмите «Опубликовать» и согласитесь на перезапуск веб-сервера.
Конфигуратор создаст в IIS приложение с именем buh и положит в каталог файл default.vrd с параметрами подключения к базе.
Права и пул приложений
Здесь застревают чаще всего. Проверьте три вещи:
- 🔐 Группе
IIS_IUSRSвыдайте права «Чтение и выполнение» на каталогC:\Program Files\1cv8\<версия>\bin. - 📂 Для файловой базы той же группе и пользователю
IUSRнужны права «Изменение» на каталог базы. Без них платформа не создаст служебные файлы. - ⚙️ В «Диспетчере служб IIS» откройте дополнительные параметры пула приложений. Для 64-битного модуля параметр «Разрешены 32-разрядные приложения» должен быть
False, для 32-битного —True.
После этого откройте http://имя-сервера/buh. Должна появиться форма выбора пользователя 1С.
Шаг 3. Настройка Apache 2.4 для 1С
Установка Apache
На Windows Apache ставят из готовой сборки Apache 2.4 (официальных установщиков для Windows у проекта нет, обычно берут сборку Apache Lounge). Распакуйте архив в C:\Apache24 и зарегистрируйте службу:
cd C:\Apache24\bin
httpd.exe -k install
httpd.exe -k start
На Ubuntu и Debian достаточно apt install apache2.
Публикация
Публикация из Конфигуратора идёт так же, как для IIS, только в поле «Веб-сервер» выбирают Apache 2.4. Каталог укажите, например, C:\Apache24\htdocs\buh. Конфигуратор сам допишет в httpd.conf нужные строки. Выглядят они примерно так:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.24.1467/bin/wsap24.dll"
# 1c publication
Alias "/buh" "C:/Apache24/htdocs/buh/"
<Directory "C:/Apache24/htdocs/buh/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "C:/Apache24/htdocs/buh/default.vrd"
</Directory>
Строка LoadModule должна быть в файле одна, даже если опубликовано десять баз. При обновлении платформы в ней меняют путь к новой версии, иначе Apache продолжит грузить старый модуль.
Перед перезапуском проверьте синтаксис:
C:\Apache24\bin\httpd.exe -t
Ответ Syntax OK — можно перезапускать службу.
Перезапуск веб-сервера обрывает сеансы всех, кто сейчас работает через браузер. Несохранённые документы пользователи потеряют. Делайте это вне рабочего времени или предупредите людей.
Особенности Linux
На Linux Apache работает от пользователя www-data (Debian, Ubuntu) или apache (CentOS, Astra и др.). Ему нужен доступ на чтение каталога публикации и, для файловой базы, права на запись в каталог базы. Модуль подключается файлом wsap24.so, путь к которому указывают в LoadModule по аналогии с Windows.
Публикация без Конфигуратора: утилита webinst
На сервере без графического интерфейса или при публикации десятка баз удобнее командная строка. Утилита webinst лежит в каталоге bin платформы.
Публикация клиент-серверной базы buh с сервера srv01 в Apache 2.4 на Windows:
"C:\Program Files\1cv8\8.3.24.1467\bin\webinst.exe" -publish -apache24 -wsdir buh -dir "C:\Apache24\htdocs\buh" -connstr "Srvr=srv01;Ref=buh;" -confpath "C:\Apache24\conf\httpd.conf"
Для IIS вместо -apache24 указывают -iis, а параметр -confpath не нужен. Для файловой базы строка подключения выглядит так: -connstr "File=""D:\Bases\buh"";". Снять публикацию можно ключом -delete с тем же -wsdir.
На Linux команда аналогична, путь к конфигурации Apache обычно /etc/apache2/apache2.conf или /etc/httpd/conf/httpd.conf.
Строку подключения после публикации можно поправить прямо в default.vrd, в атрибуте ib. Кавычки внутри него записывают как ", например ib="Srvr="srv01";Ref="buh";". Переустанавливать публикацию ради смены имени сервера не нужно.
Что сделать после обновления платформы
Сервер 1С обновили до новой версии — публикацию нужно довести до той же версии. Порядок такой:
- Установите на машину с веб-сервером модули расширения новой версии.
- Для Apache поменяйте путь в строке
LoadModuleна каталог новой версии и проверьте синтаксисhttpd -t. - Для IIS переопубликуйте базу из Конфигуратора новой версии или командой
webinstс ключом-iis: обработчик приложения переключится наwsisapi.dllиз нового каталога. - Перезапустите веб-сервер вне рабочего времени и откройте адрес публикации в браузере.
Старую версию платформы удаляйте только после проверки: если что-то пошло не так, вернуть путь назад занимает минуту.
Защита публикации: HTTPS и доступ снаружи
Пока база доступна только во внутренней сети, HTTP терпим. Как только публикацию выводят в интернет, без HTTPS пароли пользователей 1С уходят по сети открытым текстом.
Сертификат для IIS
- Получите сертификат: коммерческий или бесплатный Let’s Encrypt (на Windows его ставят утилитой win-acme).
- В «Диспетчере служб IIS» выберите сайт → «Привязки» → «Добавить» → тип
https, порт 443, выберите сертификат. - В настройках SSL сайта включите «Требовать SSL», чтобы вход по HTTP перестал работать.
Сертификат для Apache
Раскомментируйте в httpd.conf строки LoadModule ssl_module и Include conf/extra/httpd-ssl.conf, затем пропишите в виртуальном хосте пути к файлам:
<VirtualHost *:443>
ServerName 1c.example.ru
SSLEngine on
SSLCertificateFile "C:/Apache24/conf/ssl/cert.pem"
SSLCertificateKeyFile "C:/Apache24/conf/ssl/key.pem"
</VirtualHost>
На Linux сертификат Let’s Encrypt проще всего получить через certbot --apache: он сам пропишет пути и настроит продление.
Что ещё закрыть
- 👤 У каждого пользователя 1С должен быть пароль. Пользователь без пароля в интернет-публикации — открытая дверь.
- 🚫 Не публикуйте OData и HTTP-сервисы наружу без необходимости.
- 🧱 Наружу открывайте только порт 443. Порты кластера 1540, 1541 и диапазон рабочих процессов в интернет не пробрасывайте.
- 🔒 Для максимальной защиты держите публикацию за VPN, а не в открытом доступе.
Почему веб-клиент не запускается: разбор ошибок
Если ошибка не из списка, загляните в журналы. В IIS это C:\inetpub\logs\LogFiles, у Apache — logs\error.log в его каталоге или /var/log/apache2/error.log на Linux. Ещё один источник — журнал событий Windows, раздел «Приложение».
Отдельный случай — база открывается, но веб-клиент показывает пустое окно или не открывает формы. Проверьте, что браузер не блокирует всплывающие окна для адреса публикации, и что версия браузера поддерживается вашей платформой.
После обновления платформы на сервере публикации ломаются в одном месте: веб-сервер продолжает грузить модуль старой версии. Обновите модули расширения и путь в LoadModule сразу вместе с сервером 1С.
Частые вопросы
Нужно ли покупать отдельную лицензию на веб-сервер 1С?
Можно ли поставить веб-сервер на компьютер с файловой базой без Windows Server?
Тонкий клиент тоже может подключаться через веб-сервер?
Как опубликовать несколько баз на одном сервере?
buh, zup, ut. В Apache у каждой будет свой блок Directory, а строка LoadModule остаётся одна.