К статье
Практический материал

Администрирование · 10 мин

Как сделать публикацию веб-сервера 1С

Публикация информационной базы 1С на веб-сервере Apache и IIS: установка компонентов, настройка default.vrd, права доступа, проверка работы и типичные ошибки.

Публикация информационной базы 1С на веб-сервере позволяет пользователям работать с программой через браузер или тонкий клиент по протоколу HTTP, без установки платформы на каждый компьютер. Это стандартный способ организовать удалённый доступ к базе, подключить мобильных клиентов или опубликовать веб-сервисы и HTTP-сервисы для интеграции с другими системами.

Технически публикация сводится к трём действиям: установке веб-сервера (Apache или IIS), установке компонентов расширения веб-сервера 1С и созданию файла публикации default.vrd, который связывает виртуальный каталог с конкретной информационной базой. Ниже разобран каждый шаг с проверками результата и разбором типичных ошибок.

Что потребуется перед публикацией

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

Также необходим сам веб-сервер. На Windows чаще всего используют IIS (встроенный компонент системы) или Apache 2.4, на Linux — Apache. Учтите, что 1С официально поддерживает конкретные версии Apache, указанные в документации к вашей версии платформы; слишком новые ветки Apache могут не поддерживаться.

Проверьте, что у вас есть: права администратора на сервере, строка подключения к информационной базе (для клиент-серверного варианта — имя сервера 1С и имя базы, для файлового — путь к каталогу базы), а также доступ к консоли веб-сервера.

Установка и подготовка веб-сервера

Для IIS включите компоненты Windows: «Службы IIS», «Расширения ISAPI», «Фильтры ISAPI», «Проверка подлинности Windows» (если планируется сквозная аутентификация). После установки убедитесь, что сайт по умолчанию отвечает в браузере по адресу http://localhost.

Для Apache установите дистрибутив, запустите службу и проверьте открытие стартовой страницы. Порт 80 не должен быть занят другими службами (частая ситуация — его занимает Skype, IIS или служба отчётов SQL Server). Проверить занятость порта можно командой ниже.

bash
netstat -ano | findstr :80

Если планируется доступ извне, заранее продумайте сетевую часть: открытый порт на межсетевом экране, статический адрес или имя хоста, а для защиты трафика — TLS-сертификат и публикация по HTTPS.

Публикация базы через конфигуратор

Основной способ публикации — встроенный диалог конфигуратора. Откройте базу в конфигураторе и перейдите в меню «Администрирование → Публикация на веб-сервере».

Порядок публикации
  1. 1
    Запустите конфигуратор от имени администратора и откройте нужную базу
  2. 2
    Откройте Администрирование → Публикация на веб-сервере
  3. 3
    Укажите имя публикации (латиницей, без пробелов) — оно станет частью URL
  4. 4
    Выберите веб-сервер (IIS или Apache) и каталог публикации
  5. 5
    Отметьте нужные флажки: публикация тонкого и веб-клиента, веб-сервисов, HTTP-сервисов, стандартного интерфейса OData
  6. 6
    Нажмите «Опубликовать» и дождитесь сообщения об успешной публикации
  7. 7
    Проверьте работу, открыв в браузере адрес вида http://сервер/имя_публикации

Имя публикации — это виртуальный каталог в адресной строке. Например, при имени «trade» база будет доступна по адресу http://server/trade. Используйте только латинские буквы, цифры и знак подчёркивания: кириллица и пробелы в имени приводят к ошибкам доступа.

Флажки публикации определяют, что именно будет доступно. Для работы пользователей через браузер достаточно публикации тонкого и веб-клиента. Веб-сервисы и HTTP-сервисы публикуйте только если они реально используются — каждый опубликованный сервис расширяет поверхность атаки.

Файл default.vrd и ручная настройка

Результат публикации — файл default.vrd в каталоге публикации. Это XML-файл, который описывает связь виртуального каталога с информационной базой. Его можно редактировать вручную, когда диалог конфигуратора недоступен или требуется тонкая настройка.

Пример содержимого для клиент-серверной базы:

xml
<?xml version="1.0" encoding="UTF-8"?>
<point name="trade" xmlns="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <infoBase name="trade" srvr="srv1c" ref="trade_db"/>
</point>

Для файловой базы вместо атрибутов srvr и ref указывается каталог: ib="File=\"C:\bases\trade\";". После ручного редактирования default.vrd перезапускать веб-сервер обычно не требуется — изменения подхватываются при следующем обращении.

