Веб-сервер в инфраструктуре 1С:Предприятия: какие задачи он закрывает и какой выбрать

· 9 мин

Содержание

Веб-сервер нужен 1С для всего, что ходит в базу по протоколу HTTP: работа через браузер (веб-клиент), тонкий клиент через интернет без VPN, мобильный клиент и мобильные приложения, а также интеграции через HTTP-сервисы, веб-сервисы SOAP и OData. Если пользователи сидят только в локальной сети в толстом или тонком клиенте, а обменов с внешними системами нет, веб-сервер не нужен вовсе.

Выбор простой. На Windows чаще всего ставят IIS, на Linux — Apache 2.4. Apache работает и на Windows, его берут, когда нужна одна схема настройки для всех серверов. Третий вариант — автономный сервер ibsrv из состава платформы: он сам отдаёт базу по HTTP без внешнего веб-сервера и подходит для небольших и тестовых установок.

Что делает веб-сервер в связке с 1С

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

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

  1. Браузер, тонкий клиент или внешняя система отправляет запрос на адрес вида https://srv.company.ru/buh.
  2. Веб-сервер по пути /buh находит публикацию и передаёт запрос модулю расширения.
  3. Модуль читает файл публикации default.vrd: в нём строка соединения с базой и список того, что опубликовано.
  4. Модуль работает с базой как обычный клиент 1С и возвращает ответ.

Какие библиотеки за что отвечают:

Веб-серверМодуль расширенияГде лежит
IIS (Windows)wsisapi.dllкаталог bin версии платформы
Apache 2.4 (Windows)wsap24.dllкаталог bin версии платформы
Apache 2.4 (Linux)wsap24.so/opt/1cv8/x86_64/<версия>/
Apache 2.2wsap22.dll / wsap22.soустаревшая ветка, для новых установок не берут

Модуль ставится вместе с платформой, если в установщике отмечен компонент «Модули расширения веб-сервера». Его версия должна совпадать с версией сервера 1С, иначе соединение с кластером не установится.

Основные задачи веб-сервера для 1С

  • 🌐 Веб-клиент — работа в базе из браузера без установки платформы на компьютер.
  • 💻 Тонкий клиент по HTTP — привычное окно 1С, но соединение идёт через веб-сервер, а не напрямую к кластеру по портам 1540–1541.
  • 📱 Мобильный клиент — работа с опубликованной базой с телефона или планшета.
  • 🔗 HTTP-сервисы — REST-подобные интерфейсы для сайтов, маркетплейсов, складских систем.
  • 📄 Веб-сервисы SOAP — классическая интеграция с описанием WSDL.
  • 📊 OData — стандартный интерфейс для чтения и записи данных базы без доработки конфигурации.

Удалённая работа и мобильные устройства через веб-сервер

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

Веб-клиент или тонкий клиент по HTTP

ВариантЧто нужно на компьютереКогда выбирать
Веб-клиентТолько браузерРедкая работа, чужие компьютеры, macOS без платформы
Тонкий клиент по HTTPУстановленный тонкий клиент той же версииЕжедневная работа: быстрее, удобнее печать и работа с файлами

Чтобы тонкий клиент ходил через веб-сервер, в списке баз добавляют базу с типом расположения «На веб-сервере» и указывают адрес публикации. В строке соединения это выглядит как ws="https://srv.company.ru/buh";.

Веб-клиент тоже занимает клиентскую лицензию, как и обычный тонкий клиент. Публикация не даёт «бесплатных» пользователей: считайте сеансы так же, как при работе в локальной сети.

Мобильный клиент и мобильные приложения

Здесь два разных сценария, их часто путают:

  • 📱 Мобильный клиент — по сути тонкий клиент для телефона. Он работает с той же опубликованной базой, что и браузер. Без публикации на веб-сервере не запустится.
  • 📲 Мобильное приложение на мобильной платформе — отдельная небольшая база на телефоне. С центральной базой оно обменивается через веб-сервисы или HTTP-сервисы, которые тоже публикуются на веб-сервере.

