Веб-сервер и веб-клиент 1С: как работает доступ к базе через браузер

· 10 мин

Содержание

Веб-сервер 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), но на новых установках их уже не встретишь.

Что происходит при открытии базы в браузере

  1. Пользователь вводит адрес вида https://1c.company.ru/buh/.
  2. Веб-сервер видит, что путь /buh привязан к модулю 1С, и передаёт ему запрос.
  3. Модуль читает файл default.vrd в папке публикации. В нём записана строка соединения с базой.
  4. Модуль подключается к серверу 1С (клиент-серверный вариант) или открывает файловую базу напрямую.
  5. Браузер получает интерфейс и дальше обменивается с сервером короткими запросами.

Для клиент-серверной базы веб-сервер — лишь посредник. Вся тяжёлая работа идёт на сервере 1С, поэтому веб-серверу хватает скромных ресурсов.

С файловой базой модуль сам выступает «сервером»: он открывает файл 1Cv8.1CD от имени учётной записи веб-сервера. Поэтому у этой учётной записи должны быть права на папку базы. Под нагрузкой больше 5–10 одновременных пользователей файловый вариант через веб начинает заметно тормозить.

Какие бывают клиенты и как их запускать через веб

Под «1С веб» часто понимают только веб-клиент в браузере. На деле через один и тот же веб-сервер работают несколько видов подключений.

Веб-клиент

Работает прямо в браузере, ничего ставить не нужно. Клиентский код конфигурации платформа выполняет в браузере сама. Запуск — по ссылке на публикацию, например https://1c.company.ru/buh/ru_RU/.

Подходит для Chrome, Firefox, Edge, Safari и Яндекс Браузера актуальных версий. Работает только с управляемыми формами, то есть с конфигурациями на «Такси» и новее.

Тонкий клиент через веб-сервер

Это привычная программа 1С, но база подключается не по адресу сервера 1С, а по HTTP-адресу публикации. Порядок такой:

  1. В окне запуска нажмите Добавить → Добавление в список существующей информационной базы.
  2. Укажите имя и выберите тип расположения На веб-сервере.
  3. Введите адрес публикации, например https://1c.company.ru/buh.
  4. Завершите мастер и запустите базу как обычно.

В строке соединения такая база выглядит так:

ws="https://1c.company.ru/buh";

Тонкий клиент работает быстрее веб-клиента и лучше дружит с торговым оборудованием, печатью и внешними компонентами. Платформа у пользователя нужна той же версии, что и на сервере.

Мобильный клиент и интеграции

  • 📱 Мобильный клиент — приложение на телефоне, подключается к той же публикации.
  • 🔗 Web-сервисы (SOAP) и HTTP-сервисы — для обмена с сайтом, складской программой, банком.
  • 📊 OData — стандартный REST-интерфейс для выгрузки данных во внешние системы и BI.

Всё это включается галочками при публикации, отдельный веб-сервер не нужен.

Подготовка веб-сервера перед публикацией

Без подготовки Конфигуратор либо не покажет нужный веб-сервер, либо опубликует базу, которая не откроется.

Для IIS (Windows)

  1. Откройте Панель управления → Программы → Включение или отключение компонентов Windows.
  2. Включите Службы IIS, а внутри Компоненты разработки приложений отметьте Расширения ISAPI и Фильтры ISAPI.
  3. Установите платформу 1С с компонентом Модули расширения веб-сервера. Если платформа уже стоит, запустите установщик ещё раз и добавьте компонент.
  4. Дайте группе IIS_IUSRS права на чтение каталога платформы, а для файловой базы — права на изменение папки с базой.

Для Apache

  1. Установите Apache 2.4 той же разрядности, что и платформа: 64-битный Apache — 64-битная платформа.
  2. Поставьте платформу с модулями веб-сервера.
  3. Проверьте, что служба Apache запущена и под ней есть доступ к каталогу публикации.

Разрядность — главная ловушка. 32-битный модуль 1С не загрузится в 64-битный Apache, и наоборот. В IIS то же касается пула приложений: настройка Разрешить 32-разрядные приложения должна совпадать с разрядностью установленной платформы.

Публикация базы на веб-сервере 1С по шагам

Публикацию проще всего сделать из Конфигуратора. Запускайте Конфигуратор от имени администратора — иначе он не сможет записать настройки IIS или файл конфигурации Apache.

  1. Откройте базу в режиме Конфигуратора.
  2. Выберите Администрирование → Публикация на веб-сервере.
  3. В поле Имя укажите короткое имя латиницей, например buh. Оно станет частью адреса.
  4. В списке Веб-сервер выберите IIS или нужную версию Apache.
  5. Для Apache укажите каталог публикации, например C:\www\buh. Для IIS он подставится в C:\inetpub\wwwroot\buh.
  6. Отметьте, что публиковать: тонкий клиент и веб-клиент, OData, нужные Web-сервисы и HTTP-сервисы.
  7. Нажмите Опубликовать. Для Apache согласитесь на перезапуск службы.

