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

· 9 мин

Содержание

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

После публикации база открывается в браузере по адресу вида http://server/demo и в тонком клиенте по HTTP. Чаще всего публикация спотыкается не на самой команде, а на разрядности модуля, правах учётки веб-сервера и версии платформы. Эти три места разобраны подробно для IIS и Apache.

Подготовка: что установить до публикации веб-сервера 1С

Публикация работает одинаково для файловой и клиент-серверной базы. Разница только в строке соединения: File="C:\Bases\demo"; или Srvr="srv1c";Ref="demo";.

Что должно быть на машине с веб-сервером:

  • 🧩 Платформа 1С той же версии, что у сервера 1С или файловой базы, с компонентом «Модули расширения веб-сервера». Если его не отметили при установке, запустите установщик ещё раз, выберите «Изменить» и добавьте компонент.
  • 🧩 Разрядность совпадает. 64-битный модуль загружается только в 64-битный процесс веб-сервера, 32-битный — только в 32-битный. На этом ломается большинство первых публикаций.
  • 🧩 Сам веб-сервер: роль IIS в Windows Server 2016 и новее или Apache 2.4. Для Apache на Windows берут сборку с Apache Lounge нужной разрядности.
  • 🧩 Конфигуратор с правами администратора. Без них диалог публикации не сможет записать файлы в каталог сайта и изменить настройки IIS или httpd.conf.

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

Один веб-сервер может обслуживать несколько баз. Каждая получает своё имя публикации (/buh, /zup) и свой каталог с файлом default.vrd.

Публикация базы 1С через Microsoft IIS

Шаг 1. Компоненты IIS

В «Диспетчере серверов» добавьте роль «Веб-сервер (IIS)». В службах ролей обязательно отметьте:

  1. «Разработка приложений» → Расширения ISAPI и Фильтры ISAPI.
  2. «Безопасность» → Обычная проверка подлинности и Проверка подлинности Windows, если планируете вход под доменной учёткой.
  3. «Средства управления» → Консоль управления IIS.

Без расширений ISAPI модуль 1С подключить нельзя: IIS вернёт 404.3 или 404.2.

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

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

Шаг 3. Пул приложений и права

Откройте «Диспетчер служб IIS» → «Пулы приложений» → пул сайта (обычно DefaultAppPool) → «Дополнительные параметры».

  • Если установлена 32-битная платформа, включите «Разрешены 32-разрядные приложения» = True. Для 64-битной оставьте False.
  • Для файловой базы выдайте группе IIS_IUSRS и пользователю IUSR права на изменение каталога базы. Иначе веб-клиент получит отказ в доступе к файлу 1Cv8.1CD.
  • Права на чтение и выполнение нужны и на каталог bin платформы, например C:\Program Files\1cv8\8.3.24.1467\bin.

После изменений перезапустите пул или выполните iisreset.

Шаг 4. Проверка

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

Затем проверьте с рабочего места по имени сервера: http://srv-web/buh. Если локально открывается, а с другой машины нет, дело в межсетевом экране Windows. Разрешите входящие подключения на порт 80 (и 443 после включения HTTPS).

Публикация в IIS лежит в «Сайты → Default Web Site» как приложение с именем buh. Если её нужно перенести на другой сайт или порт, проще удалить публикацию и сделать заново, чем править обработчики вручную.

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

Настройка Apache для публикации 1С на Linux и Windows

Apache удобен тем, что одинаково ведёт себя на обеих ОС, а публикацию можно полностью сделать из командной строки.

Apache на Windows

  1. Распакуйте Apache 2.4 в C:\Apache24, установите службу: httpd.exe -k install из каталога C:\Apache24\bin.
  2. В Конфигураторе: Администрирование → Публикация на веб-сервере, веб-сервер — Apache 2.4, укажите каталог, например C:\Apache24\htdocs\buh.
  3. Перезапустите службу Apache2.4.

Конфигуратор сам допишет в httpd.conf строку загрузки модуля wsap24.dll и блок для публикации.

Apache на Linux через webinst

На Linux графического диалога для публикации обычно нет, поэтому используют webinst из каталога платформы:

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

Для файловой базы строка соединения — -connstr "File=/home/usr1cv8/bases/buh;". Пользователю, от которого работает Apache (www-data в Debian и Ubuntu), нужны права на каталог базы.

На Windows та же команда выглядит так:

"C:\Program Files\1cv8\8.3.24.1467\bin\webinst.exe" -publish -apache24 -wsdir buh -dir "C:\Apache24\htdocs\buh" -connstr "Srvr=srv1c;Ref=buh;" -confpath "C:\Apache24\conf\httpd.conf"

Ключ -iis вместо -apache24 публикует в IIS. Удалить публикацию — ключ -delete с тем же -wsdir.

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

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

LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.24.1467/wsap24.so"

# 1c publication
Alias "/buh" "/var/www/buh/"
<Directory "/var/www/buh/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "/var/www/buh/default.vrd"
</Directory>

При обновлении платформы путь в LoadModule указывает на старую версию. Его нужно заменить на новый каталог, иначе Apache продолжит грузить старый модуль, а сервер 1С новой версии откажет в соединении.

Файл default.vrd

