Работа с базой 1С 8.3 через браузер и тонкий клиент: IIS, Apache и публикация
Содержание
Чтобы запустить 1С через HTTP, нужны три вещи: веб-сервер (IIS или Apache 2.4), модули расширения веб-сервера из дистрибутива платформы и публикация базы. Публикацию делают в Конфигураторе через Администрирование → Публикация на веб-сервере или утилитой webinst. После этого база открывается в браузере по адресу вида http://server/buh или в тонком клиенте как база «На веб-сервере».
Схема одинаково работает для файловой и клиент-серверной базы. Различаются только строка соединения в публикации и права, которые нужно выдать учётной записи веб-сервера. Ниже — порядок для Windows и Linux, настройка клиентов и что делать, когда вместо базы открывается страница с ошибкой.
Как устроено подключение к 1С по HTTP
Клиент не обращается к базе напрямую. Он отправляет HTTP-запросы веб-серверу, а тот передаёт их модулю расширения 1С. Модуль уже работает с базой: открывает файл 1Cv8.1CD или подключается к кластеру серверов 1С.
| Тип базы | Цепочка соединения | Что видит клиент |
|---|---|---|
| Файловая | Клиент → веб-сервер → модуль 1С → файл 1Cv8.1CD | Только адрес публикации |
| Клиент-серверная | Клиент → веб-сервер → модуль 1С → агент кластера (порт 1540) → рабочие процессы | Только адрес публикации |
Отсюда несколько следствий:
- 🔒 Наружу открыт только порт 80 или 443. Порты кластера и общая папка с базой остаются во внутренней сети.
- 🧩 Версия модуля расширения на веб-сервере должна совпадать с версией сервера 1С. Обновили кластер — переустановите модули и на веб-сервере.
- 🖥️ Подключаться можно браузером (веб-клиент), тонким клиентом и мобильным клиентом. Толстый клиент по HTTP не работает .
- 🔑 Каждому подключению по-прежнему нужна клиентская лицензия. Веб-доступ не обходит лицензирование.
Для файловой базы веб-публикация часто работает быстрее, чем общая сетевая папка. С файлом работает один процесс веб-сервера на той же машине, а не десяток клиентов через SMB.
Подготовка веб-сервера IIS или Apache
Модули расширения веб-сервера
Модули ставятся из дистрибутива платформы. На Windows запустите установку платформы той же версии, что у сервера 1С, и в списке компонентов отметьте «Модули расширения веб-сервера». Ставьте ту же разрядность, что у веб-сервера: 64-разрядный IIS или Apache — 64-разрядная платформа.
На Linux модуль входит в пакеты сервера 1С. После установки в каталоге платформы (например, /opt/1cv8/x86_64/8.3.xx.xxxx/) должны лежать wsap24.so и утилита webinst.
IIS на Windows Server
IIS включают в «Диспетчере серверов» как роль «Веб-сервер (IIS)». Кроме набора по умолчанию нужны компоненты из группы разработки приложений:
- Расширения ISAPI.
- Фильтры ISAPI.
- Консоль управления IIS.
- Совместимость управления IIS 6 (метабаза) — публикации из Конфигуратора на ряде релизов без неё не работают, ставьте сразу.
Для IIS модуль 1С называется wsisapi.dll. При публикации он прописывается в сопоставлениях обработчиков сайта.
Apache 2.4
На Windows берут сборку Apache 2.4 нужной разрядности и ставят её службой. На Linux — пакет apache2 (Debian, Ubuntu) или httpd (RHEL-подобные). Модуль 1С для Apache 2.4 — wsap24.dll на Windows и wsap24.so на Linux.
Служба Apache на Windows по умолчанию работает от «Локальной системы». Для файловой базы в сетевой папке это не годится: системная учётная запись не имеет прав на чужой сервер. Запускайте службу от доменного пользователя с правами на папку базы.
Публикация базы на веб-сервере
Через Конфигуратор
Самый быстрый путь на Windows:
- Запустите 1С от имени администратора (правый клик → «Запуск от имени администратора»). Без этого Конфигуратор не сможет записать настройки IIS или
httpd.conf. - Откройте базу в режиме Конфигуратора.
- Выберите
Администрирование → Публикация на веб-сервере. - Задайте имя публикации латиницей, например
buh. Оно станет частью адреса. - Выберите веб-сервер (IIS или Apache 2.4) и каталог публикации, например
C:\inetpub\wwwroot\buh. - Оставьте включённой галочку публикации тонкого клиента и веб-клиента. HTTP-сервисы и веб-сервисы конфигурации отмечайте, только если они нужны.
- Нажмите «Опубликовать». Для Apache после этого перезапустите службу.
В каталоге публикации появится файл default.vrd. В нём хранятся строка соединения с базой и настройки публикации. Его можно править вручную — например, поменять имя сервера 1С без повторной публикации.
Через webinst: без Конфигуратора и на Linux
Утилита webinst лежит в каталоге bin платформы. Она удобна на сервере без графики и в скриптах. Пример для клиент-серверной базы и Apache на Linux:
cd /opt/1cv8/x86_64/8.3.xx.xxxx
sudo ./webinst -publish -apache24 \
-wsdir buh \
-dir /var/www/buh \
-connstr "Srvr=srv1c;Ref=buh;" \
-confpath /etc/apache2/apache2.conf
sudo systemctl restart apache2
Для файловой базы строка соединения выглядит так: -connstr "File=/srv/1c/buh;". Для IIS вместо -apache24 и -confpath указывают -iis. Снять публикацию — тот же вызов с ключом -delete.
Если интересно, что делает публикация в Apache, загляните в конфиг после webinst. Там появятся строка LoadModule с путём к wsap24, Alias на каталог публикации и блок <Directory> с обработчиком 1С и ссылкой на default.vrd. Править эти строки руками стоит, только когда вы понимаете, зачем.
Права учётной записи веб-сервера
Здесь ломается больше всего публикаций. Учётная запись, от которой работает пул IIS или служба Apache, должна иметь:
| Объект | Права |
|---|---|
Каталог bin платформы (C:\Program Files\1cv8\<версия>\bin) | Чтение и выполнение |
Каталог публикации с default.vrd | Чтение |
| Папка файловой базы | Изменение (чтение, запись, создание файлов) |
Для IIS это группа IIS_IUSRS. Для клиент-серверной базы права на файлы базы не нужны: модуль подключается к кластеру по сети.
Подключение клиентов к опубликованной базе
Браузер
Откройте адрес http://имя-сервера/buh/. Подходят актуальные Chrome, Firefox, Edge, Яндекс Браузер и Safari. Разрешите для адреса всплывающие окна — 1С открывает в них часть форм. Для работы с файлами на компьютере пользователя браузер предложит установить расширение работы с файлами; согласитесь, иначе выгрузка и загрузка файлов будут неудобными.
Тонкий клиент
Тонкий клиент работает по HTTP быстрее браузера и выглядит как обычная 1С. Добавьте базу в список:
- В окне запуска нажмите «Добавить».
- Выберите «Добавление в список существующей информационной базы».
- Тип расположения — «На веб-сервере».
- Укажите адрес публикации:
http://имя-сервера/buh. - Если используется прокси, задайте его на следующем шаге; иначе оставьте автоматическое определение.
Версия тонкого клиента может отличаться от версии сервера: при подключении он сам скачает нужную с веб-сервера, если в публикации указан дистрибутив тонкого клиента. Иначе на компьютере пользователя должна стоять та же версия, что у сервера. Для запуска из ярлыка или скрипта адрес передают ключом /WS:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /WS "https://1c.company.ru/buh"
Мобильный клиент
В мобильном клиенте на телефоне добавьте базу и укажите тот же адрес публикации. Конфигурация должна поддерживать мобильный клиент — типовые БП 3.0, ЗУП 3.1 и УТ 11 поддерживают.
Ошибки при запуске 1С через веб-сервер
Сначала проверьте адрес в браузере на самом веб-сервере: http://localhost/buh/. Если локально не открывается, дело в публикации или правах. Если открывается локально, но не с других машин — в сети, брандмауэре или DNS.
Buh и buh — разные адреса. Для Apache проверьте, что служба перезапущена после публикации.Перезапуск пула IIS или службы Apache обрывает все веб-сеансы. Делайте это вне рабочего времени или предупредите пользователей: несохранённые документы в открытых формах пропадут.
Скорость и безопасность публикации
Как сделать работу быстрее
- ⚡ Подключайте сотрудников тонким клиентом, а браузер оставьте для редких входов. Тонкий клиент передаёт меньше данных.
- 🗂️ Выносите каждую крупную публикацию в отдельный пул приложений IIS. Зависшая база не утянет остальные.
- 📶 Для клиент-серверной базы ставьте веб-сервер рядом с кластером 1С, в одной сети. Задержка между ними важнее ширины внешнего канала.
- 🧱 Файловую базу через веб-сервер используют для небольшой группы пользователей. Когда начинаются блокировки и долгие ожидания, пора переходить на клиент-серверный вариант.
Как закрыть доступ от посторонних
- Только HTTPS. Привяжите сертификат к сайту в IIS («Привязки» → тип https) или включите
mod_sslв Apache. Для внешнего доступа нужен сертификат, которому доверяют клиенты: самоподписанный тонкий клиент будет отклонять, пока сертификат не добавят в доверенные на каждом компьютере. - Перенаправление с HTTP на HTTPS. Пароли пользователей 1С по HTTP идут открытым текстом.
- Пароли у всех пользователей базы. Опубликованная база без паролей доступна любому, кто узнал адрес. Пользователя без пароля и с полными правами наружу не выпускайте.
- Лишнее не публикуйте. Галочки веб-сервисов и HTTP-сервисов включайте только для реально используемых интеграций.
- Ограничьте доступ по IP или через VPN, если работать снаружи нужно нескольким сотрудникам.
Не прописывайте логин и пароль пользователя 1С в строку соединения default.vrd ради удобства. Тогда любой, кто откроет адрес, войдёт под этим пользователем.
Когда веб-публикация не лучший выбор
HTTP-доступ подходит для удалённых сотрудников, филиалов и мобильных устройств. Но есть случаи, где он мешает:
- 🧮 Работа с внешним оборудованием на кассах и складах: сканеры и фискальные регистраторы проще подключать в локальной сети или через терминальный сервер.
- 🛠️ Доработки конфигурации: Конфигуратор и толстый клиент по HTTP не запускаются, разработчику нужен прямой доступ к базе.
- 📄 Старые внешние обработки для обычного приложения: в веб-клиенте и тонком клиенте они не откроются.
В остальных сценариях публикация на веб-сервере проще терминального сервера: не нужны лицензии на удалённые рабочие столы, а каждый пользователь работает в своей системе.
Частые вопросы
Можно ли опубликовать несколько баз на одном веб-сервере?
http://server/buh, http://server/zup. У каждой публикации свой каталог и свой default.vrd.Нужен ли сервер 1С, чтобы открыть базу через браузер?
Как сменить адрес публикации, не трогая пользователей?
webinst -delete.