Перезапуск Apache или IIS обрывает текущие веб-сеансы всех опубликованных баз. Если на сервере уже работают пользователи, публикуйте вне рабочего времени.

После публикации в каталоге появится default.vrd. Упрощённо он выглядит так:

<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
       base="/buh"
       ib="Srvr=&quot;srv1c&quot;;Ref=&quot;buh&quot;;">
</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. Полный список ключей выводит сама утилита при запуске без параметров.

Проверка после публикации
Выполнено: 0 / 5

Сравнение режимов работы: веб-клиент, тонкий и толстый клиент

Выбор клиента зависит от того, где сидит пользователь и что он делает в базе.

РежимЧто ставить у пользователяСвязь с базойСкоростьГде уместен
Толстый клиентПлатформа целикомНапрямую, только локальная сетьВысокаяОбычные формы, старые конфигурации
Тонкий клиент напрямуюТонкий клиентСервер 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 случайно.

Что ещё закрыть

  1. 🔑 Задайте пароли всем пользователям базы. Пользователь без пароля через веб — открытая дверь.
  2. 🧱 Пробрасывайте наружу только 443-й порт веб-сервера. Порты сервера 1С (1540, 1541, 1560–1591) в интернет не открывайте.
  3. 🌐 Если доступ нужен только филиалам, ограничьте его по IP на межсетевом экране или в настройках сайта.
  4. 📝 Не публикуйте лишнее: если OData и веб-сервисы не нужны, снимите галочки.
  5. 🔄 Обновляйте платформу и сам веб-сервер, следите за сроком действия сертификата.

Для доменных сетей можно включить аутентификацию операционной системы: пользователь входит под учётной записью Windows без отдельного пароля 1С. Это удобно в офисе, но для внешнего доступа требует аккуратной настройки на стороне IIS.

Учтите лицензии. Каждый пользователь веб-клиента или тонкого клиента через веб занимает клиентскую лицензию так же, как при обычном подключении. Для клиент-серверной базы лицензию выдаёт сервер 1С, для файловой — её ищет модуль на машине веб-сервера.

Типичные ошибки публикации и как их диагностировать

Большинство проблем видно уже по тому, какую страницу отдаёт браузер: ошибку веб-сервера или сообщение самой 1С.

Диагностика: выберите симптом

Где искать подробности

  • 📄 Журнал событий Windows — раздел «Приложение», источник IIS или Apache.
  • 📁 Логи Apache — error.log в каталоге logs; ошибка загрузки модуля пишется именно туда.
  • 🧪 Проверка конфигурации — httpd -t на Windows или apachectl configtest на Linux.
  • 🔍 Тест без веба — откройте ту же базу тонким клиентом напрямую с машины веб-сервера. Если не открывается и так, проблема в базе или сервере 1С, а не в публикации.

Если ничего не помогло

  1. Удалите публикацию: в том же окне Публикация на веб-сервере есть кнопка Отключить.
  2. Проверьте, что в httpd.conf не осталось старых блоков LoadModule и Directory от прежних версий.
  3. Перезапустите веб-сервер вне рабочего времени.
  4. Опубликуйте базу заново из Конфигуратора, запущенного от имени администратора.

Частые вопросы

Нужен ли отдельный сервер под веб-публикацию 1С?
Нет. Модуль можно поставить на тот же компьютер, где работает сервер 1С. Отдельная машина нужна, если хотите вынести точку входа из интернета в отдельный сегмент сети.
Можно ли опубликовать файловую базу?
Да, публикация работает и для файловых баз. Но при одновременной работе больше 5–10 человек лучше перейти на клиент-серверный вариант.
Что делать с публикацией после обновления платформы?
В IIS модуль подтягивается из новой версии при повторной публикации. В Apache поправьте путь в строке LoadModule или переопубликуйте базу из Конфигуратора новой версии.
Почему конфигурация не открывается в веб-клиенте?
Скорее всего, она построена на обычных формах. Веб-клиент работает только с управляемым приложением, такую базу можно открыть только толстым клиентом.
Можно ли опубликовать несколько баз на одном веб-сервере?
Да. Каждой базе даётся своё имя публикации и своя папка, например /buh и /zup. Все они работают через один сайт и один сертификат.