Веб-доступ к 1С: публикуем информационную базу через IIS и Apache

· 10 мин

Содержание

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

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

1. Подготовка: какой веб-сервер выбрать под публикацию базы 1С

Платформа 1С:Предприятие 8.3 умеет публиковаться на двух веб-серверах:

  • 🪟 IIS — встроен в Windows Server и настольные Windows. Включается как роль или компонент, ставить ничего не нужно.
  • 🐧 Apache 2.4 (под Windows и Linux) — отдельный продукт. Под Windows обычно берут готовую сборку Apache Lounge, под Linux — пакет из репозитория дистрибутива.

Поддержка Apache 2.2 в мастере тоже есть, но эта ветка давно не развивается. Для новой публикации берите 2.4.

КритерийIISApache 2.4
Где работаетТолько WindowsWindows и Linux
УстановкаРоль сервера, без скачиванияОтдельный дистрибутив, запуск как служба
Настройка публикацииМастер в Конфигураторе или вручную через диспетчер IISМастер дописывает httpd.conf, в Linux — утилита webinst
ПраваПользователи группы IIS_IUSRS и учётка пулаУчётная запись, от которой запущена служба Apache
Когда выбиратьWindows-инфраструктура, домен, уже есть IISLinux-сервер, нужен единый конфиг, привычен Apache

Перед стартом проверьте:

  1. Разрядность. Модуль расширения 64-битной платформы работает только с 64-битным веб-сервером, 32-битной — с 32-битным. Смешивать нельзя.
  2. Тип базы. Публиковать можно и файловую, и клиент-серверную базу . Для клиент-серверной веб-сервер может стоять на отдельной машине, ему нужен только сетевой доступ к серверу 1С (агент кластера слушает порт 1540, менеджер — 1541, плюс диапазон рабочих процессов).
  3. Лицензии. Сеанс веб-клиента или тонкого клиента через веб-сервер занимает клиентскую лицензию так же, как обычный запуск. Для файловой базы лицензия должна быть доступна на компьютере, где работает веб-сервер.

Как включить IIS

В Windows Server откройте Диспетчер серверов → Управление → Добавить роли и компоненты, роль «Веб-сервер (IIS)». В её составе отметьте:

  • Разработка приложений → Расширения ISAPI;
  • Разработка приложений → Фильтры ISAPI;
  • Средства управления → Консоль управления IIS.

В настольной Windows то же самое лежит в Панель управления → Программы → Включение или отключение компонентов Windows → Службы IIS.

Без расширений ISAPI публикация формально пройдёт, но по адресу базы IIS вернёт ошибку 404. Это самая частая причина «опубликовал, а не открывается».

Как поставить Apache под Windows

Распакуйте архив Apache 2.4, например, в C:\Apache24. Установите службу из командной строки, запущенной от имени администратора:

cd C:\Apache24\bin
httpd.exe -k install
httpd.exe -k start

Откройте http://localhost — должна появиться стартовая страница Apache. Если порт 80 занят (часто его уже держит IIS), поменяйте директиву Listen в C:\Apache24\conf\httpd.conf.

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

Публикация работает через библиотеку, которую платформа подгружает в веб-сервер:

  • wsisapi.dll — для IIS;
  • wsap24.dll — для Apache 2.4 под Windows;
  • wsap24.so — для Apache 2.4 под Linux.

Они лежат в каталоге bin конкретной версии платформы, например C:\Program Files\1cv8\8.3.25.1374\bin. Если файлов там нет, компонент не устанавливался.

Как доустановить в Windows:

  1. Запустите setup.exe из дистрибутива той же версии платформы, что уже стоит.
  2. Выберите «Изменить».
  3. Отметьте компонент «Модули расширения веб-сервера».
  4. Завершите установку. Перезагрузка обычно не нужна.

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

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

3. Публикация базы через мастер Конфигуратора

Это основной способ для Windows. Порядок такой.

Запуск Конфигуратора с правами администратора

Ярлык 1С → правой кнопкой → «Запуск от имени администратора». Без повышенных прав мастер не сможет записать настройки в IIS или в httpd.conf, и публикация завершится ошибкой доступа.

Откройте нужную базу в режиме Конфигуратора. Монопольный режим для публикации не нужен — пользователи могут продолжать работу.

Заполнение окна публикации

Меню Администрирование → Публикация на веб-сервере. На основной вкладке:

ПолеЧто указать
ИмяЛатиница без пробелов: buh, zup, trade. Станет частью адреса
Веб-серверIIS или Apache 2.4 — мастер показывает только найденные
КаталогПапка публикации, например C:\inetpub\wwwroot\buh. Здесь появится default.vrd
Публиковать доступ для клиентских приложенийВключить — это и есть вход через браузер и тонкий клиент
Веб-сервисы, HTTP-сервисы, ODataВключать только если ими реально пользуются

Для Apache мастер дополнительно спросит путь к httpd.conf, если не найдёт его сам.

Нажмите «Опубликовать». Для Apache мастер предложит перезапустить веб-сервер — соглашайтесь, иначе изменения в httpd.conf не подхватятся.

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

Проверка

Откройте в браузере http://имя-сервера/buh. Должно появиться окно выбора пользователя 1С. Чтобы подключить тонкий клиент, добавьте в списке баз новую информационную базу, тип расположения — «На веб-сервере», адрес — тот же URL.

Если в окне публикации стоит флажок «Использовать аутентификацию операционной системы», пользователи с привязкой к доменной учётке войдут без пароля 1С. Для этого в IIS должна быть включена Windows-аутентификация.

