Как опубликовать базу 1С на веб-сервере и открыть её в браузере

· 10 мин

Содержание

Чтобы настроить веб-клиент 1С, базу публикуют на веб-сервере (IIS или Apache) через Конфигуратор: Администрирование → Публикация на веб-сервере. После публикации база открывается в браузере по адресу вида http://имя-сервера/имя-публикации/. Отдельно веб-клиент ставить не нужно: он входит в платформу, а на веб-сервер добавляются только модули расширения.

Типичная ситуация: главбух уехал на две недели, а закрыть месяц нужно. Ставить ему тонкий клиент на ноутбук и настраивать VPN долго. Публикация базы занимает полчаса, а работать можно из любого браузера. Правда, без HTTPS и ограничения доступа выставлять такую публикацию в интернет нельзя — об этом тоже ниже.

Что подготовить до публикации базы

Веб-клиент — это не отдельный продукт со своей версией. Он всегда той же версии, что и платформа 1С на сервере. Поэтому «выбрать версию веб-клиента» на практике означает выбрать платформу и подходящий веб-сервер.

Перед установкой проверьте пять вещей:

  1. 🖥️ Веб-сервер. На Windows обычно используют IIS, на Linux — Apache 2.4. Apache работает и на Windows, если администратор к нему привык.
  2. 🧩 Разрядность. Модуль расширения веб-сервера должен совпадать по разрядности с процессом веб-сервера. 64-битный IIS — значит, ставите 64-битную платформу.
  3. 🗄️ Тип базы. Опубликовать можно и файловую, и клиент-серверную базу . Для нескольких пользователей через интернет лучше клиент-серверный вариант: файловая база под веб-нагрузкой работает заметно медленнее.
  4. 🔑 Лицензии. Каждый сеанс веб-клиента занимает клиентскую лицензию так же, как тонкий клиент. Пять бухгалтеров в браузере — пять лицензий.
  5. 🌐 Браузеры. Веб-клиент работает в актуальных Chrome, Firefox, Edge, Яндекс Браузере и Safari. Для сайта публикации нужно разрешить всплывающие окна.

Требования к серверу

Жёстких цифр для самого веб-сервера нет: модуль расширения лёгкий, основную нагрузку несёт сервер 1С и СУБД. Ориентиры для небольшой компании такие.

Пользователей в веб-клиентеКонфигурация веб-сервераГде держать
До 102 ядра, 4 ГБ ОЗУНа одной машине с сервером 1С
10–504 ядра, 8 ГБ ОЗУМожно на той же машине, если ОЗУ хватает
Больше 50Отдельная машина или несколько за балансировщикомВ одной сети с кластером 1С

Цифры ориентировочные. Узкое место чаще всего не веб-сервер, а память сервера 1С и диски под СУБД.

Установка веб-сервера и модулей 1С

IIS на Windows Server

В Windows Server 2016 и новее IIS ставят через Диспетчер серверов → Управление → Добавить роли и компоненты. Выберите роль «Веб-сервер (IIS)» и в её службах ролей отметьте:

  • «Расширения ISAPI»;
  • «Фильтры ISAPI»;
  • «Консоль управления IIS»;
  • «Ограничения IP-адресов и доменов» — пригодится для закрытия доступа.

Без расширений и фильтров ISAPI публикация пройдёт, но браузер получит ошибку сервера.

Компонент платформы

Запустите установщик платформы 1С на веб-сервере и в списке компонентов включите «Модули расширения веб-сервера». Если на этой машине нужен Конфигуратор для публикации, оставьте и «1С:Предприятие».

💡 Для Apache на Linux модули ставятся пакетом платформы с веб-расширениями. После установки в каталоге платформы появится wsap24.so — его и подключает Apache.

Права на каталоги

IIS работает от имени служебных учётных записей. Дайте группе IIS_IUSRS:

  • чтение и выполнение на каталог bin платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin;
  • чтение на каталог публикации, например C:\inetpub\wwwroot\buh;
  • для файловой базы — изменение на каталог с базой. Без этого база откроется с ошибкой доступа к файлу.

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

Способ 1. Через Конфигуратор

Конфигуратор нужно запустить от имени администратора Windows, иначе он не сможет записать настройки IIS или httpd.conf.

  1. Откройте базу в Конфигураторе.
  2. Выберите Администрирование → Публикация на веб-сервере.
  3. В поле «Имя» задайте короткое имя латиницей, например buh. Оно станет частью адреса.
  4. В поле «Веб-сервер» выберите IIS или нужную версию Apache.
  5. Для Apache укажите путь к httpd.conf.
  6. Каталог публикации оставьте предложенный или укажите свой.
  7. Отметьте «Публиковать доступ для клиентских приложений» — это и есть веб-клиент и тонкий клиент по HTTP.
  8. Нажмите «Опубликовать». На вопрос о перезапуске веб-сервера ответьте «Да».

