Веб-доступ к 1С через IIS и Apache: от установки модулей до первого входа из браузера

· 9 мин

Содержание

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

Схема одинакова для файловой и клиент-серверной базы, для IIS и Apache. Различаются права на папки, настройка пула приложений и строка подключения. Всё написанное относится к платформе 8.3 и Windows Server 2016 и новее.

Что подготовить на сервере перед публикацией базы 1С

Публикация — это не копирование базы на веб-сервер. Веб-сервер получает небольшой файл default.vrd с описанием, куда подключаться, и модуль платформы, который переводит HTTP-запросы в обращения к базе. Сама база остаётся на своём месте.

Что должно стоять на компьютере, где работает веб-сервер:

  • 🖥️ IIS с компонентами разработки приложений: «Расширения ISAPI» и «Фильтры ISAPI», плюс «Консоль управления IIS». Ставятся через Диспетчер серверов → Добавить роли и компоненты → Веб-сервер (IIS).
  • 🪶 Или Apache 2.4 — как служба Windows. Брать сборку той же разрядности, что и модули 1С.
  • 🧩 Платформа 1С с компонентом «Модули расширения веб-сервера». При обычной установке он не выбран: запустите установщик ещё раз, выберите «Изменить» и отметьте компонент.
  • 🔑 Доступ к лицензии. В файловом варианте лицензию получает процесс веб-сервера, поэтому ключ или программная лицензия должны быть видны с этого компьютера. В клиент-серверном варианте лицензии выдаёт сервер 1С.

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

Если база клиент-серверная, веб-сервер можно ставить на отдельную машину. Тогда на ней нужна только платформа с модулями расширения той же версии, что и сервер 1С. Номер версии должен совпадать полностью, вплоть до сборки.

Перед публикацией проверьте
Выполнено: 0 / 5

Публикация базы через Конфигуратор: пошагово

Самый простой путь — штатная форма в Конфигураторе. Она сама создаёт каталог, файл default.vrd и регистрирует приложение в IIS или прописывает строки в httpd.conf Apache.

Шаги для IIS

  1. Щёлкните ярлык 1С правой кнопкой и выберите «Запуск от имени администратора». Без этого публикация завершится ошибкой доступа.
  2. Откройте базу в режиме Конфигуратора.
  3. Выберите Администрирование → Публикация на веб-сервере.
  4. В поле «Имя» задайте короткое латинское имя без пробелов, например buh. Оно станет частью адреса.
  5. В списке «Веб-сервер» выберите Internet Information Services.
  6. «Каталог» оставьте по умолчанию (C:\inetpub\wwwroot\buh) или укажите свой.
  7. Отметьте нужное: доступ для тонкого клиента и веб-клиента, веб-сервисы, HTTP-сервисы, стандартный интерфейс OData. Для работы пользователей в браузере хватает первой галочки.
  8. Нажмите «Опубликовать» и согласитесь на перезапуск веб-сервера.

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

Шаги для Apache 2.4

Порядок тот же, но в списке «Веб-сервер» выбирают Apache 2.4, а в поле с путём к конфигурации указывают файл httpd.conf, например C:\Apache24\conf\httpd.conf. Конфигуратор допишет в него блок подключения модуля. После публикации перезапустите службу Apache.

Что появится в httpd.conf (пример для 64-битной платформы):

LoadModule _1cws_module "C:/Program Files/1cv8/8.3.25.1374/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. Если в одной системе стоят две версии платформы, в httpd.conf может оказаться только один модуль — Apache обслуживает все публикации одной версией.

Публикация из командной строки: webinst

Без Конфигуратора базу публикует утилита webinst.exe из каталога bin платформы. Это удобно для сервера без графического сеанса и для скриптов.

cd "C:\Program Files\1cv8\8.3.25.1374\bin"

rem Клиент-серверная база, IIS
webinst -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=srv1c;Ref=buh;"

rem Файловая база, Apache 2.4
webinst -publish -apache24 -wsdir buh -dir "C:\Apache24\htdocs\buh" -connstr "File=""D:\Bases\Buh"";" -confpath "C:\Apache24\conf\httpd.conf"

Удаляют публикацию ключом -delete с тем же -wsdir. Полный список параметров печатает сама утилита при запуске без ключей.

Права на папки, вход пользователей и HTTPS

Публикация прошла, а браузер выдаёт ошибку — почти всегда виноваты права. Веб-сервер работает от служебной учётной записи, и ей нужен доступ к трём местам.

ЧтоКому датьКакие права
Каталог bin платформы (C:\Program Files\1cv8\<версия>\bin)IIS_IUSRSЧтение и выполнение
Каталог публикации (C:\inetpub\wwwroot\buh)IIS_IUSRSЧтение
Папка файловой базыIIS_IUSRS и IUSRИзменение

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

Для клиент-серверной базы папка с данными не нужна: веб-сервер ходит к серверу 1С по сети. Достаточно, чтобы с машины веб-сервера был доступен порт агента сервера 1С (1540) и диапазон портов рабочих процессов.

