Доступ к базе 1С через браузер и тонкий клиент по HTTP: от установки модулей до первого входа
Содержание
Чтобы подключиться к веб-серверу 1С, базу сначала публикуют на Apache или IIS, а потом в окне запуска добавляют её как информационную базу «на веб-сервере» с адресом вида http://server/buh. Тот же адрес открывается и в браузере — это веб-клиент. Сам по себе веб-сервер 1С ничего не раздаёт: пока база не опубликована, подключаться не к чему.
Частое заблуждение — что «веб-сервер 1С» это отдельная программа, которую ставят вместо сервера 1С:Предприятия. Это не так. Веб-сервер — посредник: он принимает HTTP-запросы от клиента и передаёт их файловой базе или кластеру серверов 1С. Без модуля расширения веб-сервера из дистрибутива платформы Apache и IIS про 1С ничего не знают.
1. Что подготовить на сервере до публикации
Сначала решите три вопроса: где лежит база, на каком веб-сервере публикуем и кто будет подключаться — из локальной сети или из интернета.
Схемы подключения
| Схема | Когда подходит | На что смотреть |
|---|---|---|
| Файловая база + веб-сервер на том же компьютере | 3–10 пользователей, удалённые сотрудники | Права учётной записи веб-сервера на папку базы |
| Клиент-серверная база + веб-сервер рядом с кластером | Десятки пользователей, внешний доступ | Сеть между веб-сервером и кластером, порты 1540–1541 и диапазон рабочих процессов |
| Отдельный веб-сервер в DMZ | Доступ из интернета | HTTPS, закрытые наружу порты кластера |
Apache или IIS
- 🐧 Apache 2.4 — работает и на Windows, и на Linux, настраивается одним файлом
httpd.conf. Для Linux-серверов это фактически единственный вариант. - 🪟 IIS — встроен в Windows Server, удобен там, где нужна аутентификация Windows и уже есть администратор IIS.
Разрядность имеет значение. 64-битная платформа ставит 64-битный модуль, и веб-сервер должен быть той же разрядности. Для IIS это настройка пула приложений, для Apache — сборка самого Apache.
Для Apache на Windows обычно берут сборку с Apache Lounge. Проверьте, что разрядность сборки совпадает с разрядностью установленной платформы 1С.
2. Установка модулей расширения веб-сервера
Это шаг, который чаще всего пропускают. Без него пункт публикации в Конфигураторе будет, но опубликовать базу не получится.
- Запустите установщик платформы (
setup.exe) той же версии, что и на сервере 1С. - Выберите «Изменить», если платформа уже стоит.
- В списке компонентов включите «Модули расширения веб-сервера».
- Если на этой машине будете публиковать из Конфигуратора, оставьте и компонент «1С:Предприятие».
- Завершите установку.
После этого в папке bin версии платформы появятся модули: wsap24.dll для Apache 2.4 и wsisapi.dll для IIS. На Linux модули ставятся пакетом ws из дистрибутива сервера, файл называется wsap24.so.
Версия модулей должна совпадать с версией платформы клиентов и сервера 1С. Разные версии — первая причина ошибок при входе.
Что включить в IIS
В «Диспетчере серверов» добавьте роль «Веб-сервер (IIS)» и в службах ролей отметьте:
- ✅ Расширения ISAPI;
- ✅ Фильтры ISAPI;
- ✅ Консоль управления IIS;
- ✅ Обычная проверка подлинности и проверка подлинности Windows — если будете их использовать.
IIS нужно включить до установки модулей 1С либо после включения переустановить компонент «Модули расширения веб-сервера».
3. Публикация информационной базы на веб-сервере
Через Конфигуратор
- Запустите Конфигуратор от имени администратора Windows. Иначе программа не сможет записать файлы в папку веб-сервера и изменить
httpd.conf. - Откройте меню
Администрирование → Публикация на веб-сервере. - Укажите Имя — это часть адреса. Имя
buhдаст адресhttp://server/buh. Используйте латиницу без пробелов. - Выберите веб-сервер: Apache 2.4 или Internet Information Services.
- Укажите Каталог — папку публикации, например
C:\inetpub\wwwroot\buhилиC:\Apache24\htdocs\buh. - Оставьте отмеченным «Публиковать тонкий клиент и веб-клиент». Галочки веб-сервисов и HTTP-сервисов нужны, только если ими пользуются обмены.
- Нажмите «Опубликовать». Для Apache программа предложит перезапустить службу — согласитесь.
Перезапуск Apache или IIS обрывает текущие веб-сеансы всех опубликованных баз. Публикуйте и перезапускайте вне рабочего времени или предупредите пользователей.
В папке публикации появится файл default.vrd — дескриптор со строкой подключения к базе.
Через утилиту webinst
Утилита webinst лежит в той же папке bin и удобна там, где Конфигуратор запускать неудобно: на Linux, на сервере без графики, при публикации нескольких баз скриптом.
Публикация клиент-серверной базы на Apache в Windows:
cd "C:\Program Files\1cv8\8.3.25.1374\bin"
webinst -publish -apache24 -wsdir buh -dir "C:\Apache24\htdocs\buh" -connstr "Srvr=srv1c;Ref=buh;" -confpath "C:\Apache24\conf\httpd.conf"
То же на Linux:
cd /opt/1cv8/x86_64/8.3.25.1374
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=""D:\Bases\Buh"";". Номер версии в пути замените на свой. Удалить публикацию — тот же вызов с ключом -delete.
Что появится в httpd.conf
Проверить публикацию Apache можно по файлу конфигурации. В нём должны быть строки примерно такого вида:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.25.1374/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 продолжает указывать на старую версию. Если старую версию удалили, Apache не запустится. Перепубликуйте базу из новой версии или поправьте путь вручную.
4. Подключение пользователей и аутентификация
Тонкий клиент
- В окне запуска 1С нажмите «Добавить» → «Добавление в список существующей информационной базы».
- Введите название.
- Выберите тип расположения «На веб-сервере».
- Укажите адрес:
http://server/buhилиhttps://1c.company.ru/buh. Нестандартный порт пишется через двоеточие:http://server:8080/buh. - Остальные шаги мастера оставьте по умолчанию и нажмите «Готово».
Версия тонкого клиента на компьютере пользователя должна совпадать с версией платформы на сервере.
Веб-клиент в браузере
Просто откройте тот же адрес в браузере. Ничего ставить на компьютер не нужно. Разрешите для этого сайта всплывающие окна — 1С открывает в них часть форм. Для работы с файлами браузер может попросить установить расширение для работы с файлами; без него загрузка и выгрузка файлов ограничены.
Права в самой базе
Пользователь входит под своим логином 1С. Проверьте в Конфигураторе (Администрирование → Пользователи) или в пользовательском режиме, что у пользователя:
- 🔑 включена аутентификация 1С:Предприятия и задан пароль;
- 🔑 есть право запуска тонкого клиента или веб-клиента — эти права есть в ролях типовых конфигураций, но в доработанных базах их иногда урезают;
- 🔑 для входа без пароля через домен включена аутентификация операционной системы и указан пользователь Windows.
Права файловой системы
Веб-сервер работает под своей учётной записью. Ей нужны права:
| Что | Какие права | Учётная запись |
|---|---|---|
| Папка публикации | Чтение | IIS: группа IIS_IUSRS; Apache: пользователь службы |
Папка bin платформы | Чтение и выполнение | То же |
| Папка файловой базы | Полный доступ (создаются файлы блокировок) | То же |
Для файловой базы это главная причина ошибок «нет доступа к файлу». Для клиент-серверной базы права на папку базы не нужны — данные хранит кластер.
Аутентификация на уровне веб-сервера
Поверх входа 1С можно включить проверку на самом веб-сервере: обычную (Basic) или Windows в IIS. Тогда браузер сначала спросит учётную запись веб-сервера, а уже потом 1С откроет свою форму входа.
Не прописывайте логин и пароль пользователя 1С в default.vrd для автоматического входа на публикации, открытой в интернет. Любой, кто узнает адрес, войдёт в базу под этим пользователем.
При доступе из интернета включите HTTPS. В Apache это модуль mod_ssl и сертификат, в IIS — привязка сайта к порту 443 с сертификатом. Пароли по голому HTTP передаются в открытом виде.
5. Почему не удаётся подключиться: порты и ошибки
Начинайте проверку с сервера, а не с компьютера пользователя.
- Откройте адрес публикации в браузере на самом веб-сервере:
http://localhost/buh. Если и там ошибка — дело в публикации или веб-сервере. - Если на сервере открывается, а у пользователя нет — смотрите сеть и брандмауэр.
- Проверьте синтаксис конфигурации Apache:
httpd -tв Windows илиapachectl configtestв Linux. - Посмотрите, слушает ли кто-нибудь порт 80:
netstat -ano | findstr :80. Порт может держать другая программа, и Apache тогда не стартует.
Открыть порт в брандмауэре Windows:
netsh advfirewall firewall add rule name="1C Web HTTP" dir=in action=allow protocol=TCP localport=80
Для клиент-серверной базы веб-сервер сам ходит в кластер 1С. Между ними должны быть открыты порт агента 1540, менеджера кластера 1541 и диапазон портов рабочих процессов из свойств рабочего сервера (по умолчанию 1560–1591).
Подробный текст ошибки ищите в журнале Apache logs/error.log или в журнале событий Windows для IIS. Он почти всегда точнее того, что видит пользователь.
6. Как ускорить работу через веб-сервер
Веб-клиент и тонкий клиент по HTTP передают по сети только данные форм, а не всю базу. Поэтому медленная работа чаще связана с сетью и железом, а не с самой публикацией.
- 🚀 Ставьте веб-сервер рядом с кластером. Между веб-сервером и сервером 1С много коротких запросов. Задержка в этом звене бьёт по скорости сильнее, чем канал до пользователя.
- 🚀 Тяжёлую работу — в тонком клиенте. Большие отчёты, обработки, печать пачек документов быстрее идут в тонком клиенте, чем в браузере. Веб-клиент оставьте для редкого входа и удалённых сотрудников без установленной платформы.
- 🚀 Включите сжатие на веб-сервере для статических файлов веб-клиента — первый вход в браузере станет заметно быстрее.
- 🚀 Не держите несколько версий модулей. Одна платформа — один
LoadModuleдля всех публикаций на этом Apache. - 🚀 Следите за памятью. Каждый веб-сеанс занимает память в рабочих процессах кластера, а для файловой базы — в процессе веб-сервера. Если файловая база через веб-сервер начинает тормозить при росте числа одновременных пользователей, переходите на клиент-серверный вариант.
Помните о лицензиях: сеанс через веб-сервер занимает клиентскую лицензию так же, как обычный вход. Если лицензий не хватает, пользователь увидит ошибку об их отсутствии, а не медленную работу.
Частые вопросы
Можно ли опубликовать на одном веб-сервере несколько баз?
http://server/buh, http://server/zup. Модуль 1С подключается в конфиге один раз, на каждую базу добавляется свой блок с алиасом.Нужен ли сервер 1С:Предприятия, чтобы работать через браузер?
Как открыть базу 1С через интернет без VPN?
Что делать с публикацией после обновления платформы?
webinst новой версии. Тонкие клиенты пользователей тоже обновите до этой версии.Можно ли ограничить доступ к опубликованной базе по IP?
Require ip в блоке публикации, в IIS — через ограничения IP-адресов и доменов, если этот компонент роли установлен.