Это описание публикации. Минимальный вариант:

<?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>

Кавычки внутри атрибута ib записываются как &quot;. Опечатка здесь даёт ошибку соединения с базой, хотя сам Apache работает нормально.

Сравнение IIS и Apache для 1С

КритерийIISApache 2.4
ОСтолько WindowsWindows и Linux
ПубликацияКонфигуратор или webinst -iisКонфигуратор или webinst -apache24
Вход под учёткой Windowsвстроенная проверка подлинности Windowsтребует дополнительных модулей
HTTPSпривязка сертификата в консоли IISmod_ssl и правка конфигурации
Частая ловушкаразрядность пула приложенийстарый путь в LoadModule после обновления

Если сервер 1С на Windows и пользователи в домене, проще IIS. Если сервер 1С на Linux или нужен единый способ для нескольких площадок — Apache.

Безопасность публикации: HTTPS, доступ и сервер администрирования RAS

Опубликованная база доступна всем, кто дошёл до адреса. Поэтому до выхода в интернет закройте минимум три вопроса.

HTTPS

  • IIS: «Диспетчер служб IIS» → сайт → «Привязки» → добавить тип https, порт 443, выбрать сертификат. Сертификат заранее импортируют в хранилище компьютера.
  • Apache: включите mod_ssl, в виртуальном хосте на 443 порту пропишите SSLCertificateFile и SSLCertificateKeyFile. На Linux бесплатный сертификат Let’s Encrypt ставится через certbot.

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

Доступ к базе

  • 🔒 У всех пользователей базы должны быть пароли. Пользователь без пароля в опубликованной базе — открытая дверь.
  • 🔒 Публикуйте только нужное. Не отмечайте веб-сервисы и OData, если ими никто не пользуется.
  • 🔒 Ограничьте доступ по IP на уровне веб-сервера или межсетевого экрана, если база нужна только филиалам.
  • 🔒 Для внешнего доступа надёжнее VPN, а публикацию оставить во внутренней сети.

Где здесь RAS

В 1С сокращение RAS означает сервер администрирования кластера, а не удалённый доступ Windows. Он нужен, чтобы управлять кластером без консоли на самом сервере: смотреть сеансы, лицензии, рабочие процессы. К самой публикации он не относится, но администраторам веб-доступа обычно нужен.

Запуск и проверка на сервере 1С:

ras cluster --daemon
rac cluster list
rac session list --cluster=<id кластера> --licenses

По умолчанию RAS слушает порт 1545. Не открывайте порты 1540, 1541, 1545 в интернет — управление кластером должно быть доступно только изнутри сети. Для остальных команд смотрите rac help.

Типовые ошибки публикации и что с ними делать

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

Если ошибка не похожа ни на одну из этих, загляните в журналы. В IIS — C:\inetpub\logs\LogFiles и журнал событий Windows. В Apache — error.log в каталоге logs или /var/log/apache2/. Код ответа и подстатус (например, 500.0 или 404.3) почти всегда подсказывают, на каком уровне проблема.

Как ускорить работу веб-клиента 1С

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

  • ⚡ Ставьте веб-сервер рядом с сервером 1С. Одна машина или одна быстрая сеть. Задержка между ними умножается на каждый серверный вызов.
  • ⚡ Включите сжатие ответов. В IIS — динамическое сжатие в службах ролей. В Apache — mod_deflate. Трафик форм сжимается хорошо.
  • ⚡ Тонкий клиент вместо браузера для постоянной работы. Он подключается к той же публикации строкой ws=http://server/buh, но работает быстрее и не зависит от особенностей браузера.
  • ⚡ Актуальный браузер. Веб-клиент поддерживает Chrome, Edge, Firefox и Safari; старые версии работают медленнее и с ошибками.
  • ⚡ Следите за памятью рабочих процессов в консоли кластера или через rac. Тормоза веб-клиента часто оказываются тормозами сервера 1С, а не веб-сервера.

Чтобы отличить проблему веб-сервера от проблемы базы, откройте ту же базу тонким клиентом напрямую по Srvr=…. Если и там медленно, веб-сервер ни при чём.

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

Нужна ли отдельная лицензия для веб-сервера 1С?
Отдельной лицензии на публикацию нет. Каждый пользователь веб-клиента или тонкого клиента по HTTP занимает клиентскую лицензию, как при обычном подключении.
Можно ли опубликовать файловую базу?
Да. Строка соединения будет вида File=“путь к базе”, а учётке веб-сервера нужны права на изменение каталога базы. Для десятка и более пользователей лучше клиент-серверный вариант.
Как опубликовать несколько баз на одном сервере?
Опубликуйте каждую под своим именем: /buh, /zup, /ut. У каждой будет свой каталог и свой default.vrd, а веб-сервер и модуль общие.
Что делать с публикацией после обновления платформы?
Установите новую версию с модулями веб-сервера и опубликуйте базы заново или замените путь к модулю в httpd.conf. В IIS переопубликация обновит обработчик автоматически.
Как открыть опубликованную базу в тонком клиенте?
В списке баз нажмите «Добавить», выберите вариант подключения «На веб-сервере» и укажите адрес публикации, например https://server/buh.