При публикации информационных баз 1С на веб-серверах (Apache или IIS) системные администраторы часто сталкиваются с ситуацией, когда веб-клиент не может обнаружить клиентские лицензии, либо их включение на стороне сервера приводит к лавинообразному перерасходу доступных рабочих мест. В типовой терминальной инфраструктуре один пользователь может работать одновременно с несколькими базами данных, занимая всего одну физическую лицензию на устройство. Однако при переходе на веб-клиент или включении раздачи лицензий сервером каждое новое окно или вкладка начинают списывать отдельную лицензию.
В этой статье мы подробно разберем архитектуру лицензирования платформы 1С:Предприятие 8.3, выясним, почему веб-браузер технически не способен искать аппаратные ключи самостоятельно, и найдем оптимальные варианты конфигурации для терминального доступа, тонкого клиента и бесшовной интеграции с 1С:Документооборот.
---
Разберем базовый принцип взаимодействия клиентских приложений с системой лицензирования. В экосистеме 1С существует принципиальная разница между классическими клиентами (толстый и тонкий) и веб-клиентом (интернет-браузером):
HASP License Manager по протоколу TCP/UDP через порт 475 или проверять локальные программные файлы лицензий (.lic).В случае с веб-клиентом фактическим клиентом для платформы является модуль расширения веб-сервера (wsap24.dll, wsap22.dll или wsisapi.dll). Именно веб-сервер или кластер серверов 1С запрашивает лицензию от имени пользователя. При этом действуют строгие правила выдачи:
Любая лицензия, выдаваемая сервером 1С или веб-сервером, всегда является лицензией на сеанс (per-session). Это означает, что если один и тот же сотрудник откроет 4 вкладки в браузере или подключится к 4 базам через веб-сервер, кластер спишет ровно 4 лицензии из общего пула.
---
Проанализируем две основные модели учета клиентских лицензий, доступные в платформе:
Лицензию получает клиентское приложение на локальном ПК или в терминальной RDP-сессии напрямую через службу HASP LM. Менеджер лицензий фиксирует связку сетевого имени компьютера и IP-адреса (а в среде Remote Desktop Services — уникальный ID сеанса терминала). Пользователь может запустить 10 конфигураций 1С одновременно, но менеджер выделит ему ровно 1 аппаратную лицензию на весь сеанс ОС.
Лицензированием управляет рабочий процесс rphost сервера 1С или модуль веб-сервера. В свойствах информационной базы в консоли администрирования кластера включен параметр Разрешить выдачу лицензий сервером 1С:Предприятия = Да. Сервер забирает лицензии у аппаратного ключа или многопользовательской программной лицензии и прикрепляет по одной лицензии к каждому входящему соединению. В этом режиме 1 пользователь с 5 открытыми базами забирает 5 лицензий.
Если в организации используется много баз (например, 20–40 учетных баз для группы компаний), использование схемы «на сеанс» моментально приводит к блокировке работы из-за исчерпания пула доступных лицензий.
---
Часто путают публикацию базы на веб-сервере с работой через веб-клиент. Публикация базы на веб-сервере позволяет подключаться к ней двумя способами:
http://web-server/Base_Buh/).При использовании тонкого клиента через веб-сервер платформа сначала пытается найти лицензию локально на рабочем месте (через HASP LM или программную лицензию). Если локальная лицензия найдена, тонкий клиент передает на веб-сервер специальный маркер валидности, и сервер 1С не тратит свою серверную лицензию на это подключение.
Чтобы заставить тонкий клиент искать лицензию самостоятельно, выполним следующие шаги:
Использовать аппаратный ключ защиты (HASP)).Разрешить выдачу лицензий сервером 1С:Предприятия (установим значение Нет).---
Если в локальной сети установлено несколько физических USB-ключей NetHASP на разных серверах, клиенты на терминальном сервере могут работать нестабильно из-за широковещательных запросов (Broadcast). По умолчанию 1С опрашивает сеть широковещательными пакетами и фиксирует только первый ответивший ключ. Когда на нем заканчиваются лицензии, платформа выдает ошибку Не найдена клиентская лицензия, игнорируя остальные доступные ключи в сети.
Разберем по шагам, как правильно настроить конфигурационный файл nethasp.ini на терминальном сервере:
C:\Program Files\1cv8\conf\ или C:\Program Files (x86)\1cv8\conf\, либо папка bin соответствующего релиза).nethasp.ini в текстовом редакторе от имени Администратора.HASP License Manager:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
; Явно перечисляем IP-адреса всех серверов с HASP LM через запятую
NH_SERVER_ADDR = 192.168.1.10, 192.168.1.11, 192.168.1.12
; Отключаем широковещательную рассылку
NH_USE_BROADCAST = Disabled
; Задаем таймауты подключения в секундах
NH_SESSION = 5
NH_SEND_RCV = 2
; Порт по умолчанию для NetHASP License Manager
NH_PORT_NUMBER = 475
Благодаря этой настройке пользователи терминального сервера при запуске 1С последовательно опрашивают все указанные серверы лицензирования. При этом каждый пользователь в рамках своей RDP-сессии расходует строго 1 аппаратную лицензию независимо от количества одновременно открытых баз.
---
Нередко публикация базы на веб-сервере требуется исключительно для интеграции с конфигурацией 1С:Документооборот. Рассмотрим принципы работы этого механизма:
1C:Бухгалтерия или 1С:ERP), а данные из 1С:Документооборот подтягиваются в фоновом режиме через веб-сервисы опубликованной базы.Бухгалтерия предприятия КОРП). В версиях ПРОФ штатная бесшовная интеграция отсутствует: для ее работы требуется либо апгрейд конфигурации до уровня КОРП, либо внедрение модуля интеграции через специализированное расширение.1С:Документооборот требуется лицензия. Чтобы не включать общую раздачу лицензий сервером на всех базах, администратор может применить Требования назначения функциональности в консоли кластера 1С, разрешив сервис лицензирования только для конкретной базы 1С:Документооборот или выделив под веб-сервисы отдельный пул лицензий.---
| Тип клиента / подключение | Кто ищет лицензию | Тип учета лицензий | Расход при 5 открытых базах |
|---|---|---|---|
| Веб-клиент (Браузер) | Веб-сервер / Сервер 1С | На каждый сеанс (per-session) | 5 лицензий |
| Тонкий клиент через веб (HTTP) | Тонкий клиент (локально / HASP LM) | На рабочее место (per-host) | 1 лицензия |
| Тонкий/Толстый клиент в RDP | Клиент в сессии RDP (через nethasp.ini) | На сеанс ОС (per-host) | 1 лицензия |
| Клиент-сервер (раздача сервером = Да) | Кластер серверов 1С | На каждый сеанс (per-session) | 5 лицензий |
---
Для устранения проблем с нехваткой лицензий выполним следующие действия:
Разрешить выдачу лицензий сервером 1С:Предприятия = Нет.