В обоих случаях адрес должен быть доступен из интернета, и почти всегда по HTTPS: современные мобильные системы неохотно работают с открытым HTTP.

IIS, Apache или автономный сервер: какой веб-сервер выбрать для 1С

Все три варианта рабочие. Разница в платформе, удобстве настройки и масштабе.

КритерийIISApache 2.4Автономный сервер ibsrv
ОСТолько WindowsWindows и LinuxWindows и Linux
УстановкаРоль Windows Server, ставится из «Диспетчера серверов»Отдельный дистрибутив или пакет apache2Входит в платформу
Публикация из КонфигуратораДаДаНет, свой порядок запуска
НастройкаГрафическая оснасткаТекстовый httpd.conf / файлы сайтаПараметры командной строки и файл конфигурации
СертификатыПривязка к сайту в оснасткеmod_sslСтавят прокси перед ним
Для чегоОфис на Windows ServerLinux-серверы, одинаковая схема на всех площадкахТесты, разработка, небольшие базы

Когда брать IIS

IIS удобен, если сервер 1С и так стоит на Windows Server 2016 и новее. Роль «Веб-сервер (IIS)» добавляют через «Диспетчер серверов». При установке отмечают компоненты «Расширения ISAPI» и «Фильтры ISAPI» — без них модуль wsisapi.dll не подключится.

Разрядность модуля должна совпадать с разрядностью пула приложений. Если стоит 32-разрядная платформа, в дополнительных параметрах пула приложений включают «Разрешить 32-разрядные приложения». Для 64-разрядной платформы этот параметр выключен.

Когда брать Apache

Apache — стандарт для Linux. На Windows его выбирают, когда IIS запрещён политикой или когда администратору проще править текстовый конфиг. Публикация добавляет в httpd.conf блок такого вида:

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

# 1c publication
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 нужно поменять на новую версию — частая причина того, что после обновления «вдруг сломался» веб-клиент.

Nginx и автономный сервер

Модуля для Nginx в платформе нет. Nginx ставят перед Apache или перед ibsrv как обратный прокси: он принимает HTTPS, держит сертификат и передаёт запросы дальше.

Автономный сервер ibsrv работает без кластера и без внешнего веб-сервера. Для рабочей базы на 20 пользователей обычно всё же выбирают классическую схему «сервер 1С + IIS или Apache»: её проще администрировать и масштабировать. Параметры запуска ibsrv смотрите в справке ibsrv --help для своей версии платформы.

Публикация базы и интеграция через HTTP-сервисы

Опубликовать базу можно двумя способами.

Из Конфигуратора. Запустите Конфигуратор от имени администратора Windows (иначе не хватит прав на запись в каталог веб-сервера), откройте Администрирование → Публикация на веб-сервере. Укажите имя публикации, веб-сервер, каталог и отметьте, что публиковать.

Утилитой webinst. Она лежит в каталоге bin платформы и удобна для скриптов и серверов без графической оболочки:

webinst -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=srv1c;Ref=buh;"

Для Apache вместо -iis указывают -apache24 и путь к конфигу ключом -confpath. Удаление публикации — тот же вызов с ключом -delete.

Какие флажки ставить при публикации

ФлажокЧто даётКогда отключать
Публиковать тонкий клиент и веб-клиентВход пользователей через браузер и тонкий клиент по HTTPПубликация только для обменов
Публиковать веб-сервисыSOAP-сервисы конфигурацииЕсли внешние системы их не используют
Публиковать HTTP-сервисыREST-интерфейсы конфигурации и расширенийЕсли нет интеграций
Публиковать стандартный интерфейс ODataДоступ к данным по ODataЕсли не пользуетесь — держите выключенным

Адреса для интеграции

После публикации внешние системы обращаются по стандартным путям:

  • https://srv.company.ru/buh/hs/<корневой URL сервиса>/<шаблон> — HTTP-сервисы;
  • https://srv.company.ru/buh/ws/<имя сервиса>?wsdl — описание веб-сервиса SOAP;
  • https://srv.company.ru/buh/odata/standard.odata/ — стандартный интерфейс OData.

