Веб-сервер и веб-клиент 1С: как работает доступ к базе через браузер
Содержание
Веб-сервер 1С — это обычный IIS или Apache, к которому подключён модуль расширения из комплекта платформы 1С:Предприятие 8.3. Он принимает HTTP-запросы и передаёт их базе, поэтому с 1С можно работать из браузера, через тонкий клиент по интернету, через веб-сервисы и OData — без VPN и без установки платформы у пользователя.
Задача обычно возникает, когда сотрудникам нужен доступ к базе из дома или с филиала, а RDP поднимать не хочется. Ниже — как устроена эта схема, какие бывают клиенты, как опубликовать базу из Конфигуратора и где чаще всего всё ломается.
Как устроена работа 1С через веб-сервер
В схеме три звена. У каждого своя роль, и ошибки обычно возникают на стыке между ними.
| Звено | Что делает | Где находится |
|---|---|---|
| Браузер или тонкий клиент | Показывает формы, выполняет клиентский код | Компьютер пользователя |
| Веб-сервер с модулем 1С | Принимает HTTP/HTTPS, передаёт запросы базе | Отдельная машина или сервер 1С |
| Информационная база | Хранит данные, выполняет серверный код | Сервер 1С или папка файловой базы |
Модуль расширения — это библиотека из каталога bin платформы:
- 🪟
wsisapi.dll— для IIS; - 🪶
wsap24.dll— для Apache 2.4 под Windows; - 🐧
wsap24.so— для Apache 2.4 под Linux.
Для старых Apache 2.0 и 2.2 в платформе есть свои модули (wsapch2.dll, wsap22.dll), но на новых установках их уже не встретишь.
Что происходит при открытии базы в браузере
- Пользователь вводит адрес вида
https://1c.company.ru/buh/. - Веб-сервер видит, что путь
/buhпривязан к модулю 1С, и передаёт ему запрос. - Модуль читает файл
default.vrdв папке публикации. В нём записана строка соединения с базой. - Модуль подключается к серверу 1С (клиент-серверный вариант) или открывает файловую базу напрямую.
- Браузер получает интерфейс и дальше обменивается с сервером короткими запросами.
Для клиент-серверной базы веб-сервер — лишь посредник. Вся тяжёлая работа идёт на сервере 1С, поэтому веб-серверу хватает скромных ресурсов.
С файловой базой модуль сам выступает «сервером»: он открывает файл 1Cv8.1CD от имени учётной записи веб-сервера. Поэтому у этой учётной записи должны быть права на папку базы. Под нагрузкой больше 5–10 одновременных пользователей файловый вариант через веб начинает заметно тормозить.
Какие бывают клиенты и как их запускать через веб
Под «1С веб» часто понимают только веб-клиент в браузере. На деле через один и тот же веб-сервер работают несколько видов подключений.
Веб-клиент
Работает прямо в браузере, ничего ставить не нужно. Клиентский код конфигурации платформа выполняет в браузере сама. Запуск — по ссылке на публикацию, например https://1c.company.ru/buh/ru_RU/.
Подходит для Chrome, Firefox, Edge, Safari и Яндекс Браузера актуальных версий. Работает только с управляемыми формами, то есть с конфигурациями на «Такси» и новее.
Тонкий клиент через веб-сервер
Это привычная программа 1С, но база подключается не по адресу сервера 1С, а по HTTP-адресу публикации. Порядок такой:
- В окне запуска нажмите
Добавить→Добавление в список существующей информационной базы. - Укажите имя и выберите тип расположения
На веб-сервере. - Введите адрес публикации, например
https://1c.company.ru/buh. - Завершите мастер и запустите базу как обычно.
В строке соединения такая база выглядит так:
ws="https://1c.company.ru/buh";
Тонкий клиент работает быстрее веб-клиента и лучше дружит с торговым оборудованием, печатью и внешними компонентами. Платформа у пользователя нужна той же версии, что и на сервере.
Мобильный клиент и интеграции
- 📱 Мобильный клиент — приложение на телефоне, подключается к той же публикации.
- 🔗 Web-сервисы (SOAP) и HTTP-сервисы — для обмена с сайтом, складской программой, банком.
- 📊 OData — стандартный REST-интерфейс для выгрузки данных во внешние системы и BI.
Всё это включается галочками при публикации, отдельный веб-сервер не нужен.
Подготовка веб-сервера перед публикацией
Без подготовки Конфигуратор либо не покажет нужный веб-сервер, либо опубликует базу, которая не откроется.
Для IIS (Windows)
- Откройте
Панель управления → Программы → Включение или отключение компонентов Windows. - Включите
Службы IIS, а внутриКомпоненты разработки приложенийотметьтеРасширения ISAPIиФильтры ISAPI. - Установите платформу 1С с компонентом
Модули расширения веб-сервера. Если платформа уже стоит, запустите установщик ещё раз и добавьте компонент. - Дайте группе
IIS_IUSRSправа на чтение каталога платформы, а для файловой базы — права на изменение папки с базой.
Для Apache
- Установите Apache 2.4 той же разрядности, что и платформа: 64-битный Apache — 64-битная платформа.
- Поставьте платформу с модулями веб-сервера.
- Проверьте, что служба Apache запущена и под ней есть доступ к каталогу публикации.
Разрядность — главная ловушка. 32-битный модуль 1С не загрузится в 64-битный Apache, и наоборот. В IIS то же касается пула приложений: настройка Разрешить 32-разрядные приложения должна совпадать с разрядностью установленной платформы.
Публикация базы на веб-сервере 1С по шагам
Публикацию проще всего сделать из Конфигуратора. Запускайте Конфигуратор от имени администратора — иначе он не сможет записать настройки IIS или файл конфигурации Apache.
- Откройте базу в режиме Конфигуратора.
- Выберите
Администрирование → Публикация на веб-сервере. - В поле
Имяукажите короткое имя латиницей, напримерbuh. Оно станет частью адреса. - В списке
Веб-сервервыберите IIS или нужную версию Apache. - Для Apache укажите каталог публикации, например
C:\www\buh. Для IIS он подставится вC:\inetpub\wwwroot\buh. - Отметьте, что публиковать: тонкий клиент и веб-клиент, OData, нужные Web-сервисы и HTTP-сервисы.
- Нажмите
Опубликовать. Для Apache согласитесь на перезапуск службы.
Перезапуск Apache или IIS обрывает текущие веб-сеансы всех опубликованных баз. Если на сервере уже работают пользователи, публикуйте вне рабочего времени.
После публикации в каталоге появится default.vrd. Упрощённо он выглядит так:
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
base="/buh"
ib="Srvr="srv1c";Ref="buh";">
</point>
В Apache Конфигуратор дописывает в httpd.conf блок примерно такого вида:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.25.1374/bin/wsap24.dll"
Alias "/buh" "C:/www/buh/"
<Directory "C:/www/buh/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "C:/www/buh/default.vrd"
</Directory>
Номер версии в пути будет вашим. После обновления платформы этот путь нужно поправить, иначе Apache продолжит грузить модуль старой версии или не запустится, если её удалили.
Публикация из командной строки
На Linux и при массовой публикации удобнее утилита webinst из каталога платформы. Пример для Apache 2.4:
sudo /opt/1cv8/x86_64/8.3.25.1374/webinst -publish -apache24 \
-wsdir buh -dir /var/www/buh \
-connstr "Srvr=srv1c;Ref=buh;" \
-confpath /etc/apache2/apache2.conf
Затем перезапустите Apache. Полный список ключей выводит сама утилита при запуске без параметров.
Сравнение режимов работы: веб-клиент, тонкий и толстый клиент
Выбор клиента зависит от того, где сидит пользователь и что он делает в базе.
| Режим | Что ставить у пользователя | Связь с базой | Скорость | Где уместен |
|---|---|---|---|---|
| Толстый клиент | Платформа целиком | Напрямую, только локальная сеть | Высокая | Обычные формы, старые конфигурации |
| Тонкий клиент напрямую | Тонкий клиент | Сервер 1С по TCP, порты 1540–1541 и диапазон процессов | Высокая | Офис, локальная сеть |
| Тонкий клиент через веб | Тонкий клиент | HTTP/HTTPS через веб-сервер | Выше средней | Удалёнка, филиалы |
| Веб-клиент | Ничего, только браузер | HTTP/HTTPS через веб-сервер | Средняя | Разовый доступ, руководитель, Mac и Linux |
| Мобильный клиент | Приложение на телефон | HTTP/HTTPS через веб-сервер | Зависит от сети | Работа «в поле» |
Отличия веб-клиента от толстого клиента, которые чаще всего всплывают на практике:
- 🚫 Обычные формы и конфигурации на них в веб-клиенте не работают вовсе.
- 🧾 Печать идёт через средства браузера, а не напрямую на принтер.
- 🔌 Торговое оборудование и часть внешних компонент требуют дополнительного расширения браузера или не работают.
- 🛠 Конфигуратор через веб недоступен — он запускается только как толстый клиент.
Для бухгалтера, который весь день в базе, через интернет лучше подходит тонкий клиент через веб-сервер. Веб-клиент хорош как запасной вход с чужого компьютера.
Безопасность публикации и настройка HTTPS
Опубликовать базу в интернет по голому HTTP — значит отправлять логины и данные открытым текстом. Для доступа из интернета используйте только HTTPS.
Как включить HTTPS
- IIS: в
Диспетчере служб IISоткройте сайт →Привязки→ добавьте типhttps, порт 443 и выберите сертификат. Сертификат можно выпустить бесплатно, например Let’s Encrypt через утилиту win-acme. - Apache: включите
mod_ssl, создайте виртуальный хост на порту 443 с директивамиSSLCertificateFileиSSLCertificateKeyFile. На Linux сертификат Let’s Encrypt удобно получать черезcertbot. - Настройте перенаправление с 80-го порта на 443-й, чтобы пользователи не попадали на HTTP случайно.
Что ещё закрыть
- 🔑 Задайте пароли всем пользователям базы. Пользователь без пароля через веб — открытая дверь.
- 🧱 Пробрасывайте наружу только 443-й порт веб-сервера. Порты сервера 1С (1540, 1541, 1560–1591) в интернет не открывайте.
- 🌐 Если доступ нужен только филиалам, ограничьте его по IP на межсетевом экране или в настройках сайта.
- 📝 Не публикуйте лишнее: если OData и веб-сервисы не нужны, снимите галочки.
- 🔄 Обновляйте платформу и сам веб-сервер, следите за сроком действия сертификата.
Для доменных сетей можно включить аутентификацию операционной системы: пользователь входит под учётной записью Windows без отдельного пароля 1С. Это удобно в офисе, но для внешнего доступа требует аккуратной настройки на стороне IIS.
Учтите лицензии. Каждый пользователь веб-клиента или тонкого клиента через веб занимает клиентскую лицензию так же, как при обычном подключении. Для клиент-серверной базы лицензию выдаёт сервер 1С, для файловой — её ищет модуль на машине веб-сервера.
Типичные ошибки публикации и как их диагностировать
Большинство проблем видно уже по тому, какую страницу отдаёт браузер: ошибку веб-сервера или сообщение самой 1С.
Где искать подробности
- 📄 Журнал событий Windows — раздел «Приложение», источник IIS или Apache.
- 📁 Логи Apache —
error.logв каталогеlogs; ошибка загрузки модуля пишется именно туда. - 🧪 Проверка конфигурации —
httpd -tна Windows илиapachectl configtestна Linux. - 🔍 Тест без веба — откройте ту же базу тонким клиентом напрямую с машины веб-сервера. Если не открывается и так, проблема в базе или сервере 1С, а не в публикации.
Если ничего не помогло
- Удалите публикацию: в том же окне
Публикация на веб-сервереесть кнопкаОтключить. - Проверьте, что в
httpd.confне осталось старых блоковLoadModuleиDirectoryот прежних версий. - Перезапустите веб-сервер вне рабочего времени.
- Опубликуйте базу заново из Конфигуратора, запущенного от имени администратора.