Публикация информационной базы 1С через IIS и Apache

· 10 мин

Содержание

Чтобы развернуть 1С на веб-сервере, нужны три вещи: установленный IIS или Apache, компонент платформы «Модули расширения веб-сервера» той же версии и разрядности, что и веб-сервер, и публикация базы. Публикацию делают в Конфигураторе, запущенном от имени администратора: Администрирование → Публикация на веб-сервере. После этого база открывается в браузере по адресу вида http://имя-сервера/имя-публикации.

Типичная ситуация: бухгалтер уходит на удалёнку, VPN нет, а работать из дома надо уже завтра. Публикация на веб-сервере решает это за час. Но если перепутать разрядность или забыть про права службы, вместо базы откроется ошибка 500. Ниже — порядок, при котором всё заводится с первого раза.

Как устроена связка браузера, веб-сервера и 1С

Веб-сервер сам по себе ничего не знает о 1С. Он принимает HTTP-запросы и передаёт их модулю расширения 1С. Модуль уже работает с базой: открывает файловую базу напрямую или подключается к кластеру серверов 1С.

Цепочка выглядит так:

  • 🌐 Клиент — браузер (веб-клиент), тонкий клиент или мобильное приложение, подключённые по HTTP/HTTPS.
  • 🖥️ Веб-сервер — IIS или Apache, принимает запрос на порт 80 или 443.
  • 🧩 Модуль расширения 1С — wsisapi.dll для IIS, wsap22.dll / wsap24.dll для Apache в Windows, wsap24.so в Linux.
  • 🗄️ Информационная база — файловая (каталог с 1Cv8.1CD) или клиент-серверная в кластере 1С.

Для клиент-серверной базы модуль ведёт себя как обычный клиент. Он обращается к агенту сервера 1С (порт 1540), затем к менеджеру кластера (1541) и рабочим процессам. Их диапазон портов задаётся в свойствах рабочего сервера, по умолчанию 1560–1591. Если веб-сервер стоит на отдельной машине, эти порты должны быть открыты в брандмауэре между ними.

Файловую базу на веб-сервере держат для 3–5 пользователей. Если людей больше или база тяжёлая, переходите на клиент-серверный вариант: веб-сервер с файловой базой упирается в блокировки файла так же, как сетевая папка.

Подготовка: что выбрать — IIS или Apache

Обе программы работают с 1С одинаково. Выбор зависит от ОС и от того, кто будет сопровождать сервер.

Веб-серверГде работаетПлюсыНа что смотреть
IISWindows Server, Windows 10/11Ставится ролью из «Диспетчера серверов», управление мышкойНужны компоненты ISAPI, права группы IIS_IUSRS
Apache 2.4Windows и LinuxОдин конфиг-файл, легко переносить, стандарт для LinuxВ Windows берите сборку нужной разрядности, сам Apache — служба
Apache 2.2Устаревшие системыПоддерживается платформойНовых установок на нём делать не стоит

Перед установкой проверьте:

  1. Разрядность. 64-битный Apache работает только с 64-битной платформой 1С, 32-битный — с 32-битной. В IIS разрядность модуля должна совпадать с режимом пула приложений.
  2. Версию платформы. Модуль расширения ставится из того же дистрибутива, что и сервер 1С. Номер версии модуля должен совпадать с номером версии сервера кластера.
  3. Порт. Если 80-й порт уже занят другим сайтом или программой, Apache не стартует.

Установка роли IIS

В Windows Server откройте «Диспетчер серверов» → «Добавить роли и компоненты» → «Веб-сервер (IIS)». В составе роли отметьте в группе «Разработка приложений» пункты «Расширения ISAPI» и «Фильтры ISAPI». Без них модуль 1С не подключится, а публикация будет отдавать 404 или 500.

В Windows 10/11 то же самое делается через «Включение или отключение компонентов Windows» → «Службы IIS».

Установка Apache 2.4 в Linux

В Debian и Ubuntu достаточно apt install apache2, в RHEL-подобных системах — dnf install httpd. Конфиг лежит в /etc/apache2/apache2.conf или /etc/httpd/conf/httpd.conf соответственно. Этот путь понадобится при публикации.

Модули расширения веб-сервера: установка компонента

Модуль ставится вместе с платформой, но по умолчанию не всегда отмечен.

В Windows:

  1. Запустите setup.exe из дистрибутива платформы (если платформа уже стоит — через «Программы и компоненты» → «Изменить»).
  2. В списке компонентов отметьте «Модули расширения веб-сервера».
  3. Если на этой же машине будет работать Конфигуратор для публикации — оставьте и «1С:Предприятие».
  4. Завершите установку. Файлы модуля окажутся в каталоге bin установленной версии, например C:\Program Files\1cv8\8.3.xx.xxxx\bin\.

