1С:Предприятие на IIS и Apache: что происходит между браузером и базой

· 9 мин

Содержание

1С работает через веб-сервер так: браузер или тонкий клиент отправляет HTTP-запросы на IIS или Apache, а модуль расширения веб-сервера 1С (wsisapi.dll для IIS, wsap24.dll для Apache 2.4) передаёт их платформе. Дальше запрос обрабатывает либо сам веб-сервер (файловая база), либо кластер серверов 1С (клиент-серверная). Пользователю не нужен VPN или RDP — достаточно адреса вида https://server/buh.

Выбор веб-сервера простой. IIS берут, когда всё на Windows и нужна доменная аутентификация. Apache — когда сервер на Linux или нужен один конфиг под несколько версий платформы. Настройка и архитектура у обоих одинаковы по сути, отличаются только способом подключения модуля.

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

В цепочке четыре звена. Важно понимать, где какое лежит, иначе ошибки публикации ищут не там.

  1. 🌐 Клиент — веб-клиент (браузер) или тонкий клиент 1С, подключённый по HTTP.
  2. 🖥️ Веб-сервер — IIS или Apache. Сам он 1С не понимает, только принимает запросы.
  3. 🧩 Модуль расширения 1С — библиотека из каталога bin установленной платформы. Она загружает серверную часть 1С внутрь процесса веб-сервера.
  4. 🗄️ База — файл 1Cv8.1CD или информационная база в кластере 1С.

Разница между вариантами базы принципиальная:

Вариант базыКто выполняет серверный кодГде ищется лицензияСколько пользователей комфортно
Файловаяпроцесс веб-серверана компьютере веб-серверадо 5–10 одновременно
Клиент-сервернаярабочие процессы кластера 1Сна сервере 1Сдесятки и сотни

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

Связку между URL и базой описывает файл default.vrd в каталоге публикации. В нём строка подключения к базе и набор опубликованных сервисов. Веб-сервер читает его при каждом обращении к публикации.

Версия модуля и версия платформы на сервере 1С должны совпадать до последней цифры. Обновили сервер 1С с 8.3.24 до 8.3.25 — обновите и платформу на веб-сервере, и путь к модулю.

Выбор веб-сервера и подготовка к публикации

КритерийIISApache 2.4
ОСтолько WindowsWindows и Linux
Подключение модуляобработчик в web.configдирективы в httpd.conf
Доменная (Windows) аутентификациявстроеннаянужны отдельные модули
Несколько версий платформы на одном серверенеудобно, через разные пулыпросто, путь к модулю в каждой публикации
Поддержка в Конфигураторедада (Apache 2.2 и 2.4)

Что установить для IIS

  1. В Windows Server откройте Диспетчер серверов → Добавить роли и компоненты и выберите роль Веб-сервер (IIS).
  2. В службах роли отметьте Разработка приложений → Расширения ISAPI и Фильтры ISAPI, а также консоль управления IIS.
  3. Установите платформу 1С с компонентом Модули расширения веб-сервера. Без него в bin не будет wsisapi.dll.
  4. Разрядность платформы должна совпадать с режимом пула приложений. Для 32-битной платформы в дополнительных параметрах пула включите «Разрешены 32-разрядные приложения», для 64-битной — выключите.

Что установить для Apache

  1. Поставьте Apache 2.4 той же разрядности, что и платформа 1С. На Windows обычно берут сборку Apache Lounge, на Linux — пакет apache2 или httpd.
  2. Установите платформу с модулями веб-сервера. На Linux модуль называется wsap24.so и лежит в /opt/1cv8/x86_64/<версия>/.
  3. Запустите Apache как службу и проверьте, что стартовая страница открывается.

Публикация информационной базы на веб-сервере

Опубликовать базу можно двумя способами: из Конфигуратора или утилитой webinst. Результат одинаков — каталог с default.vrd и запись в настройках веб-сервера.

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

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

Через webinst

Утилита лежит в каталоге bin платформы. Она удобна для скриптов и для Linux, где Конфигуратор на сервере обычно не запускают.

cd "C:\Program Files\1cv8\8.3.24.1342\bin"
webinst -publish -apache24 -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=srv1c;Ref=buh;" -confpath "C:\Apache24\conf\httpd.conf"

Для IIS вместо -apache24 указывают -iis, параметр -confpath тогда не нужен. Для файловой базы строка подключения выглядит как File=C:\Bases\buh;.

Что появляется в httpd.conf

Конфигуратор и webinst добавляют примерно такой блок. Его полезно знать, чтобы править руками после обновления платформы:

LoadModule _1cws_module "C:/Program Files/1cv8/8.3.24.1342/bin/wsap24.dll"

Alias "/buh" "C:/inetpub/wwwroot/buh/"
<Directory "C:/inetpub/wwwroot/buh/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/inetpub/wwwroot/buh/default.vrd"
</Directory>

Строка LoadModule в конфиге должна быть одна. Две публикации с разными путями к модулю в одном Apache не уживутся — служба не стартует.

Как подключиться к опубликованной базе

  • 🌍 Веб-клиент: откройте в браузере http://имя-сервера/buh. Поддерживаются актуальные Chrome, Edge, Firefox, Яндекс Браузер, Safari.
  • 💻 Тонкий клиент: в окне запуска нажмите «Добавить» → «Добавление в список существующей информационной базы» → тип расположения «На веб-сервере» и тот же адрес.