Для Apache диалог публикации автоматически добавляет директивы в файл httpd.conf. Если публикация выполняется вручную, добавьте загрузку модуля wsap24.dll (для Apache 2.4) и секцию для каталога публикации, после чего перезапустите Apache.

Права доступа и типичные проблемы безопасности

Учётная запись, от имени которой работает веб-сервер (для IIS — пул приложений, для Apache — служебная учётная запись), должна иметь чтение и запись в каталог публикации и, для файловых баз, полный доступ к каталогу базы. Отсутствие прав — причина ошибок «Ошибка доступа к файлу» и невозможности войти в базу.

Не публикуйте базу «как есть» с пустыми паролями пользователей. Перед открытием доступа извне убедитесь, что у всех пользователей заданы пароли, роли настроены корректно, а доступ администратора ограничен. Публикация по HTTP без шифрования передаёт логины и данные открытым текстом — для доступа через интернет настраивайте HTTPS.

Проверка результата публикации

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

Контрольные точки

Как проверить результат

Открытие http://сервер/имя_публикации в браузере
Норма

Загружается страница входа 1С или список клиентов

Тревожный признак

Ошибка 404 — публикация не создана, 500 — проблема с модулем или правами

Вход под реальным пользователем
Норма

База открывается, интерфейс соответствует правам пользователя

Тревожный признак

Ошибка аутентификации или пустой список пользователей — неверная строка подключения к базе

Работа тонкого клиента по строке подключения ws=...
Норма

Клиент подключается и показывает ту же базу

Тревожный признак

Ошибка соединения — проверьте имя публикации и доступность порта

Если страница не открывается, смотрите журналы веб-сервера: для IIS — журналы в каталоге inetpub\logs, для Apache — error.log. Ошибка 500 чаще всего означает несоответствие разрядности модуля расширения и веб-сервера либо отсутствие прав на каталог.

Частые ошибки и их устранение

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

Выбор между Apache и IIS

Сравнение вариантов

IIS

Подходит для Windows-инфраструктуры, удобен при необходимости сквозной Windows-аутентификации. Ограничение — требует лицензии Windows Server при промышленном использовании

Apache 2.4

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

Встроенный веб-сервер отладки

Публикация из конфигуратора для целей отладки HTTP-сервисов и мобильных приложений. Не предназначен для рабочей эксплуатации

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

Итог

Что важно запомнить

Публикация выполняется из конфигуратора при установленных модулях расширения веб-сервера; ключевые условия — совпадение разрядности и версии платформы, латинское имя публикации, права на каталоги и HTTPS при доступе извне. После обновления платформы публикацию нужно пересоздавать.

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

Можно ли опубликовать несколько баз на одном веб-сервере?

Да. Каждая база публикуется под своим именем, и все публикации сосуществуют на одном веб-сервере: http://сервер/trade, http://сервер/accounting и так далее. Для каждой базы создаётся отдельный каталог с собственным файлом default.vrd.

Работает ли веб-клиент без установки платформы у пользователя?

Да, в этом и смысл веб-клиента: пользователю нужен только поддерживаемый браузер. Однако тонкий клиент при подключении через веб-сервер требует установки на компьютер пользователя, хотя и подключается по HTTP через ту же публикацию.

Что делать, если после публикации браузер показывает ошибку 500?

Чаще всего причина в несовпадении разрядности модуля расширения и веб-сервера, отсутствии прав на каталог публикации или незагруженном модуле. Проверьте журнал ошибок веб-сервера, убедитесь, что установлены модули нужной разрядности, и повторите публикацию из конфигуратора, запущенного от имени администратора.

Нужно ли заново публиковать базу после обновления платформы?

Да. Модули расширения веб-сервера привязаны к конкретной версии платформы, поэтому после обновления платформы на сервере откройте конфигуратор новой версии и выполните публикацию повторно. Иначе веб-доступ перестанет работать из-за несовпадения версий модулей.

Как ограничить доступ к опубликованной базе?

Основной уровень защиты — аутентификация пользователей 1С и корректно настроенные роли. Дополнительно можно ограничить доступ средствами веб-сервера (по IP-адресам, через базовую аутентификацию), а для доступа через интернет обязательно использовать HTTPS и, при возможности, VPN.

Можно ли опубликовать файловую базу, лежащую на сетевом диске?

Технически можно, указав путь в default.vrd, но это нежелательно: учётной записи веб-сервера нужен доступ к сетевому ресурсу, а производительность и надёжность такой схемы ниже. Для многопользовательской работы через веб-сервер рекомендуется клиент-серверный вариант с СУБД.