Публикация базы 1С на веб-сервере: пошаговое руководство
Содержание
Публикация делается из конфигуратора: Администрирование → Публикация на веб-сервере…. Чтобы пункт меню заработал и публикация прошла правильно, на компьютере уже должен стоять веб-сервер (IIS или Apache) и модуль расширения веб-сервера из комплекта платформы 1С. Конфигуратор при этом запускают от имени администратора — иначе он не сможет записать настройки в конфигурацию веб-сервера.
После публикации база 1С открывается в браузере по адресу вида http://имя-сервера/имя-публикации. В папке публикации появляется файл default.vrd — в нём хранятся строка подключения к базе и параметры доступа.
Ниже — как опубликовать базу 1С правильно: что подготовить, как пройти мастер публикации, как раздать права на папку, что поправить в default.vrd и как лечить ошибки, из-за которых веб-клиент отдаёт пустую страницу или ошибку доступа.
Что нужно подготовить до публикации
Публикация завязана на три вещи, и если одной не хватает — мастер либо не запустится, либо отработает «вхолостую».
- 🌐 Веб-сервер. Либо IIS (входит в состав Windows Server и Windows 10/11 как компонент), либо Apache. На одном узле обычно держат что-то одно.
- 🧩 Модуль расширения веб-сервера. Это отдельный компонент платформы. Если при установке 1С его не отметили, публикация работать не будет. Запустите установщик платформы повторно в режиме изменения и включите компонент «Модули расширения веб-сервера».
- 🔑 Права администратора. Конфигуратор пишет настройки в
httpd.conf(Apache) или в метабазу IIS. Без прав администратора ОС запись не пройдёт.
Разрядность модуля и веб-сервера должна совпадать. 64-разрядный IIS или Apache работает только с 64-разрядным модулем расширения, 32-разрядный — только с 32-разрядным. Несовпадение — самая частая причина, по которой пул приложений падает сразу после первого обращения к базе.
Файлы модулей лежат в каталоге платформы, в подпапке bin:
- для Apache 2.4 —
wsap24.dll; - для IIS —
wsisapi.dll.
Знать их имена полезно для диагностики: если в конфигурации веб-сервера путь к этим файлам битый, страница публикации отдаёт ошибку.
Проверить, что модуль установлен, можно прямо в конфигураторе: если пункт Публикация на веб-сервере… активен и в диалоге виден нужный веб-сервер — компонент на месте. Если список веб-серверов пуст или пункт меню недоступен, модуль не поставлен, и начинать нужно с переустановки платформы с нужным компонентом.
Как опубликовать базу 1С через конфигуратор
Порядок одинаковый и для файловой, и для серверной (клиент-серверной) базы — отличается только то, что указано в строке подключения.
- Запустите конфигуратор нужной базы от имени администратора.
- Откройте
Администрирование → Публикация на веб-сервере…. - В поле «Имя» задайте короткое латинское имя публикации без пробелов — оно станет частью адреса:
http://сервер/имя. Например,buhилиaccounting. - В поле «Веб-сервер» выберите установленный сервер (IIS или Apache нужной версии).
- В поле «Каталог» укажите папку, куда лягут файлы публикации. Для IIS это обычно подпапка внутри
C:\inetpub\wwwroot\, для Apache — любая папка, прописанная в конфигурации. - Галочками отметьте, что публиковать: тонкий и веб-клиент, HTTP-сервисы, Web-сервисы, стандартный интерфейс OData. По умолчанию достаточно веб-клиента.
- Нажмите «Опубликовать». Конфигуратор создаст файл
default.vrd, пропишет виртуальный каталог и предложит перезапустить веб-сервер — согласитесь.
После этого откройте в браузере http://localhost/имя (на самом сервере) или http://ip-адрес/имя (с другого компьютера). Должна открыться форма входа в базу.
Через опубликованную базу можно работать не только из браузера, но и тонким клиентом. В окне запуска 1С при добавлении базы выберите тип «На веб-сервере» и укажите тот же адрес http://сервер/имя. Для пользователя это выглядит как обычная база, но соединение идёт через веб-сервер — удобно для филиалов и удалёнки, где нет прямого доступа к серверу 1С.
Если база открывается на самом сервере по localhost, но не открывается с другого компьютера — дело почти всегда в сети: закрыт порт 80 на межсетевом экране или веб-сервер слушает только локальный адрес. Публикация тут ни при чём.
Если меняете состав публикации (добавили HTTP-сервис, поправили права), повторно зайдите в тот же диалог и нажмите «Опубликовать» ещё раз — настройки перезапишутся.
Чтобы снять публикацию, в том же окне нажмите «Отключить»: виртуальный каталог удалится, но папка с файлами останется.
Чем отличается публикация на IIS и Apache
Намерение одно, но нюансы разные. Таблица — что учесть под каждый веб-сервер.
| Параметр | IIS | Apache |
|---|---|---|
| Модуль расширения | wsisapi.dll | wsap24.dll (для Apache 2.4) |
| Где прописываются настройки | метабаза IIS + web.config в папке | httpd.conf |
| Пул приложений / служба | отдельный пул приложения | служба Apache |
| Что перезапускать после публикации | пул приложения или весь IIS | службу Apache |
| Типичная папка | C:\inetpub\wwwroot\имя | задаётся в конфиге Apache |
На IIS публикация обычно проходит в один клик, потому что конфигуратор сам создаёт приложение и назначает обработчик. Проверьте только, что в IIS включён компонент «Расширения ISAPI» (ISAPI Extensions) и разрешены обработчики ISAPI — без этого веб-сервер вернёт 404.
На Apache конфигуратор дописывает в httpd.conf блок с загрузкой модуля и описанием виртуального каталога. Если Apache запущен как служба, после публикации перезапустите службу; если вручную — перезапустите процесс. Учтите: конфигуратор не умеет сам определить неработающую или неустановленную службу Apache, поэтому перед публикацией убедитесь, что веб-сервер реально запущен и его страница по умолчанию открывается.
Выбор между IIS и Apache обычно диктует окружение. Если сервер на Windows Server и других сайтов на нём нет — проще IIS: он уже в системе, ставится как роль, конфигуратор настраивает его почти без ручной работы. Apache берут, когда он уже используется под другие задачи или когда администратор привык править конфиги текстом. На производительность 1С выбор веб-сервера заметно не влияет — узким местом остаётся сама база и сеть.
Права доступа к папке базы и безопасность
Это место, где спотыкается большинство публикаций файловых баз. Веб-клиент работает не от вашей учётной записи, а от учётной записи, под которой крутится веб-сервер.
Для файловой базы учётной записи веб-сервера нужен доступ на чтение и запись:
- к папке с самой базой (там, где лежит
1Cv8.1CD); - к папке публикации с файлом
default.vrd.
На IIS за это отвечает идентификатор пула приложения (по умолчанию — IIS AppPool\имя_пула или встроенная учётная запись). Выдайте этой учётной записи права «Изменение» на папку базы через свойства папки → вкладка «Безопасность».
Для клиент-серверной базы прав на файловую папку не нужно — соединение идёт через кластер серверов 1С, доступ разрегулируется правами пользователей информационной базы.
Несколько правил по безопасности:
- 🔒 Не публикуйте базу на внешний IP без HTTPS. По HTTP логин и пароль идут открытым текстом. Поставьте TLS-сертификат на веб-сервер и переводите публикацию на
https://. - 🧱 Ограничьте доступ по сети: если база нужна только внутри офиса, закройте порт 80/443 извне на межсетевом экране.
- 👤 Отдельная учётная запись пула под каждую публикацию снижает риск: если одну базу скомпрометируют, к другим доступа не будет.
Публикация в интернет без HTTPS и без ограничения доступа — прямой путь к утечке базы. Веб-клиент удобен, но открывает базу всему, кто знает адрес.
Файл default.vrd: тонкая настройка публикации
default.vrd — это XML-файл в папке публикации. Конфигуратор создаёт его автоматически, но ряд полезных настроек правится прямо в нём (текстовым редактором, затем перезапуск веб-сервера).
Что в нём обычно трогают:
- Строка подключения
ib— путь к файловой базе или адрес кластера и имя серверной базы. При переносе базы в другую папку правят именно здесь. - Публикация стандартного интерфейса OData — атрибут
enableStandardOData. - Отладка — элемент
debug, разрешающий подключать отладчик к коду, работающему на веб-сервере. - Пул соединений для серверной базы — число одновременных соединений с кластером.
После любой правки default.vrd перезапустите пул приложения (IIS) или службу Apache — иначе изменения не подхватятся.
Если планируете редактировать файл руками, сделайте его копию. Ошибка в XML (незакрытый тег, лишний символ) приведёт к тому, что публикация перестанет открываться вовсе.
Чаще всего в default.vrd лезут в двух случаях. Первый — база переехала в другую папку или на другой сервер: тогда достаточно поправить путь в строке подключения, а не публиковать всё заново. Второй — нужно временно включить отладку
кода на стороне веб-сервера: разработчик меняет один атрибут, отлаживает, затем возвращает обратно. Отладку на боевой публикации не оставляют включённой — она открывает доступ к коду и снижает безопасность.
Типичные ошибки публикации базы 1С
Почти все проблемы сводятся к четырём причинам: не тот модуль, не хватает прав, не перезапущен сервер или битый путь. Разберём по симптомам.
web.config или default.vrd, либо недоступен файл модуля. Проверьте пути к wsisapi.dll/wsap24.dll и корректность XML в конфигах.default.vrd неверно указан путь к файловой базе (поле ib). Поправьте путь и перезапустите веб-сервер.Универсальный приём при любой непонятной ошибке: опубликовать базу заново и перезапустить веб-сервер. Это пересоздаёт конфиги и снимает половину проблем.
Как ускорить веб-клиент после публикации
Веб-клиент медленнее тонкого клиента по своей природе, но часть тормозов убирается настройкой.
- ⚡ Включите сжатие и кеширование на веб-сервере. На IIS — статическое и динамическое сжатие (gzip), на Apache — модуль
mod_deflate. Статика клиента (скрипты, стили) будет грузиться один раз. - 🧮 Для серверной базы увеличьте пул соединений в
default.vrd, если пользователей много — чтобы запросы не ждали освобождения соединения. - 🖥️ Разделите роли. Если на одном сервере и кластер 1С, и веб-сервер, и СУБД — под нагрузкой они конкурируют за память и процессор. Разнесите хотя бы СУБД на отдельный узел.
- 📦 Держите платформу в актуальном релизе. В новых версиях платформы веб-клиент заметно быстрее; обновление платформы часто даёт прирост без всякой донастройки.
Для файловой базы с десятками пользователей веб-публикация — не лучший вариант: файловый режим плохо держит конкурентный доступ. Если упираетесь в производительность, думайте про перевод базы в клиент-серверный режим, а не про тюнинг веб-сервера.
Частые вопросы
Можно ли опубликовать файловую базу или только серверную?
1Cv8.1CD, и этой папке нужны права на запись для учётной записи веб-сервера. Для серверной — адрес кластера и имя базы.Нужна ли отдельная лицензия для веб-клиента?
Почему после обновления платформы публикация перестала работать?
Можно ли на одном сервере опубликовать несколько баз?
http://сервер/база1, http://сервер/база2 и так далее. На IIS для изоляции удобно дать каждой свой пул приложения.