Корневой URL HTTP-сервиса задаётся в его свойствах в Конфигураторе. Если сервис добавлен расширением, его тоже нужно отметить в публикации, иначе запрос вернёт 404.

Для OData мало включить флажок в публикации. В базе ещё задают состав интерфейса: какие справочники, документы и регистры отдавать наружу. Пока состав пустой, OData отвечает, но данных нет.

Безопасность публикации и SSL-сертификат

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

Минимальный набор мер

  • 🔒 Только HTTPS. При обычной аутентификации логин и пароль 1С идут в каждом запросе. По открытому HTTP их видно на любом промежуточном узле.
  • 👤 Без пользователя в строке соединения. Не записывайте Usr= и Pwd= в публикацию. Иначе любой, кто откроет адрес, попадёт в базу под этим пользователем.
  • 🔑 Пароли у всех пользователей 1С. Пользователь без пароля в опубликованной базе — открытая дверь.
  • 🚪 Отдельная публикация под обмены. Для HTTP-сервисов делайте отдельную публикацию без веб-клиента и с отдельным пользователем, у которого роль только на нужные операции.
  • 🧱 Закрытые порты кластера. Наружу открыт только 443. Порты 1540, 1541 и диапазон рабочих процессов в интернет не выставляют.

Сертификат на IIS

  1. Получите сертификат: купленный у удостоверяющего центра или бесплатный Let’s Encrypt через утилиту автоматического выпуска для Windows.
  2. В «Диспетчере служб IIS» выберите сайт, откройте «Привязки» и добавьте привязку https на порт 443 с этим сертификатом.
  3. Проверьте, что адрес открывается без предупреждений браузера, и только потом раздавайте его пользователям.

Сертификат на Apache

В Apache подключают модуль mod_ssl и в описании сайта на порту 443 указывают SSLCertificateFile и SSLCertificateKeyFile. На Linux удобнее всего certbot: он сам продлевает сертификат Let’s Encrypt раз в 60–90 дней.

Самоподписанный сертификат подходит для теста. Мобильный клиент и многие внешние системы откажутся с ним работать или потребуют вручную добавить его в доверенные.

Ошибки публикации и их диагностика

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

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

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

  1. Создайте пустую тестовую базу и опубликуйте её с тем же веб-сервером. Открылась — проблема в правах или настройках рабочей базы. Не открылась — в веб-сервере или модуле.
  2. Удалите публикацию через Конфигуратор или webinst -delete и создайте заново: так исправляются «битые» default.vrd и обработчики в IIS.
  3. Проверьте, что в IIS у публикации есть обработчик для модуля 1С и что ISAPI-расширение разрешено в «Ограничениях ISAPI и CGI».

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

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

Можно ли поставить веб-сервер на другой компьютер, а не на сервер 1С?
Да. Веб-сервер с модулем расширения подключается к кластеру как обычный клиент. Нужны одинаковые версии платформы и открытые с машины веб-сервера порты 1540–1541 и диапазон рабочих процессов.
Подойдёт ли веб-сервер для файловой базы?
Подойдёт. Учётной записи, от которой работает веб-сервер, нужны права на изменение каталога базы. Для одновременной работы многих пользователей лучше клиент-серверный вариант.
Нужна ли отдельная лицензия на веб-сервер?
Отдельной лицензии на публикацию нет. Пользователи веб-клиента и тонкого клиента по HTTP занимают обычные клиентские лицензии.
Сколько пользователей выдержит одна публикация?
Ограничение задаёт не публикация, а ресурсы сервера 1С и самого веб-сервера. Десятки пользователей на IIS или Apache — обычная нагрузка для одного сервера.
Можно ли опубликовать несколько баз на одном веб-сервере?
Да. Каждая база публикуется под своим именем: /buh, /zup, /ut. У каждой публикации свой default.vrd и свой набор флажков.