Почему 1С запрашивает лицензии при работе через веб-клиент в самописной конфигурации?

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

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

Лицензирование платформы vs Лицензирование конфигурации

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

Согласно лицензионному соглашению, каждое рабочее место, на котором запускается платформа 1С, должно быть обеспечено клиентской лицензией. Исключение составляют лишь случаи разработки, предусмотренные технологическими поставками, но и они жестко ограничены количеством одновременных сеансов. Таким образом, аргумент "у нас свой продукт" не освобождает от необходимости покупки лицензий на саму платформу для каждого пользователя.

Почему в RDP работает «сколько угодно» пользователей, а в веб-клиенте нет?

Разберем техническую сторону вопроса. В случае работы через Remote Desktop Protocol (RDP) клиентское приложение 1С запускается непосредственно в сессии пользователя на сервере. В этой ситуации проверка лицензии выполняется исполняемыми файлами самой платформы. Если на сервере применены средства обхода защиты (так называемые «патчи» или эмуляторы), проверка лицензии может игнорироваться кодом приложения.

Ситуация кардинально меняется при публикации базы на веб-сервере (Apache или IIS). Выясним причину: при использовании веб-клиента за проверку лицензий отвечает модуль расширения веб-сервера. Этот компонент работает независимо от клиентских «патчей» и обращается напрямую к системе защиты. Модуль веб-сервера строго следует правилу: одна программная однопользовательская лицензия — один сеанс. Если первый пользователь занял лицензию, второй получит отказ, так как веб-сервер «видит» реальное состояние доступных ключей или лицензионных файлов.

Особенности программных лицензий на терминальном сервере

Проанализируем поведение программных лицензий (файлов с расширением .lic). Существует два типа таких лицензий:

  1. Однопользовательская: предназначена для запуска любого количества сеансов 1С на одном конкретном компьютере (или в рамках одной RDP-сессии). Однако при попытке использовать её через веб-сервер, она превращается в сеансовую лицензию, выдаваемую на одно подключение.
  2. Многопользовательская: позволяет запускать определенное количество сеансов с любых компьютеров. Именно такие лицензии рекомендуются для работы через веб-сервер или в крупных терминальных фермах.

Важно помнить, что официально однопользовательская лицензия в терминальном режиме не позволяет работать нескольким пользователям одновременно, даже если технически (из-за особенностей настройки или взлома) это удается реализовать.

Диагностика текущих лицензий: как читать окно «О программе»

Чтобы понять, какая именно лицензия используется в данный момент, рассмотрим раздел «О программе». Посмотрим на пример данных, которые могут там отображаться:


Текущая:
803001209, клиент, 22.01.2019 0:00:00, CVN-654-321.lic, получило клиентское приложение
Информационная база:
Локальный HASP4 ORGL8 10
Локальный HASP4 ORGL8 100
Конфигурация:
Локальный HASP4 ORGL8 500

Разберем эти данные по шагам:

Настройка времени жизни сессий в веб-клиенте

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

В файле публикации default.vrd на веб-сервере можно управлять параметрами сеансов. Проанализируем структуру настроек:


<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="/MyBase"
       ib="Srvr="Server1C";Ref="MyBase";">
    <standardOdata enable="false"/>
    <publish>
        <sessions timeout="600" />
    </publish>
</point>

Параметр sessions timeout позволяет ограничить время жизни «брошенного» сеанса. Также полезно настроить в самой информационной базе время засыпания пассивного сеанса. Это позволит платформе высвобождать лицензию для другого пользователя, если текущий не проявляет активности в течение 5–10 минут.

Выводы и рекомендации

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

  1. Проверить легальность: Убедитесь, что количество приобретенных клиентских лицензий соответствует количеству реальных пользователей.
  2. Использовать многопользовательские лицензии: Для веб-сервера это наиболее прозрачный и простой в настройке вариант.
  3. Обучить пользователей: Настаивайте на том, чтобы сотрудники нажимали кнопку «Завершить работу» (или «Выход») в интерфейсе 1С, а не просто закрывали браузер. Это мгновенно освобождает лицензию в пуле веб-сервера.
  4. Настроить таймауты: Установите разумные ограничения на время активности сеансов в настройках публикации default.vrd.

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

← На главную