Тонкий клиент через веб-сервер работает быстрее веб-клиента и умеет всё, что умеет в локальной сети, включая печать и работу с файлами. Веб-клиент удобен там, где ставить ничего нельзя.

Безопасность публикации и HTTPS

Публикация в интернет без защиты — прямой доступ к бухгалтерии для любого, кто подберёт пароль. Минимальный набор мер:

  • 🔒 HTTPS обязателен. В IIS добавьте привязку https на порт 443 с сертификатом в настройках сайта. В Apache включите mod_ssl и пропишите SSLCertificateFile и SSLCertificateKeyFile в виртуальном хосте.
  • 🔑 У всех пользователей 1С есть пароли, пользователь без пароля через веб-доступ — открытая дверь.
  • 🚫 Не храните логин и пароль в строке подключения. Параметры Usr и Pwd в -connstr или в default.vrd пускают в базу любого, кто знает адрес.
  • 🧱 Публикуйте только нужное. Отключённые OData и веб-сервисы не нужно защищать.
  • 🌐 Ограничьте доступ по IP, если в базу ходят из известных офисов.

Сертификат для тонкого клиента должен быть доверенным. С самоподписанным браузер покажет предупреждение, а тонкий клиент может отказаться подключаться. Проще всего выпустить бесплатный сертификат Let’s Encrypt на доменное имя.

Ещё один удобный вариант — поставить перед IIS или Apache обратный прокси nginx. Он берёт на себя TLS, сжатие и ограничение доступа, а сам веб-сервер с 1С не выставляется наружу.

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

Процесс веб-сервера работает под служебной учётной записью. Ей нужны права:

КаталогУчётная записьПрава
Каталог публикации (...\wwwroot\buh)IIS_IUSRS / служба Apacheчтение
bin платформыIIS_IUSRS / служба Apacheчтение и выполнение
Каталог файловой базыIUSR и IIS_IUSRS / служба Apacheизменение

Для клиент-серверной базы права на каталог базы не нужны — к данным ходит кластер, а не веб-сервер.

Ошибки при работе 1С через веб-сервер и их диагностика

Большинство ошибок появляются сразу после публикации или после обновления платформы. Начинайте с журнала событий Windows (раздел «Приложение») или error.log Apache — там видна настоящая причина, а не общий текст в браузере.

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

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

Технологический журнал на веб-сервере

Если в логах веб-сервера пусто, включите технологический журнал 1С на машине веб-сервера. Файл logcfg.xml кладут в каталог conf платформы:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\1C_log" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
  </log>
</config>

Журнал будет собирать исключения платформы. Каталог C:\1C_log должен быть доступен на запись учётной записи веб-сервера. После диагностики удалите logcfg.xml, иначе журнал продолжит расти.

Производительность и масштабирование веб-доступа

Веб-сервер сам по себе редко бывает узким местом. Тормозит обычно база или канал. Но несколько настроек заметно влияют на скорость.

  • ⚡ Файловая база через веб-сервер держит нагрузку хуже, чем клиент-серверная. Если одновременно работает больше 5–10 человек и появляются блокировки, переходите на сервер 1С, а веб-сервер оставьте как точку входа.
  • 🔁 Пул приложений IIS по умолчанию перезапускается каждые 29 часов. В момент перезапуска сеансы рвутся. Задайте перезапуск по расписанию ночью.
  • 🗜️ Сжатие ответов (gzip) включите на веб-сервере или на прокси. Для удалённых офисов с медленным каналом это заметно.
  • 🌍 Тонкий клиент вместо веб-клиента снижает нагрузку на браузер пользователя и обычно работает отзывчивее.

Несколько веб-серверов

Когда пользователей сотни, ставят два-три веб-сервера с одинаковыми публикациями и балансировщик перед ними (nginx, HAProxy или аппаратный). Правила простые:

  1. Публикации на всех узлах одинаковые, с одной строкой подключения к кластеру.
  2. Платформа на всех веб-серверах той же версии, что и кластер.
  3. На балансировщике включите закрепление клиента за узлом (sticky-сессии), чтобы запросы одного пользователя шли на один веб-сервер.
  4. Нагрузку на сам кластер 1С распределяют средствами кластера — через рабочие серверы и требования назначения функциональности, а не балансировщиком веб-уровня.
Проверка публикации перед запуском в работу
Выполнено: 0 / 8

Частые вопросы

Нужен ли отдельный сервер под веб-сервер 1С?
Нет. IIS или Apache можно поставить на тот же компьютер, где сервер 1С или лежит файловая база. Отдельная машина нужна при выходе в интернет, когда сервер с базой не хочется выставлять наружу.
Можно ли опубликовать базу без статического IP?
Да, через сервис динамического DNS или через внешний VPS с обратным прокси. Но для постоянной работы удобнее статический адрес и доменное имя под сертификат.
Работает ли публикация на Linux с базой на Windows-сервере 1С?
Да. Веб-сервер на Linux подключается к кластеру по сети, ОС сервера 1С значения не имеет. Важно только совпадение версий платформы.
Сколько стоит веб-доступ к 1С?
Отдельной лицензии на веб-сервер нет. IIS входит в Windows Server, Apache бесплатный. Пользователям нужны обычные клиентские лицензии 1С, как при работе в локальной сети.
Можно ли открыть одну базу и через веб-сервер, и напрямую?
Да. Публикация не меняет базу, пользователи в офисе могут работать по локальной сети, а удалённые — через веб-сервер одновременно.