Как открыть базу 1С через браузер: веб-сервер, публикация, доступ
Содержание
Чтобы опубликовать базу 1С на веб-сервере, нужны три вещи: установленные «Модули расширения веб-сервера» той же версии и разрядности, что и платформа, настроенный IIS или Apache и запущенный от имени администратора Конфигуратор с командой Администрирование → Публикация на веб-сервере. После публикации база открывается по адресу вида http://server/base, а HTTP-сервисы — по http://server/base/hs/....
Частое заблуждение — что публикация «переносит» базу на веб-сервер. Нет: база остаётся там, где была, файловой или на сервере 1С. Веб-сервер только принимает запросы браузера и передаёт их платформе через модуль wsisapi.dll (IIS) или wsap24.dll (Apache). Поэтому большинство ошибок настройки — это несовпадение версий, разрядности и прав, а не «сломанная база».
Что подготовить до публикации базы на веб-сервере
Начните с проверки трёх параметров. Если хоть один не совпадёт, публикация пройдёт без ошибок, а база в браузере не откроется.
- 🧩 Версия. Модуль веб-расширения должен быть ровно той же версии, что и сервер 1С (или платформа, через которую открывается файловая база). 8.3.24.1548 и 8.3.24.1691 — это уже разные версии.
- 🔢 Разрядность. 64-битный IIS по умолчанию загружает только 64-битные модули. Если стоит 32-битная платформа, пул приложений надо перевести в 32-битный режим.
- 🔐 Права. Учётная запись, под которой работает веб-сервер, должна читать каталог публикации, каталог платформы
bin, а для файловой базы — ещё и читать и писать в каталог базы.
Установка модулей расширения веб-сервера
Модули ставятся из дистрибутива платформы, отдельного дистрибутива нет.
- Запустите
setup.exeиз дистрибутива технологической платформы. - На шаге выбора компонентов отметьте «Модули расширения веб-сервера».
- Если на этом же компьютере будет работать Конфигуратор для публикации, оставьте отмеченным и «1С:Предприятие» — без клиентской части команды публикации не будет.
- Завершите установку. В каталоге
C:\Program Files\1cv8\<версия>\bin\появятсяwsisapi.dllиwsap24.dll, а также утилитаwebinst.exe.
На Linux модули входят в пакет платформы (компонент ws), файлы лежат в /opt/1cv8/x86_64/<версия>/: модуль wsap24.so и утилита webinst.
Если на сервере стоят несколько версий платформы, сразу запишите, какую именно вы публикуете. Через полгода, при обновлении, это сэкономит поиск по реестру и httpd.conf.
Настройка IIS: роли, пул приложений и разрешения
Для Windows Server 2016 и новее IIS ставится как роль через Диспетчер серверов → Добавить роли и компоненты → Веб-сервер (IIS). Набор по умолчанию для 1С не полный: добавьте службы ролей вручную.
| Служба роли IIS | Зачем нужна |
|---|---|
| Статическое содержимое, Документ по умолчанию | отдача файлов веб-клиента |
| Расширения ISAPI | загрузка wsisapi.dll — без неё ничего не работает |
| Фильтры ISAPI | обработка запросов модулем 1С |
| Проверка подлинности Windows | вход в базу по учётной записи домена (по желанию) |
| Консоль управления IIS | настройка через графический интерфейс |
На клиентской Windows 10/11 то же самое включается через Панель управления → Программы → Включение или отключение компонентов Windows → Службы IIS.
Пул приложений
Публикация создаёт приложение в сайте Default Web Site и использует его пул. Отдельный пул удобнее: его можно перезапустить, не трогая другие сайты.
- Откройте Диспетчер служб IIS → Пулы приложений → Добавить пул приложений.
- Имя, например
1C_Pool, версия среды CLR — Без управляемого кода. - В Дополнительных параметрах пула найдите «Разрешить 32-разрядные приложения»:
False— если установлены 64-битные модули 1С;True— если 32-битные.
- После публикации откройте приложение базы в дереве сайта, Основные параметры и выберите этот пул.
Права на каталоги
IIS по умолчанию работает от имени удостоверения пула. Проще всего выдать права группе IIS_IUSRS:
- чтение и выполнение — на
C:\Program Files\1cv8\<версия>\bin\; - чтение — на каталог публикации, например
C:\inetpub\wwwroot\buh\; - изменение — на каталог файловой базы (там, где лежит
1Cv8.1CD).
Для клиент-серверной базы права на каталог базы не нужны: данные хранит СУБД, а веб-сервер обращается к серверу 1С по сети.
Публикация базы через Конфигуратор и через webinst
Публикация из Конфигуратора
Это самый наглядный способ. Запускайте Конфигуратор от имени администратора: иначе он не сможет записать настройки в IIS или httpd.conf, и кнопка публикации завершится ошибкой доступа.
- Откройте базу в Конфигураторе.
- Выберите
Администрирование → Публикация на веб-сервере. - Заполните основные поля:
- Имя — часть адреса, латиницей без пробелов:
buhдаст адресhttp://server/buh; - Веб-сервер — Internet Information Services или Apache 2.4 (Конфигуратор показывает найденные на компьютере);
- Каталог — физическая папка публикации, например
C:\inetpub\wwwroot\buh.
- Имя — часть адреса, латиницей без пробелов:
- Отметьте нужные флажки: публикация тонкого клиента и веб-клиента, доступ для клиентских приложений, стандартный интерфейс OData.
- На закладках Web-сервисы и HTTP-сервисы отметьте сервисы, которые должны быть доступны снаружи.
- Нажмите Опубликовать. Конфигуратор предложит перезапустить веб-сервер
— для IIS это
iisreset.
Перезапуск IIS или Apache обрывает все текущие веб-сеансы, включая обмены через HTTP-сервисы. На рабочем сервере делайте это вне рабочих часов или предупредите пользователей.
В каталоге публикации появится файл default.vrd — главный файл настроек публикации. Его можно править вручную блокнотом.
Публикация утилитой webinst
На сервере без графики или при массовой публикации удобнее командная строка. Утилита лежит в каталоге bin платформы, запускать от администратора.
Публикация клиент-серверной базы на IIS:
cd "C:\Program Files\1cv8\8.3.24.1548\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 "File=""D:\Bases\Buh"";" -confpath "C:\Apache24\conf\httpd.conf"
Обратите внимание на удвоенные кавычки внутри строки соединения файловой базы — это частая причина ошибки разбора параметров. Для удаления публикации используется ключ -delete с теми же -wsdir и -dir.
Что пишется в httpd.conf для Apache
Для Apache публикация добавляет в httpd.conf блок примерно такого вида:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.24.1548/bin/wsap24.dll"
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 должна быть одна на весь файл. Если опубликовать несколько баз, а потом обновить платформу, поправьте путь к wsap24.dll в ней — иначе Apache продолжит грузить модуль старой версии.
Аутентификация и защита опубликованной базы
Веб-публикация открывает базу в сеть, поэтому вопрос «кто войдёт» решайте до того, как дадите адрес пользователям.
Способы входа
| Способ | Как настраивается | Когда подходит |
|---|---|---|
| Пользователь и пароль 1С | список пользователей базы, пароль обязателен | внешние пользователи, интернет |
| Аутентификация ОС | флажок у пользователя 1С + «Проверка подлинности Windows» в IIS | локальная сеть с доменом |
| Логин в строке соединения | параметры Usr и Pwd в default.vrd | только закрытые технические публикации |
Не прописывайте логин и пароль в default.vrd на публикации, доступной из интернета: любой, кто знает адрес, войдёт в базу под этим пользователем без запроса пароля.
Минимум защиты для доступа извне
- 🔒 Включите HTTPS: в IIS — привязка сертификата к сайту на порт 443, в Apache — модуль
mod_ssl. Пароли 1С по HTTP идут в открытом виде. - 👤 Уберите пустые пароли и пользователей с полными правами, которые входят без пароля.
- 🧱 Публикуйте только нужное. Если снаружи нужен один HTTP-сервис для обмена, не включайте веб-клиент и OData в этой публикации.
- 🌐 Ограничьте доступ по IP: в IIS — «Ограничения IP-адресов и доменов», в Apache — директива
Require ip. - 🗂 Для разных задач делайте разные публикации одной базы:
buhдля пользователей,buh-exchangeдля обмена с сайтом. Права и состав у них настраиваются раздельно.
Каждый пользователь веб-клиента занимает клиентскую лицензию так же, как и тонкий клиент. Публикация не даёт «бесплатных» подключений.
HTTP-сервисы, веб-сервисы и OData в публикации
Для интеграций публикация важнее, чем для пользователей. Адреса строятся по фиксированной схеме:
| Что опубликовано | Адрес |
|---|---|
| Веб-клиент | http://server/buh/ |
| HTTP-сервис | http://server/buh/hs/<корневой URL сервиса>/<шаблон> |
| Веб-сервис (SOAP) | http://server/buh/ws/<имя>?wsdl |
| Стандартный интерфейс OData | http://server/buh/odata/standard.odata/ |
Сервис попадает в публикацию, только если он есть в конфигурации и отмечен на соответствующей закладке при публикации. В default.vrd это видно по элементам <httpServices> и <ws>. Атрибут publishByDefault="true" публикует все сервисы конфигурации, включая добавленные позже.
OData: почему список пустой
Флажок OData в публикации — только половина дела. Платформа отдаёт через OData лишь те объекты, которые включены в состав стандартного интерфейса. Состав задаётся программно, методом УстановитьСоставСтандартногоИнтерфейсаOData(), обычно внешней обработкой или из настроек конфигурации, если разработчик это предусмотрел. Пока состав пустой, адрес standard.odata откроется, но объектов в нём не будет.
Внешние обработки и расширения
Отдельно публиковать внешние обработки не нужно: веб-клиент открывает их так же, как тонкий клиент, через справочник дополнительных обработок или команду открытия файла. HTTP-сервисы из расширений конфигурации тоже публикуются — после того как расширение подключено к базе и база перезапущена.
Диагностика: почему опубликованная база не открывается
Сначала откройте адрес прямо на веб-сервере в браузере. Так вы отделите проблемы самой публикации от сетевых: брандмауэра, прокси, DNS.
Где смотреть подробности
- 📄 Журнал событий Windows → «Приложение»: IIS и модуль 1С пишут туда ошибки загрузки DLL.
- 📄 Журналы IIS в
C:\inetpub\logs\LogFiles\— по коду и подкоду ответа (500 0,404 3) видно, на каком этапе отказ. - 📄 error.log Apache в каталоге
logs— ошибки загрузки модуля и разбораdefault.vrd. - 📄 Журнал регистрации базы — если запрос дошёл до 1С, но упал на входе пользователя или в коде HTTP-сервиса.
Проверка конфигурации Apache командой httpd -t безопасна. А вот httpd -k restart и iisreset обрывают текущие сеансы — делайте это после проверки, а не вместо неё.
Что делать после обновления платформы
Это самый частый повод, по которому «вчера работало, а сегодня нет». После обновления сервера 1С модуль веб-расширения остаётся старым, и публикация перестаёт открываться с ошибкой о несовпадении версий.
Порядок после обновления:
- Установите на веб-сервер модули расширения новой версии той же разрядности.
- Для IIS — откройте Конфигуратор новой версии и опубликуйте базу повторно с тем же именем и каталогом, либо выполните
webinstиз каталогаbinновой версии. - Для Apache — поправьте путь в строке
LoadModuleна каталог новой версии. - В нерабочее время перезапустите веб-сервер.
- Старую версию платформы удаляйте только после проверки всех публикаций.
Частые вопросы
Можно ли опубликовать файловую базу на веб-сервере?
Нужен ли IIS, если есть сервер 1С?
Что выбрать: IIS или Apache?
Можно ли опубликовать одну базу несколько раз?
Как подключиться к опубликованной базе из тонкого клиента?
https://server/buh. Тонкий клиент будет работать через веб-сервер без прямого доступа к серверу 1С.