Публикация в Linux через webinst

Конфигуратора с мастером на Linux-сервере обычно нет, поэтому используют консольную утилиту из каталога платформы:

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

Каталог /var/www/buh создайте заранее. Для удаления публикации та же команда с ключом -delete. Полный список параметров выводит запуск webinst без аргументов.

4. Права доступа и безопасность опубликованной базы

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

Что разрешить

  • 📁 Файловая база. Учётке веб-сервера — полный доступ (чтение и запись) к папке с файлом 1Cv8.1CD. Для IIS это группа IIS_IUSRS, а при необходимости и IUSR; для Apache — пользователь, под которым запущена служба (по умолчанию «Локальная система», в Linux — www-data или apache).
  • 📁 Каталог публикации. Чтение для той же учётки. Права на default.vrd IIS выставляет при публикации сам.
  • 📁 Каталог платформы bin. Чтение и выполнение для учётки веб-сервера.
  • 🖧 Клиент-серверная база . Права на файлы базы не нужны. Нужен сетевой доступ от веб-сервера к серверу 1С.

Права на папку файловой базы удобно выдать командой:

icacls "D:\Bases\Buh" /grant "IIS_IUSRS:(OI)(CI)M"

Ключ M даёт право изменения — этого достаточно для работы.

Что закрыть

  • 🔒 Пароль у каждого пользователя 1С. Опубликованная база без паролей, тем более с пустым «Администратором», — открытая дверь.
  • 🔒 Не храните логин и пароль в строке подключения default.vrd. Такая настройка возможна, но тогда любой, кто знает адрес, входит без авторизации.
  • 🔒 HTTPS при доступе из интернета. Настраивается привязкой сертификата к сайту в IIS или через mod_ssl в Apache. Открывать наружу голый HTTP нельзя: логины и пароли уходят открытым текстом.
  • 🔒 Минимум наружу. Если базу нужны только сотрудники, лучше дать доступ через VPN, а порт веб-сервера во внешний мир не пробрасывать.

5. Файл default.vrd: что в нём и когда править вручную

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="File=&quot;D:\Bases\Buh&quot;;">
  <ws pointEnableCommon="true"/>
  <standardOdata enable="false"/>
</point>

Ключевые атрибуты:

  • base — виртуальный путь, совпадает с именем публикации;
  • ib — строка подключения. Кавычки внутри экранируются как &quot;. Для серверной базы: ib="Srvr=&quot;srv1c&quot;;Ref=&quot;buh&quot;;";
  • <ws> — публикация веб-сервисов;
  • <standardOdata> — стандартный интерфейс OData.

Перенесли файловую базу на другой диск — поправьте путь в атрибуте ib и сохраните файл. Перезапускать веб-сервер обычно не нужно: новые сеансы откроются уже с новым путём.

Перед ручной правкой скопируйте default.vrd рядом. Одна незакрытая кавычка или неэкранированный & — и публикация перестанет открываться целиком.

Как связан default.vrd с httpd.conf

Для Apache мастер добавляет в конфигурацию примерно такой блок:

LoadModule _1cws_module "C:/Program Files/1cv8/8.3.25.1374/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 — одна на весь веб-сервер, даже если опубликовано десять баз. Каждая база — свой Alias и свой блок Directory.

6. Диагностика и устранение ошибок публикации базы 1С

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

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

Повторная публикация после обновления платформы

Самая коварная история. Обновили платформу, удалили старую версию — и все опубликованные базы перестали открываться. Причина в том, что IIS и Apache держат абсолютный путь к модулю старой версии.

Что делать:

  1. Установите на веб-сервере модули расширения новой версии.
  2. Откройте любую базу Конфигуратором новой версии от имени администратора.
  3. Выполните публикацию повторно с тем же именем и каталогом — мастер перепишет путь.
  4. Для Apache проверьте, что в httpd.conf осталась одна строка LoadModule с новым путём.
  5. Перезапустите веб-сервер в нерабочее время.

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

Где искать подробности ошибки

  • IIS: журнал в C:\inetpub\logs\LogFiles и «Просмотр событий» Windows, раздел «Приложение».
  • Apache: logs\error.log в каталоге Apache под Windows или /var/log/apache2/error.log в Linux.
  • Если ошибка возникает уже внутри 1С после входа, смотрите журнал регистрации базы.

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

Можно ли опубликовать одну базу под двумя адресами?
Да. Сделайте две публикации с разными именами и каталогами, но одной строкой подключения. Удобно, когда одна публикация для сотрудников, другая — только с HTTP-сервисами для обмена.
Нужен ли сервер 1С, чтобы опубликовать файловую базу?
Нет. Файловая база публикуется напрямую, веб-сервер сам открывает файл 1Cv8.1CD. Но при большом числе пользователей файловый вариант через веб работает медленно, и лучше перейти на клиент-серверный.
Как удалить публикацию?
В том же окне Администрирование → Публикация на веб-сервере есть кнопка «Отключить». В Linux — команда webinst с ключом -delete. Каталог публикации после этого можно удалить вручную.
Работает ли публикация в браузере на телефоне?
Веб-клиент открывается в мобильном браузере, но интерфейс рассчитан на большой экран. Для смартфонов удобнее мобильный клиент 1С, который подключается к той же публикации.
Почему веб-клиент работает медленнее тонкого клиента?
Браузер исполняет клиентский код и рисует формы сам, а тонкий клиент делает это нативно. Тонкий клиент через ту же веб-публикацию обычно заметно отзывчивее.