В Linux модуль входит в пакет ws (в старых сборках 1c-enterprise-...-ws) или ставится единым установщиком с отметкой компонента веб-сервера. После установки рядом с платформой в /opt/1cv8/x86_64/<версия>/ появятся wsap24.so и утилита webinst.

Каталог bin с номером версии — ключевой момент. При обновлении платформы новая версия ставится в новый каталог, а конфигурация веб-сервера продолжает ссылаться на старый. Об этом — в разделе про ошибки.

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

Через Конфигуратор (Windows)

  1. Запустите Конфигуратор от имени администратора (правой кнопкой → «Запуск от имени администратора»). Без этого 1С не сможет записать файлы в каталог веб-сервера и поправить его конфиг.
  2. Откройте нужную базу.
  3. Выберите Администрирование → Публикация на веб-сервере.
  4. Заполните поля:
    • «Имя» — часть адреса после сервера, латиницей без пробелов: buh, zup, trade.
    • «Веб-сервер» — IIS или Apache нужной версии из списка.
    • «Каталог» — куда положить файлы публикации, например C:\inetpub\wwwroot\buh или C:\Apache24\htdocs\buh.
  5. Отметьте, что публиковать: доступ для тонкого и веб-клиента, веб-сервисы, HTTP-сервисы, стандартный интерфейс OData. Если сервисами никто не пользуется, флажки снимите.
  6. Нажмите «Опубликовать». Для Apache подтвердите перезапуск службы.

Проверка — откройте в браузере http://localhost/buh. Должно появиться окно входа в 1С.

Через webinst (Linux и пакетная публикация)

На сервере без графики Конфигуратор не нужен. Публикацию делает утилита webinst, запускать её нужно с правами root:

cd /opt/1cv8/x86_64/8.3.xx.xxxx/
sudo ./webinst -publish -apache24 \
  -wsdir buh \
  -dir /var/www/buh \
  -connstr "Srvr=srv1c;Ref=buh;" \
  -confpath /etc/apache2/apache2.conf
sudo systemctl restart apache2

Здесь -wsdir — имя публикации, -dir — каталог с файлом default.vrd, -connstr — строка соединения с базой. Для файловой базы строка выглядит так: File="/srv/1c/buh";. Полный список ключей выводит сама утилита при запуске без параметров.

Что появляется после публикации

В каталоге публикации создаётся файл default.vrd — XML-описание точки. В нём строка соединения с базой и включённые сервисы:

<?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=&quot;srv1c&quot;;Ref=&quot;buh&quot;;">
</point>

В конфиг Apache дописывается блок:

LoadModule _1cws_module "C:/Program Files/1cv8/8.3.xx.xxxx/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 в конфиге держат одну на весь сервер. Каждая следующая база добавляет только свой блок Alias и Directory.

Подключение тонкого клиента к публикации

В окне запуска 1С нажмите «Добавить» → «Добавление в список существующей информационной базы». Укажите тип расположения «На веб-сервере» и адрес https://ваш-домен/buh. Тонкий клиент работает быстрее веб-клиента и не зависит от браузера, поэтому для постоянной работы удобнее он.

Права доступа и защита опубликованной базы

Права на каталоги

Веб-сервер работает от служебной учётной записи. Ей нужен доступ к трём местам:

ЧтоКому датьКакие права
Каталог публикации (default.vrd)IIS_IUSRS или учётке службы ApacheЧтение
Каталог bin платформыТем жеЧтение и выполнение
Каталог файловой базыТем жеИзменение (чтение и запись)

Для клиент-серверной базы третья строка не нужна: с данными работает сервер 1С, а не веб-сервер.

Служба Apache в Windows по умолчанию запускается от «Локальной системы». Это работает, но если файловая база лежит на другом компьютере, у «Локальной системы» к сетевой папке доступа нет. Запустите службу от доменной учётной записи с правами на эту папку.

Пользователи и пароли

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

  • 🔑 у каждого пользователя в списке пользователей базы должен быть пароль;
  • 🚫 пустой список пользователей недопустим: тогда база откроется любому без входа;
  • 👤 у служебной учётки с полными правами пароль должен быть длинным и нигде не записанным в открытом виде.

Аутентификация операционной системы через веб-сервер возможна, но требует настройки Windows-аутентификации в IIS или Kerberos в Apache. Для доступа из интернета её обычно не используют.

HTTPS и выход наружу

