Публикация базы 1С через IIS или Apache: от установки модулей до HTTPS

· 9 мин

Содержание

Чтобы открыть базу 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 это полный дистрибутив «Технологическая платформа» нужной разрядности.

  1. Запустите setup.exe из дистрибутива платформы.
  2. На шаге выбора компонентов отметьте «Модули расширения веб-сервера». Если на этой машине будете публиковать базу из Конфигуратора, оставьте также компонент «1С:Предприятие».
  3. Завершите установку. В каталоге 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 означает, что сервер работает.

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

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

Конфигуратор создаст в 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. Кавычки внутри него записывают как &quot;, например ib="Srvr=&quot;srv01&quot;;Ref=&quot;buh&quot;;". Переустанавливать публикацию ради смены имени сервера не нужно.

Что сделать после обновления платформы

Сервер 1С обновили до новой версии — публикацию нужно довести до той же версии. Порядок такой:

  1. Установите на машину с веб-сервером модули расширения новой версии.
  2. Для Apache поменяйте путь в строке LoadModule на каталог новой версии и проверьте синтаксис httpd -t.
  3. Для IIS переопубликуйте базу из Конфигуратора новой версии или командой webinst с ключом -iis: обработчик приложения переключится на wsisapi.dll из нового каталога.
  4. Перезапустите веб-сервер вне рабочего времени и откройте адрес публикации в браузере.

Старую версию платформы удаляйте только после проверки: если что-то пошло не так, вернуть путь назад занимает минуту.

Защита публикации: HTTPS и доступ снаружи

Пока база доступна только во внутренней сети, HTTP терпим. Как только публикацию выводят в интернет, без HTTPS пароли пользователей 1С уходят по сети открытым текстом.

Сертификат для IIS

  1. Получите сертификат: коммерческий или бесплатный Let’s Encrypt (на Windows его ставят утилитой win-acme).
  2. В «Диспетчере служб IIS» выберите сайт → «Привязки» → «Добавить» → тип https, порт 443, выберите сертификат.
  3. В настройках 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?
Да, IIS есть в Windows 10 и 11, Apache тоже ставится на клиентскую Windows. Но у клиентских версий Windows есть ограничение на число одновременных подключений, для группы пользователей лучше серверная ОС.
Тонкий клиент тоже может подключаться через веб-сервер?
Да. В окне добавления базы выберите вариант «На веб-сервере» и укажите адрес публикации. Это удобно для удалённых офисов: наружу открыт только порт 443.
Как опубликовать несколько баз на одном сервере?
Опубликуйте каждую под своим именем: buh, zup, ut. В Apache у каждой будет свой блок Directory, а строка LoadModule остаётся одна.
Работает ли вход через доменную учётную запись в веб-клиенте?
Да, через IIS с включённой проверкой подлинности Windows и настроенной аутентификацией ОС у пользователя 1С. С Apache такую схему настроить сложнее, обычно её выбирают из-за этого IIS.