Веб-доступ к 1С: публикуем информационную базу через IIS и Apache
Содержание
Чтобы опубликовать базу 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.
| Критерий | IIS | Apache 2.4 |
|---|---|---|
| Где работает | Только Windows | Windows и Linux |
| Установка | Роль сервера, без скачивания | Отдельный дистрибутив, запуск как служба |
| Настройка публикации | Мастер в Конфигураторе или вручную через диспетчер IIS | Мастер дописывает httpd.conf, в Linux — утилита webinst |
| Права | Пользователи группы IIS_IUSRS и учётка пула | Учётная запись, от которой запущена служба Apache |
| Когда выбирать | Windows-инфраструктура, домен, уже есть IIS | Linux-сервер, нужен единый конфиг, привычен Apache |
Перед стартом проверьте:
- Разрядность. Модуль расширения 64-битной платформы работает только с 64-битным веб-сервером, 32-битной — с 32-битным. Смешивать нельзя.
- Тип базы. Публиковать можно и файловую, и клиент-серверную базу . Для клиент-серверной веб-сервер может стоять на отдельной машине, ему нужен только сетевой доступ к серверу 1С (агент кластера слушает порт 1540, менеджер — 1541, плюс диапазон рабочих процессов).
- Лицензии. Сеанс веб-клиента или тонкого клиента через веб-сервер занимает клиентскую лицензию так же, как обычный запуск. Для файловой базы лицензия должна быть доступна на компьютере, где работает веб-сервер.
Как включить 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:
- Запустите
setup.exeиз дистрибутива той же версии платформы, что уже стоит. - Выберите «Изменить».
- Отметьте компонент «Модули расширения веб-сервера».
- Завершите установку. Перезагрузка обычно не нужна.
В 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.vrdIIS выставляет при публикации сам. - 📁 Каталог платформы
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="D:\Bases\Buh";">
<ws pointEnableCommon="true"/>
<standardOdata enable="false"/>
</point>
Ключевые атрибуты:
base— виртуальный путь, совпадает с именем публикации;ib— строка подключения. Кавычки внутри экранируются как". Для серверной базы:ib="Srvr="srv1c";Ref="buh";";<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 держат абсолютный путь к модулю старой версии.
Что делать:
- Установите на веб-сервере модули расширения новой версии.
- Откройте любую базу Конфигуратором новой версии от имени администратора.
- Выполните публикацию повторно с тем же именем и каталогом — мастер перепишет путь.
- Для Apache проверьте, что в
httpd.confосталась одна строкаLoadModuleс новым путём. - Перезапустите веб-сервер в нерабочее время.
Старую версию платформы удаляйте только после того, как все публикации перенастроены. Так у вас остаётся путь назад.
Где искать подробности ошибки
- IIS: журнал в
C:\inetpub\logs\LogFilesи «Просмотр событий» Windows, раздел «Приложение». - Apache:
logs\error.logв каталоге Apache под Windows или/var/log/apache2/error.logв Linux. - Если ошибка возникает уже внутри 1С после входа, смотрите журнал регистрации базы.
Частые вопросы
Можно ли опубликовать одну базу под двумя адресами?
Нужен ли сервер 1С, чтобы опубликовать файловую базу?
Как удалить публикацию?
Администрирование → Публикация на веб-сервере есть кнопка «Отключить». В Linux — команда webinst с ключом -delete. Каталог публикации после этого можно удалить вручную.