Как пользователи входят в базу

  • 👤 Логин и пароль 1С. Стандартный вариант: при открытии адреса браузер показывает окно входа 1С. У каждого пользователя в базе должен быть пароль — без него любой, кто знает адрес, войдёт под пользователем с пустым паролем.
  • 🪟 Аутентификация операционной системы. При публикации доступна отдельная галочка. В карточке пользователя 1С должна быть включена проверка через ОС и указан доменный пользователь. В IIS для публикации включают «Проверку подлинности Windows».
  • 🚫 Логин и пароль в строке подключения. Можно дописать Usr= и Pwd= в default.vrd, тогда база откроется без окна входа. Так нельзя делать для публикации, доступной из интернета: пароль лежит открытым текстом, а вход получает каждый.

HTTPS обязателен для внешнего доступа

По HTTP пароль 1С и все данные идут открытым текстом. Если публикация смотрит в интернет, нужен сертификат.

  1. В IIS: получите сертификат (Let’s Encrypt через win-acme или купленный), в Сайт → Привязки добавьте https на порт 443 с этим сертификатом.
  2. В Apache: подключите mod_ssl, пропишите SSLCertificateFile и SSLCertificateKeyFile в виртуальном хосте на порту 443.
  3. Закройте порт 80 или настройте с него перенаправление на HTTPS.

Ещё лучше — не открывать публикацию в интернет вовсе, а пускать сотрудников через VPN. Тогда веб-сервер виден только внутри сети.

Настройка пула IIS и скорость работы веб-клиента

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

Пул приложений IIS

Конфигуратор кладёт публикацию в пул DefaultAppPool. Откройте его в Диспетчер IIS → Пулы приложений → DefaultAppPool → Дополнительные параметры:

  • ⚙️ «Разрешены 32-разрядные приложения» — True только для 32-битных модулей 1С, для 64-битных — False.
  • ⏳ «Время простоя (мин)» — по умолчанию 20. Через 20 минут без запросов пул выгружается, и первый вход после паузы долгий. Поставьте 0.
  • 🔄 «Регулярный интервал времени (мин)» в разделе «Перезапуск» — по умолчанию пул перезапускается раз в 29 часов. Каждый перезапуск обрывает открытые сеансы. Замените на перезапуск в фиксированное ночное время.

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

Если на сервере несколько публикаций разных версий платформы или разной разрядности, вынесите каждую в собственный пул. Тогда сбой одной базы не уронит остальные.

Что ещё ускоряет работу

  • 🧑‍💻 Тонкий клиент вместо браузера. Тот же адрес можно добавить в список баз тонкого клиента как «На веб-сервере». Он работает заметно быстрее веб-клиента и не зависит от браузера.
  • 🗜️ Сжатие. Включите в IIS статическое и динамическое сжатие (компонент «Сжатие динамического содержимого»). На медленных каналах выигрыш ощутимый.
  • 🌐 Браузер. Используйте актуальные Chrome, Edge, Firefox или Яндекс Браузер. Устаревшие версии платформа может не поддерживать.
  • 🗄️ Клиент-сервер вместо файла. Файловая база через веб тормозит уже на 5–10 одновременных пользователях: все запросы идут через один процесс веб-сервера к одному файлу. Для большего числа сотрудников переводите базу в клиент-серверный вариант.

Ошибки при публикации базы на веб-сервере и как их исправить

Большинство сбоев сводится к четырём причинам: разрядность, права, версия модуля и неполная установка IIS. Выберите симптом:

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

Подробности ошибки IIS пишет в журнал событий Windows (Просмотр событий → Журналы Windows → Приложение), Apache — в файл logs\error.log. Начинайте диагностику с них, а не с переустановки.

Когда помогает только переустановка модуля

Если всё настроено верно, а ошибка 500 остаётся, проверьте, какая версия модуля прописана для публикации. В IIS это видно в «Сопоставлениях обработчиков» каталога публикации: путь к wsisapi.dll должен вести в каталог bin текущей версии платформы. Если старая версия удалена, путь указывает в пустоту. Публикация из Конфигуратора нужной версии перепишет его.

Вопросы по веб-доступу к 1С

Нужна ли отдельная лицензия для работы через веб-клиент?
Отдельной «веб-лицензии» нет. Каждый пользователь веб-клиента занимает клиентскую лицензию так же, как тонкий клиент. В файловом варианте её получает компьютер веб-сервера.
Можно ли опубликовать на одном веб-сервере несколько баз?
Да. Каждая база публикуется под своим именем и открывается по своему адресу. В Apache все публикации обслуживаются одной версией модуля, в IIS разные версии можно развести по пулам.
Как открыть опубликованную базу в тонком клиенте?
В окне запуска 1С нажмите «Добавить», выберите добавление существующей базы и тип расположения «На веб-сервере». Укажите адрес публикации, например https://server/buh.
Нужно ли публиковать базу заново после обновления конфигурации?
Нет. Обновление конфигурации на публикацию не влияет. Перепубликация нужна после смены версии платформы на веб-сервере.
Как отключить публикацию?
В той же форме Конфигуратора нажмите «Отключить» или выполните webinst -delete с именем публикации. Каталог с default.vrd при необходимости удалите вручную.