Как открыть 1С для работы через браузер и тонкий клиент по HTTP
Содержание
Веб-доступ к 1С настраивают в три шага: ставят на сервер веб-сервер (Apache или IIS) и модуль расширения 1С, публикуют базу через Администрирование → Публикация на веб-сервере в Конфигураторе или утилитой webinst, а затем закрывают публикацию сертификатом HTTPS. После этого пользователи работают с базой по адресу вида https://1c.example.ru/buh — в браузере или в тонком клиенте, без VPN и RDP.
Настройка одинакова для Бухгалтерии, ЗУП, УТ и других конфигураций: публикуется информационная база, а не конкретная программа. Отличия есть только между файловой и клиент-серверной базой и между веб-серверами.
Что подготовить на сервере до публикации базы
Начните с решения, нужен ли веб-доступ вообще. Он хорош для удалённой работы бухгалтера, филиала или руководителя. Но есть случаи, когда удобнее другой способ.
| Сценарий | Что выбрать | Почему |
|---|---|---|
| 2–10 удалённых пользователей, обычная работа с документами | Веб-публикация + тонкий клиент | Не нужен терминальный сервер и лицензии RDS |
| Нужны внешние обработки, сканер штрихкодов, торговое оборудование | RDP или RemoteApp | Через браузер оборудование подключается сложнее |
| Конфигурация на обычных формах (старые доработанные базы) | RDP | Веб-клиент работает только с управляемыми формами |
| Сотрудники в одной сети | Обычное подключение к базе | Веб-сервер — лишнее звено |
Состав программ на сервере
- 🖥️ Платформа 1С 8.3 с компонентом «Модули расширения веб-сервера». Его отмечают в установщике платформы. Без него публикация не появится.
- 🌐 Веб-сервер. На Windows — Apache 2.4 или IIS. На Linux — Apache 2.4.
- 🔢 Разрядность. 64-битный Apache требует 64-битного модуля, то есть 64-битной платформы. Смешивать нельзя.
- 🔁 Версия. Для клиент-серверной базы версия модуля веб-сервера должна точно совпадать с версией сервера 1С, вплоть до номера сборки.
- 🔑 Лицензии. Веб-клиент занимает клиентскую лицензию так же, как тонкий клиент. Для клиент-серверной базы лицензии берутся на сервере 1С, для файловой — на компьютере, где работает веб-сервер.
Модуль лежит в каталоге платформы. На Windows это C:\Program Files\1cv8\<версия>\bin\wsap24.dll для Apache и wsisapi.dll для IIS. На Linux — /opt/1cv8/x86_64/<версия>/wsap24.so.
Файловая или клиент-серверная база
Файловую базу
опубликовать можно, и для 2–3 человек это рабочий вариант. Но процесс веб-сервера сам открывает файл 1Cv8.1CD, поэтому учётной записи веб-сервера нужны права на изменение каталога базы.
Когда пользователей больше пяти или база тяжёлая, переводите её на сервер 1С. Веб-сервер тогда только передаёт запросы, а работу делают рабочие процессы кластера.
HTTP или HTTPS: какой протокол выбрать для веб-доступа
Коротко: HTTP — только для проверки внутри офисной сети. Наружу публикацию отдают исключительно по HTTPS.
| Протокол | Где допустим | Риск |
|---|---|---|
| HTTP (порт 80) | Локальная сеть, тестовый стенд | Логин, пароль и все данные базы идут открытым текстом |
| HTTPS (порт 443) | Интернет, удалённые сотрудники | Нужен сертификат и его продление |
При аутентификации 1С пароль пользователя уходит в теле запроса. По HTTP его увидит любой, кто стоит на пути трафика: провайдер, владелец публичного Wi-Fi, взломанный роутер. Поэтому сначала доведите публикацию до рабочего состояния по HTTP внутри сети, затем включите HTTPS и только потом откройте порт наружу.
Сертификат Let’s Encrypt бесплатный и выдаётся на 90 дней. На Linux его получает и продлевает certbot, на Windows с IIS — утилита win-acme. Для сертификата нужно доменное имя, на голый IP-адрес он не выпускается.
Публикация базы 1С на Apache, IIS и за Nginx
Через Конфигуратор
- Запустите Конфигуратор от имени администратора Windows. Иначе 1С не сможет записать настройки в
httpd.confили в IIS. - Откройте базу и выберите
Администрирование → Публикация на веб-сервере. - Задайте Имя публикации латиницей, например
buh. Оно станет частью адреса. - Выберите веб-сервер: Apache 2.4 или Internet Information Services.
- Укажите Каталог публикации, например
C:\inetpub\wwwroot\buh. Каталог должен существовать. - Снимите флажки публикации OData, веб-сервисов и HTTP-сервисов, если интеграции через них вам не нужны.
- Нажмите Опубликовать и согласитесь на перезапуск веб-сервера.
Перезапуск обрывает сеансы тех, кто уже работает через этот веб-сервер. Публикуйте в нерабочее время или предупредите людей.
Утилитой webinst
Для сервера без графического интерфейса и для Linux удобнее командная строка. Утилита webinst лежит в каталоге платформы рядом с 1cv8.
cd "C:\Program Files\1cv8\8.3.24.1467\bin"
webinst -publish -apache24 -wsdir buh -dir "C:\Apache24\htdocs\buh" -connstr "Srvr=srv1c;Ref=buh;" -confpath "C:\Apache24\conf\httpd.conf"
cd /opt/1cv8/x86_64/8.3.24.1467
sudo ./webinst -publish -apache24 -wsdir buh -dir /var/www/buh -connstr "Srvr=localhost;Ref=buh;" -confpath /etc/apache2/apache2.conf
sudo systemctl restart apache2
Для файловой базы строка подключения выглядит так: -connstr "File=""D:\Bases\Buh"";". Для IIS вместо -apache24 и -confpath пишут ключ -iis. Номер версии в пути подставьте свой.
Что появляется в настройках Apache
После публикации в httpd.conf (на Ubuntu — в apache2.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>
В каталоге публикации создаётся файл default.vrd. В нём адрес публикации и строка подключения к базе:
<?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>
После обновления платформы 1С путь в строке LoadModule указывает на старую версию. Если старую версию удалили, Apache не стартует. Переопубликуйте базу из нового Конфигуратора или поправьте путь вручную и перезапустите службу.
Особенности IIS
- Включите роль «Веб-сервер (IIS)» и в ней компоненты «Расширения ISAPI» и «Фильтры ISAPI».
- Для 32-битной платформы в пуле приложений публикации разрешите 32-разрядные приложения. Для 64-битной оставьте как есть.
- Группе
IIS_IUSRSдайте чтение каталогаbinплатформы и каталога публикации. Для файловой базы — ещё и изменение каталога базы.
Nginx перед Apache
Модуля 1С для Nginx нет. Если сервер уже работает на Nginx или нужен удобный TLS, его ставят обратным прокси, а публикацию держат на Apache на внутреннем порту, например 127.0.0.1:8080.
server {
listen 443 ssl http2;
server_name 1c.example.ru;
ssl_certificate /etc/letsencrypt/live/1c.example.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/1c.example.ru/privkey.pem;
client_max_body_size 100m;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_read_timeout 600s;
proxy_buffering off;
}
}
client_max_body_size нужен для загрузки файлов в базу: по умолчанию Nginx режет запросы больше 1 МБ. Увеличенный proxy_read_timeout спасает от обрыва долгих операций вроде закрытия месяца.
Вход пользователей: аутентификация и права при веб-доступе
Через публикацию работают те же пользователи, что заведены в базе. Новых учётных записей создавать не нужно.
Способы входа
| Способ | Как работает | Когда подходит |
|---|---|---|
| Аутентификация 1С | Браузер или тонкий клиент показывает окно логина и пароля базы | Удалённые сотрудники вне домена |
| Аутентификация ОС | Вход под доменной учётной записью без пароля | Пользователи в домене, IIS с включённой проверкой подлинности Windows |
Логин в default.vrd | Пароль прописан в файле публикации | Почти никогда: любой, кто знает адрес, войдёт под этим пользователем |
Для входа через ОС в карточке пользователя базы отметьте аутентификацию операционной системы и укажите учётку в виде \\DOMAIN\ivanova.
Права, которые проверяют в первую очередь
- 🔐 У каждого пользователя базы должен быть пароль. Пользователь без пароля при веб-доступе — открытая дверь в интернет.
- 👤 Право на веб-клиент и тонкий клиент даёт роль пользователя. В типовых конфигурациях это настраивается профилями групп доступа в
Администрирование → Настройки пользователей и прав. - 🚫 Полные права и роль администратора не выдавайте учётке, под которой заходят снаружи. Администрирование делайте из локальной сети.
- 📁 Для файловой базы учётная запись службы веб-сервера (на Linux обычно
www-data) должна иметь чтение и запись каталога базы.
Как ускорить работу 1С через браузер
Веб-клиент чувствителен к задержке сети больше, чем к ширине канала. Каждый вызов сервера — это запрос по интернету, и при пинге 80–100 мс формы открываются заметно медленнее, чем в офисе.
Что реально помогает:
- Тонкий клиент вместо браузера. Он кеширует интерфейс и работает быстрее веб-клиента. В списке баз нажмите
Добавить → Добавление в список существующей информационной базыи выберите вариант подключения на веб-сервере, указав адрес публикации. - Режим низкой скорости соединения. Для медленных каналов тонкий клиент запускают с параметром
/O Low. Платформа сокращает число обращений к серверу. - Клиент-серверная база . Файловая база через веб-сервер обрабатывает запросы пользователей по очереди, и уже при 4–5 активных бухгалтерах начинаются ожидания.
- Сервер ближе к пользователям. Сервер в Москве для сотрудников во Владивостоке даст пинг 120 мс и больше.
- Сжатие и HTTP/2 на прокси. Nginx или Apache с
mod_deflateуменьшают объём передаваемого интерфейса.
Перед жалобами «1С тормозит через интернет» замерьте пинг до сервера и запустите ту же операцию в локальной сети. Если в офисе тоже медленно — дело в базе, а не в веб-доступе.
Защита веб-публикации: сертификат, фаервол, резервные копии
Опубликованная база — это бухгалтерия компании, доступная из интернета. Минимальный набор мер:
- 🔒 Только HTTPS. Порт 80 оставьте лишь для перенаправления на 443 и продления сертификата.
- 🧱 Фаервол. Наружу открыты только 80 и 443. Порты кластера 1С (1540, 1541, диапазон рабочих процессов 1560–1591) и сервера СУБД из интернета недоступны.
- 🌍 Ограничение по адресам. Если у филиала постоянный IP, разрешите доступ к публикации только с него. В Apache это
Require ip 203.0.113.10в блоке<Directory>. - 🧩 Лишние сервисы выключены. Неиспользуемые OData и HTTP-сервисы не публикуйте: каждый из них — ещё одна точка входа.
- 🔑 Пароли. Включите в базе требования к сложности паролей. Отдельно уберите пользователей уволенных сотрудников.
- 💾 Резервные копии. Копия базы по расписанию — средствами СУБД для клиент-серверной базы или выгрузкой
.dtдля файловой. Храните её не на том же сервере.
Выгрузку .dt через Конфигуратор делают при монопольном доступе: всех пользователей, включая веб-сеансы, придётся завершить. Планируйте её на ночь.
Дополнительный уровень защиты — VPN поверх веб-доступа. Тогда публикация вообще не видна из интернета, а удалённые сотрудники подключаются к ней как из офиса.
Проверка и запуск веб-доступа в работу
Не отдавайте адрес всем сотрудникам сразу. Сначала проверьте публикацию по шагам, от локальной сети к внешней.
- На самом сервере откройте
http://localhost/buh. Должно появиться окно входа в базу. - С другого компьютера в офисе откройте
http://<имя-сервера>/buh. - Подключитесь тонким клиентом по тому же адресу.
- Включите HTTPS и откройте
https://1c.example.ru/buhиз внешней сети, например с мобильного интернета. - Дайте доступ одному-двум пользователям на неделю. Пусть проведут обычные документы, распечатают формы и загрузят файл.
- Только после этого раздайте адрес остальным.
В браузере пользователю нужно разрешить всплывающие окна для адреса публикации. Веб-клиент открывает в них формы и печать, а блокировщик это молча прячет.
Ошибки при настройке веб-доступа к 1С
Частые вопросы
Можно ли опубликовать на одном веб-сервере несколько баз?
buh и zup. В настройках веб-сервера появится отдельный блок Alias для каждой.Работает ли веб-клиент на телефоне?
Нужно ли покупать отдельную лицензию на веб-сервер?
Можно ли опубликовать базу без домена, по IP-адресу?
Как убрать публикацию?
webinst с ключом -delete и тем же именем публикации. Затем перезапустите веб-сервер.