Веб-доступ к базе на сервере 1С: IIS, Apache и строка соединения
Содержание
Серверную базу 1С публикуют так же, как файловую: в Конфигураторе через Администрирование → Публикация на веб-сервере или утилитой webinst. Разница в одном поле — в строке соединения указывают не каталог, а сервер и имя базы в кластере: Srvr="srv1c";Ref="buh";. Конфигуратор для публикации нужно запускать от имени администратора Windows, иначе он не сможет записать настройки IIS или файл httpd.conf Apache.
Частое заблуждение — что веб-сервер должен стоять на той же машине, что и сервер 1С. Это не так. Веб-сервер — обычный клиент кластера: он может работать на отдельном компьютере, если на нём установлена платформа той же версии с компонентом модулей расширения веб-сервера, а до сервера 1С открыты нужные порты. Порядок действий одинаков для любой конфигурации: БП 3.0, ЗУП 3.1, УТ 11 публикуются одной и той же командой платформы.
Что подготовить перед публикацией серверной базы
Публикация ломается чаще всего не на самом мастере, а на подготовке. Проверьте пять вещей до старта.
1. Версия платформы. На веб-сервере должна стоять ровно та же версия платформы, что и у кластера, например 8.3.24.1467 и там, и там. Если версии разойдутся, при входе появится ошибка о несоответствии версий клиента и сервера.
2. Компонент «Модули расширения веб-сервера». Его выбирают при установке платформы. Если пропустили — запустите установщик повторно, выберите Изменить и добавьте компонент. Без него в папке bin не будет библиотек wsisapi.dll (для IIS) и wsap24.dll (для Apache 2.4).
3. Разрядность. Модуль расширения должен совпадать по разрядности с веб-сервером:
| Веб-сервер | Какая платформа нужна |
|---|---|
| IIS, пул приложений 64-бит (по умолчанию) | 64-разрядная |
| IIS, в пуле включено «Разрешены 32-разрядные приложения» | 32-разрядная |
| Apache 2.4 x64 | 64-разрядная |
| Apache 2.4 x86 | 32-разрядная |
4. Роль веб-сервера. Для IIS в Windows Server 2016 и новее добавьте через Диспетчер серверов → Добавить роли и компоненты роль «Веб-сервер (IIS)» и в разделе «Разработка приложений» отметьте:
- ✅ Расширения ISAPI;
- ✅ Фильтры ISAPI;
- ✅ Стандартные функции HTTP: статическое содержимое, документ по умолчанию;
- ✅ Консоль управления IIS.
Для Apache достаточно установленного и запущенного Apache 2.4 как службы.
5. Сетевой доступ к кластеру. С веб-сервера должны быть открыты порты агента (1540), менеджера кластера (1541) и диапазон рабочих процессов (по умолчанию 1560:1591; задаётся в свойствах рабочего сервера). Проверить можно командой из PowerShell:
Test-NetConnection srv1c -Port 1541
Публикация через Конфигуратор: мастер и его параметры
Имя базы в кластере — это не то, что видно в списке баз на компьютере пользователя. Это значение поля «Информационная база в кластере» из свойств подключения или имя в консоли кластера. Опечатка здесь — самая частая причина ошибки «база не найдена».
Шаги в Конфигураторе
- Щёлкните ярлык 1С правой кнопкой и выберите «Запуск от имени администратора».
- Откройте нужную серверную базу в режиме Конфигуратор.
- Выберите
Администрирование → Публикация на веб-сервере. - Заполните поля окна:
- Имя — часть адреса после имени сервера. Латиница без пробелов:
buh,zup. Получится адресhttp://web01/buh. - Веб-сервер — IIS или нужная версия Apache; программа покажет только те, что нашла на машине.
- Каталог — где будет лежать файл
default.vrd. Для IIS по умолчаниюC:\inetpub\wwwroot\buh.
- Имя — часть адреса после имени сервера. Латиница без пробелов:
- На вкладке «Основные» отметьте, что публиковать: тонкий и веб-клиент, а при необходимости — веб-сервисы и HTTP-сервисы конфигурации.
- Нажмите «Опубликовать». Для Apache мастер предложит перезапустить службу — согласитесь.
Строку соединения мастер берёт из базы, которую вы открыли. Поэтому публиковать удобнее, подключившись к базе именно с веб-сервера: тогда в default.vrd попадёт правильный адрес кластера.
Публикация из командной строки
Если на веб-сервере нет графической оболочки или баз много, используйте утилиту webinst.exe из папки bin нужной версии платформы.
Для IIS:
cd "C:\Program Files\1cv8\8.3.24.1467\bin"
webinst.exe -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=srv1c;Ref=buh;"
Для Apache 2.4:
webinst.exe -publish -apache24 -wsdir buh -dir "C:\Apache24\htdocs\buh" -connstr "Srvr=srv1c;Ref=buh;" -confpath "C:\Apache24\conf\httpd.conf"
Отменить публикацию — тот же вызов с ключом -delete вместо -publish. Полный список ключей выводит webinst.exe -help.
Номер платформы в пути bin подставьте свой. Утилита из одной версии публикует модуль именно этой версии.
Расширение веб-сервера и файл default.vrd
После публикации появляются два артефакта: виртуальный каталог в настройках веб-сервера и файл 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="Srvr="srv1c";Ref="buh";">
</point>
Кавычки внутри атрибута ib записаны как " — так и должно быть. Если правите файл вручную, сохраняйте его в UTF-8 и не заменяйте сущности на обычные кавычки.
Как выглядит публикация в IIS
В IIS мастер создаёт приложение buh внутри сайта Default Web Site и сопоставление обработчика: все запросы к нему идут в модуль wsisapi.dll. Проверить можно в Диспетчер IIS → Сайты → Default Web Site → buh → Сопоставления обработчиков. Там должна быть строка с путём к wsisapi.dll из папки bin текущей версии платформы.
Как выглядит публикация в Apache
В конец httpd.conf мастер дописывает блок:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.24.1467/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 должна быть в файле одна, даже если опубликовано десять баз.
Главная ловушка — обновление платформы
После обновления платформы на сервере 1С публикация перестаёт открываться. Причина: в IIS и в httpd.conf остался путь к модулю старой версии, а старая версия уже не совпадает с кластером. Решения два:
- 🔁 переопубликовать базу из Конфигуратора новой версии;
- ✏️ вручную заменить номер версии в строке
LoadModule(Apache) или в сопоставлении обработчика (IIS) и перезапустить веб-сервер .
Перезапуск IIS или Apache обрывает все веб-сеансы пользователей — делайте это вне рабочего времени или предупредите людей заранее.
Права и безопасность веб-публикации
Права на папки
Веб-сервер работает от служебной учётной записи, и ей нужен доступ:
| Кому | К чему | Права |
|---|---|---|
| IIS_IUSRS (или учётная запись пула) | Папка публикации, например C:\inetpub\wwwroot\buh | Чтение и выполнение |
| IIS_IUSRS | Папка bin платформы | Чтение и выполнение |
| Учётная запись службы Apache | Папка публикации и bin платформы | Чтение и выполнение |
Если пользователь видит ошибку доступа к wsisapi.dll, в первую очередь проверьте права на bin.
Как пользователи входят
- 🔑 Аутентификация 1С — пользователь вводит логин и пароль 1С в окне входа. Вариант по умолчанию.
- 🪟 Аутентификация ОС — вход под доменной учётной записью. Для неё в IIS включают «Проверку подлинности Windows», а пользователю 1С назначают соответствующую учётную запись домена.
- ⚠️ Логин и пароль в default.vrd — атрибуты
usrиpwdв элементеpoint. Тогда любой, кто откроет адрес, войдёт под этим пользователем. Годится только для закрытого сервиса без доступа извне.
Защищённое соединение
Если база доступна из интернета, работайте только по HTTPS:
- Получите сертификат на доменное имя (купленный или Let’s Encrypt).
- В IIS:
Сайты → Default Web Site → Привязки → Добавить, типhttps, порт443, выбрать сертификат. - В Apache: подключите
mod_sslи опишите виртуальный хост на порту443, либо поставьте перед Apache обратный прокси с TLS. - Закройте снаружи порт
80или настройте с него перенаправление на HTTPS.
Не пробрасывайте в интернет порты кластера 1540, 1541 и диапазон рабочих процессов. Наружу смотрит только веб-сервер, а он ходит к кластеру по внутренней сети.
Проверка работы и разбор ошибок публикации
Сначала проверьте публикацию с самого веб-сервера: откройте в браузере http://localhost/buh. Если тут работает, а у пользователей нет — дело в сети, DNS или брандмауэре. Если не работает даже локально — в настройках веб-сервера или в связи с кластером.
Второй тест — тонкий клиент. Добавьте базу в список: Добавить → Добавление в список существующей информационной базы → На веб-сервере и укажите адрес http://web01/buh. Тонкий клиент выдаёт более подробный текст ошибки, чем браузер.
Если ошибка не из списка, смотрите журнал событий Windows (раздел «Приложение») для IIS или файл logs\error.log в папке Apache — там обычно видна точная причина отказа модуля.
Как раздать адрес пользователям
Когда проверка пройдена, у пользователей есть два способа работы:
- 🌐 Браузер — адрес вида
https://1c.example.ru/buh. Ничего ставить не нужно, удобно для удалённых сотрудников и редких пользователей. - 💻 Тонкий клиент — база добавляется в список как «На веб-сервере» с тем же адресом. Работает быстрее браузера, нормально печатает и работает с файлами. Тонкий клиент на компьютере пользователя ставят той же версии, что и кластер.
Для массовой раздачи удобно положить в общую папку файл списка баз .v8i с готовой записью: пользователю останется открыть его двойным щелчком.
Публикация при нескольких серверах и балансировка
Если в кластере 1С несколько рабочих серверов, публикация ничем не усложняется. Веб-сервер подключается к кластеру по адресу центрального сервера, а распределение сеансов по рабочим процессам делает сам кластер. В default.vrd по-прежнему указывают один Srvr.
Для резервирования можно перечислить в строке соединения несколько адресов через запятую, например Srvr="srv1:1541,srv2:1541". Клиент подключится к первому доступному. Это имеет смысл, только когда настроен резервный кластер, — без него второй адрес бесполезен.
Когда нагрузка на сам веб-сервер большая (сотни пользователей веб-клиента), ставят несколько веб-серверов за балансировщиком:
- 🖥️ на каждом — одна и та же версия платформы и одинаковая публикация;
- 🔗 на балансировщике включают привязку сеанса к узлу (sticky session), чтобы запросы одного пользователя шли на один веб-сервер;
- 📄 содержимое
default.vrdи имя публикации держат одинаковыми на всех узлах — проще копировать файл, чем публиковать вручную на каждом.
Не путайте этот балансировщик с настройками кластера. Параметры распределения нагрузки, отказоустойчивости и требования назначения функциональности задаются в свойствах рабочих серверов в консоли кластера, а не в веб-публикации.
Частые вопросы о веб-публикации серверной базы
Нужна ли отдельная лицензия для веб-клиента?
Можно ли опубликовать на одном IIS несколько баз?
buh, zup, ut. Все они работают через один модуль расширения одной версии платформы.Можно ли опубликовать базу на Linux?
webinst в Linux-версии платформы работает с ключом -apache24, а модуль называется wsap24.so. Порядок тот же: каталог, default.vrd, блок в конфигурации Apache.Как опубликовать HTTP-сервис или веб-сервис конфигурации?
http://web01/buh/hs/<корневой URL сервиса> или .../ws/<имя>.