Стоит ли использовать веб-клиент 1С в браузере для большого количества пользователей и B2B-порталов?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

Организация доступа сотрудников и внешних контрагентов к информационной базе 1С:Предприятие через интернет — распространенная задача при масштабировании бизнеса и создании B2B-решений. На первый взгляд, использование встроенного веб-клиента в интернет-браузере кажется идеальным решением: не требуется устанавливать платформу на рабочие места клиентов, а вся разработка интерфейсов ведется исключительно средствами 1С. Однако на практике при работе сотен пользователей компании часто сталкиваются с существенными проблемами производительности, блокировками и зависаниями сеансов. Разберем, как устроен веб-клиент, почему он создает повышенную нагрузку и какие архитектурные альтернативы существуют.

Преимущества и ключевые недостатки веб-клиента

Рассмотрим сильные и слабые стороны использования веб-клиента напрямую через браузер.

Основные плюсы:

  1. Скорость разработки: вся бизнес-логика и интерфейсы создаются программистами 1С в привычной среде конфигуратора без необходимости привлечения frontend- и backend-веб-разработчиков.
  2. Отсутствие клиентского ПО: для входа в систему пользователю достаточно иметь современный браузер и ссылку на публикацию базы.
  3. Кроссплатформенность: возможность работы с базой данных на различных операционных системах без адаптации нативных дистрибутивов.

Критические минусы и риски:

  1. Высокие аппаратные требования к дисковой подсистеме и памяти: веб-сервер и кластер серверов 1С активно работают с файловой системой и кэшем. При нехватке производительности дисков и оперативной памяти запросы выстраиваются в очередь, приводя к зависанию сеансов всех пользователей.
  2. Различия в отображении и поведении: код и сложные элементы форм, стабильно работающие в нативном тонком клиенте, в веб-клиенте могут выполняться с ошибками или отрисовываться некорректно из-за ограничений браузерного движка.
  3. Стоимость лицензирования: каждый активный сеанс внешнего пользователя в веб-клиенте занимает отдельную клиентскую лицензию платформы «1С:Предприятие», что делает реализацию открытых B2B-кабинетов экономически затратной.
  4. Ограничения безопасности: прямая публикация основной учетной базы наружу увеличивает поверхность потенциальных атак при ошибках настройки прав доступа (RLS) или веб-сервера.

Почему веб-клиент создает бóльшую нагрузку, чем тонкий клиент?

Проанализируем технические различия в обработке запросов тонким и веб-клиентом. В теории оба варианта используют тонкий протокол взаимодействия с сервером, однако механизм визуализации кардинально отличается:

  1. Трансляция метаданных и генерация DOM: при открытии формы в тонком клиенте сервер передает компактные сериализованные данные, которые быстро обрабатываются скомпилированным C++ движком платформы. В веб-клиенте серверу и веб-серверу требуется перевести метаданные формы в массив JavaScript, HTML и CSS, а браузеру клиента — построить и отрендерить сложное DOM-дерево. Это увеличивает время отклика и дополнительно нагружает процессор веб-сервера.
  2. Время удержания серверных соединений: если форма документа в тонком клиенте открывается за условные 0.3 секунды, то в веб-клиенте та же операция может занимать 0.5–1 секунду. Пока форма генерируется, клиент удерживает активное соединение с сервером. В условиях одновременной работы сотен пользователей очередь запросов накапливается значительно быстрее, вызывая каскадные задержки для остальных подключений.
  3. Передача контекста формы: если при разработке управляемых форм не соблюдается строгая оптимизация вызовов и логика выполняется через серверные процедуры с передачей контекста формы, объем трафика между браузером и сервером возрастает на порядки, что критично сказывается на времени отклика.

Практические рекомендации по оптимизации работы через веб

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

  1. Приоритет тонкого клиента: по возможности переводите постоянных сотрудников компании на работу через тонкий клиент, подключенный по протоколу HTTP/HTTPS к веб-серверу. Это сохраняет преимущества централизованного доступа через веб, но снимает с сервера нагрузку по генерации тяжелого HTML/JS-кода.
  2. Использование 64-битного стека: публикация должна выполняться исключительно на 64-битных версиях веб-сервера (Apache или IIS) и сервера «1С:Предприятия» с размещением служебных каталогов на быстрых NVMe/SSD накопителях.
  3. Настройка веб-сервера и сжатия: обязательно включаем gzip/deflate-сжатие статического контента на веб-сервере и настраиваем параметры файла default.vrd, ограничивая время жизни «зависших» неактивных сессий.
  4. Оптимизация кода форм: минимизируем серверные вызовы из клиентского модуля, исключаем использование модальных методов и переносим вспомогательные серверные расчеты в процедуры с директивой &НаСервереБезКонтекста.

Посмотрим на пример правильного разделения контекста при вызове серверной логики из формы:


&НаКлиенте
Процедура ОбработатьВыборТовара(Команда)
    ПараметрыРасчета = ПолучитьПараметрыНаКлиенте();
    
    // Вызываем сервер без передачи тяжелого контекста всей формы
    Результат = РассчитатьЦенуНаСервере(ПараметрыРасчета);
    
    ПрименитьРезультатНаКлиенте(Результат);
КонецПроцедуры

&НаСервереБезКонтекста
Функция РассчитатьЦенуНаСервере(Знач ПараметрыРасчета)
    // Серверная обработка данных без контекста элементов управления
    Возврат ЦенообразованиеСервер.ПолучитьЦену(ПараметрыРасчета.Номенклатура, ПараметрыРасчета.ВидЦены);
КонецФункции

Альтернативные архитектурные решения для B2B-порталов

Для создания высоконагруженных клиентских кабинетов и порталов самообслуживания на сотни и тысячи пользователей рекомендуется отказаться от прямого браузерного веб-клиента в пользу специализированных интеграционных подходов:

  1. Раздельная архитектура (Frontend + HTTP-сервисы 1С): пользовательский интерфейс разрабатывается на базе современных веб-технологий (React, Vue, Angular) или готовой CMS. Вся коммуникация с базой 1С выполняется через встроенные HTTP-сервисы платформы или интерфейс OData (REST API). При таком подходе учетная база скрыта во внутреннем контуре, внешние запросы не тратят пользовательские клиентские лицензии 1С, а скорость работы интерфейса не зависит от ограничений форм платформы.
  2. Промежуточная база данных: внешние веб-сервисы взаимодействуют с изолированной базой данных (например, PostgreSQL или MySQL), куда регламентными заданиями или брокерами сообщений выгружаются остатки, прайс-листы и статусы заказов. Это полностью исключает влияние внешних пользователей на стабильность работы операторов учетной системы.
← На главную