Проверка: откройте в браузере http://localhost/buh/. Должно появиться окно выбора пользователя 1С.

Способ 2. Утилитой webinst

Утилита webinst лежит в каталоге bin платформы. Она нужна, когда Конфигуратора на веб-сервере нет или публикацию делают скриптом.

Публикация клиент-серверной базы на IIS:

cd "C:\Program Files\1cv8\8.3.xx.xxxx\bin"
webinst -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=srv1c;Ref=buh;"

Публикация на Apache 2.4 под Linux:

sudo /opt/1cv8/x86_64/8.3.xx.xxxx/webinst -publish -apache24 \
  -wsdir buh -dir /var/www/buh \
  -connstr "Srvr=srv1c;Ref=buh;" \
  -confpath /etc/apache2/apache2.conf
sudo systemctl restart apache2

Удалить публикацию можно той же утилитой с ключом -delete вместо -publish.

Файл default.vrd и строка подключения к базе

В каталоге публикации появится файл 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=&quot;srv1c&quot;;Ref=&quot;buh&quot;;">
</point>

Строка в атрибуте ib — та же строка соединения, что и в списке баз:

Тип базыСтрока подключения
Клиент-сервернаяSrvr="srv1c";Ref="buh";
ФайловаяFile="D:\Bases\Buh";
Сервер на нестандартном портуSrvr="srv1c:2541";Ref="buh";

Кавычки внутри XML записываются как &quot;. Если правите файл вручную, не ставьте обычные кавычки — веб-сервер не разберёт строку.

⚠️ Не прописывайте в строку подключения имя и пароль пользователя 1С. Файл default.vrd лежит на веб-сервере, и любой, кто получит к нему доступ, войдёт в базу.

Пользователи 1С

Для веб-доступа у каждого пользователя в базе должен быть пароль. Пользователь без пароля из интернета — открытая дверь. Проверьте список в Администрирование → Настройки пользователей и прав → Пользователи (в БП 3.0, ЗУП 3.1, УТ 11 путь одинаковый).

Как защитить веб-доступ к 1С: HTTPS и ограничение по IP

Без шифрования логин и пароль 1С идут по сети открытым текстом. Публикация «наружу» без HTTPS недопустима.

Сертификат и HTTPS

  • IIS: импортируйте сертификат в хранилище компьютера, затем в Диспетчер IIS → сайт → Привязки добавьте привязку https на порт 443 с этим сертификатом.
  • Apache: включите модуль mod_ssl и пропишите в виртуальном хосте пути к сертификату и ключу.
  • Бесплатный сертификат выдаёт Let’s Encrypt. На Linux его получают утилитой certbot, на Windows — клиентом win-acme.

После этого закройте порт 80 на межсетевом экране или настройте с него перенаправление на 443.

Доступ только с определённых IP-адресов

Частый сценарий: в базу пускать только офис и пару домашних адресов. Допустим, это 192.168.1.100 и 192.168.1.101.

В Apache 2.4 добавьте в блок Directory публикации:

<Directory "/var/www/buh/">
    AllowOverride All
    Options None
    Require ip 192.168.1.100 192.168.1.101
    SetHandler 1c-application
    ManagedApplicationDescriptor "/var/www/buh/default.vrd"
</Directory>

Строки SetHandler и ManagedApplicationDescriptor webinst пишет сам — добавляете только Require ip. Перезапустите Apache.

В IIS выделите приложение публикации, откройте «Ограничения IP-адресов и доменов». В «Изменить параметры компонента» задайте для незаданных клиентов «Запретить», затем добавьте разрешающие записи для обоих адресов.

💡 Если у сотрудников динамические IP, ограничение по адресу не подойдёт. Тогда пускайте их через VPN, а публикацию оставьте видимой только из внутренней сети.

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

Как ускорить работу 1С в браузере

Веб-клиент по природе медленнее тонкого: интерфейс рисуется силами браузера, а каждое действие идёт запросом по HTTP. Но разница не должна быть в разы. Если она есть, ищите узкое место.