Не выставляйте публикацию в интернет по голому HTTP: логин и пароль 1С уйдут открытым текстом. Варианты:

  1. Сертификат на самом веб-сервере. В IIS — привязка сайта к порту 443 с сертификатом. В Apache — модуль mod_ssl и директивы SSLCertificateFile, SSLCertificateKeyFile.
  2. Обратный прокси. Снаружи стоит nginx с бесплатным сертификатом Let’s Encrypt, внутрь он проксирует запросы на Apache или IIS. Сервер с 1С при этом в интернет не смотрит.
  3. Ограничение по адресам. Если пользователи работают с постоянных IP, разрешите доступ только с них: в Apache директивой Require ip, в IIS — «Ограничениями IP-адресов и доменов».

Публикуйте только то, что нужно. Если отметили веб-сервисы и OData «на всякий случай», через них можно читать данные базы при наличии логина. Лишние флажки при публикации снимите.

Частые ошибки при публикации 1С на веб-сервере

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

Конфигуратор не видит веб-сервер в списке

В поле «Веб-сервер» пусто или нет нужного варианта. Значит, Конфигуратор не нашёл установленный IIS или службу Apache, либо он запущен без прав администратора. Перезапустите его от администратора. Для Apache, установленного из zip-архива без службы, сначала зарегистрируйте службу командой httpd.exe -k install в каталоге bin Apache.

Если не помогло: ручная проверка конфигурации

Когда публикация вроде бы прошла, но база не открывается, пройдите цепочку по звеньям:

  1. Откройте http://localhost/ на самом сервере. Нет стартовой страницы веб-сервера — проблема не в 1С.
  2. Откройте http://localhost/buh. Если ответ есть, а снаружи нет — смотрите брандмауэр и DNS.
  3. Проверьте журнал ошибок: в Apache это logs/error.log, в IIS — журналы в C:\inetpub\logs\LogFiles и «Просмотр событий» Windows.
  4. Сравните строку соединения в default.vrd с той, что в окне запуска 1С. Опечатка в имени сервера или базы встречается чаще, чем кажется.
  5. Удалите публикацию и создайте заново: в диалоге публикации есть кнопка «Отключить», у webinst — ключ -delete.

Перезапуск службы Apache или пула IIS обрывает все сеансы пользователей, работающих через веб. Делайте это вне рабочего времени или предупредите людей заранее, чтобы они сохранили документы.

Как ускорить работу 1С через браузер

Веб-клиент чувствителен к задержке сети сильнее, чем к ширине канала. Каждое открытие формы — несколько запросов к серверу.

  • ⚡ Используйте тонкий клиент вместо браузера. Он кеширует метаданные и формы, поэтому открывает документы быстрее.
  • 🏠 Ставьте веб-сервер рядом с сервером 1С. В одной локальной сети или на одной машине. Веб-сервер в другом дата-центре добавит задержку к каждому вызову.
  • 💾 Файловую базу держите на локальном диске веб-сервера, а не в сетевой папке. Двойной сетевой переход тормозит каждую запись.
  • 🔧 Apache в Windows: потоки. Модуль mpm_winnt обслуживает запросы потоками; при 30+ пользователях проверьте ThreadsPerChild в httpd.conf и при нехватке потоков поднимите значение, например до 150–250.
  • 🔒 HTTPS на прокси. Шифрование на nginx снимает эту нагрузку с машины, где работают процессы 1С.
  • 📉 Удобство форм. Тяжёлые динамические списки без отборов грузят сервер одинаково и в тонком клиенте, и в веб. Настройте отборы и не выводите лишние колонки.

Для 10–20 пользователей хватает одного веб-сервера на 2–4 ядра и 4–8 ГБ памяти, если сервер 1С стоит отдельно. Это ориентир: реальная нагрузка зависит от конфигурации и количества одновременных проведений.

Частые вопросы о веб-публикации 1С

Нужна ли отдельная лицензия для работы через веб-сервер?
Отдельной лицензии на веб-публикацию нет. Каждый пользователь веб-клиента или тонкого клиента через веб занимает обычную клиентскую лицензию, как при прямом подключении.
Можно ли опубликовать несколько баз на одном веб-сервере?
Да. Каждая база получает своё имя публикации и свой каталог с default.vrd. Адреса будут вида /buh, /zup, /trade.
Какие браузеры поддерживает веб-клиент 1С?
Актуальные версии Chrome, Firefox, Edge, Safari и Яндекс Браузера. Точный перечень для вашей версии платформы приведён в её системных требованиях.
Работает ли публикация с базой, где включено расширение конфигурации?
Да. Расширения применяются на стороне сервера, веб-клиент получает уже собранную конфигурацию. Перепубликовывать базу после установки расширения не нужно.
Можно ли обойтись без веб-сервера, если нужен удалённый доступ?
Можно: VPN до офиса или удалённый рабочий стол (RDP, RemoteApp). Веб-публикация удобна тем, что не требует ставить на компьютер пользователя ничего, кроме браузера или тонкого клиента.