Со стороны пользователя и сети

  • 🌍 Канал. Проверьте задержку до сервера командой ping. При задержке выше 100 мс работа ощутимо тормозит, и никакая настройка сервера это не исправит.
  • 🧭 Браузер. Держите его обновлённым. Устаревшие версии работают с веб-клиентом медленнее и с ошибками.
  • 🧩 Расширения браузера. Блокировщики рекламы и «защитники» иногда режут запросы к публикации. Добавьте адрес в исключения.
  • 🪟 Всплывающие окна. Разрешите их для адреса базы: иначе отчёты и печатные формы просто не откроются.

Со стороны сервера

  • Держите веб-сервер в одной локальной сети с сервером 1С. Публикация в одном городе, а кластер в другом — гарантированные тормоза.
  • Используйте клиент-серверный вариант базы. Файловая база через веб-сервер подходит для 2–3 человек, не больше.
  • Следите за памятью сервера 1С. Когда процессы rphost упираются в ОЗУ, первыми страдают именно удалённые пользователи.

Настройки СУБД под нагрузку

Если база клиент-серверная, скорость во многом определяет СУБД.

PostgreSQL. Используйте сборку с патчами под 1С (от фирмы 1С или Postgres Pro): ванильный PostgreSQL с базами 1С работает хуже. Базовые параметры в postgresql.conf:

ПараметрОриентирЗачем
shared_buffersоколо 25% ОЗУКэш страниц в памяти СУБД
effective_cache_size50–75% ОЗУПодсказка планировщику о кэше ОС
work_mem32–64 МБПамять на сортировки в запросе
maintenance_work_mem512 МБ–1 ГБУскоряет VACUUM и создание индексов

После правки параметров перезапустите службу PostgreSQL. Делайте это вне рабочего времени: перезапуск обрывает сеансы всех пользователей 1С.

MS SQL Server. Три настройки, без которых сервер 1С работает хуже:

  1. Ограничьте max server memory. Оставьте операционной системе и серверу 1С не меньше 4–8 ГБ, иначе SQL займёт всю память.
  2. Установите max degree of parallelism = 1. Для типовых нагрузок 1С это стандартная рекомендация.
  3. Вынесите tempdb на быстрый диск и настройте регламентное обслуживание: обновление статистики и перестроение индексов по ночам.

Типичные ошибки при настройке веб-клиента

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

⚠️ Перезапуск IIS (iisreset) или Apache обрывает работу всех, кто сейчас в веб-клиенте. Предупредите пользователей или делайте это в нерабочее время.

Другие способы удалённой работы с 1С

Веб-клиент удобен, но не единственный вариант. Сравните:

СпособКогда подходитМинусы
Веб-клиент в браузереНужно открыть базу с любого компьютера без установкиМедленнее тонкого клиента, часть функций с ограничениями
Тонкий клиент по HTTPТа же публикация, но интерфейс быстрееКлиент ставят на каждый компьютер, версия должна совпадать с сервером
Тонкий клиент через VPNОфисная сеть, постоянные сотрудникиНужна настройка VPN, зато сервер 1С не публикуется в интернет
RDP или RemoteAppТяжёлые обработки, торговое оборудование, внешние компонентыЛицензии на терминальный доступ Windows, нагрузка на сервер
Облачная 1С по подпискеНет своего сервера и администратораЕжемесячная плата, ограничения на доработки

Тонкий клиент по HTTP использует ту же публикацию, что и веб-клиент. В окне «Добавление информационной базы» выберите «На веб-сервере» и укажите адрес https://сервер/buh/. Поэтому один раз настроенная публикация закрывает оба сценария.

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

Можно ли опубликовать на веб-сервере файловую базу?
Да. В строке подключения указывается File="путь к базе", а у пользователя веб-сервера должно быть право на изменение каталога базы. Для одновременной работы больше 2–3 человек лучше перевести базу в клиент-серверный вариант.
Нужна ли отдельная лицензия на веб-клиент?
Нет, отдельной лицензии нет. Сеанс веб-клиента расходует обычную клиентскую лицензию, как и тонкий клиент.
Работает ли веб-клиент на телефоне?
Открыть базу в мобильном браузере можно, но работать неудобно: интерфейс рассчитан на большой экран. Для смартфона удобнее мобильный клиент 1С с подключением к той же публикации.
Можно ли опубликовать несколько баз на одном веб-сервере?
Да. Каждой базе дают своё имя публикации и свой каталог: /buh/, /zup/, /ut/. Адреса различаются только последней частью.
Как зайти в веб-клиент сразу под нужным пользователем?
В адрес можно добавить параметр N=ИмяПользователя, например https://сервер/buh/ru_RU/?N=Иванова. Пароль в адрес не добавляйте: он сохранится в истории браузера.