При развертывании инфраструктуры 1С часто возникает задача изолировать лицензии между разными информационными базами. Типичный пример: на одном сервере работают тяжелые учетные системы (например, Бухгалтерия предприятия или Зарплата и управление персоналом) и небольшая сервисная база (например, HelpDesk). Руководство компании хочет жестко выделить под HelpDesk ровно 10 конкретных лицензий, чтобы пользователи этой базы не занимали лицензии из основного пула компании, и наоборот.
Стандартный механизм платформы распределяет лицензии динамически по принципу «кто первый зашел, тот и забрал». Однако решить задачу изоляции пулов на одном физическом сервере вполне реально. Давайте подробно разберем несколько профессиональных способов реализации этой задачи.
Это самый надежный и доступный способ разделения лицензий, если у вас нет лицензий уровня КОРП. Мы запустим на одном физическом сервере две независимые службы 1С:Предприятия. Основная служба будет обслуживать учетные базы на стандартных портах, а вторая служба — базу HelpDesk на альтернативных портах.
Выполним настройку по шагам:
usr1cv8_helpdesk. Это необходимо для того, чтобы изолировать файлы программных лицензий. Платформа ищет файлы лицензий в профиле пользователя, от имени которого запущена служба.srvinfo_helpdesk:
sc create "1C_Enterprise_8.3_Helpdesk" binPath= "\"C:\Program Files\1cv8\8.3.23.1865\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"C:\srvinfo_helpdesk\"" start= auto obj= ".\usr1cv8_helpdesk" password= "MyStrongPassword123"
HelpDesk, подключившись к серверу через новый порт 2541 (строка подключения будет выглядеть как localhost:2541). При запросе лицензии активируем наш 10-пользовательский программный ключ. Файлы лицензий с расширением .lic запишутся в профиль пользователя usr1cv8_helpdesk.usr1cv8, она физически не увидит файлы лицензий из папки профиля usr1cv8_helpdesk. В результате база HelpDesk будет использовать строго свои 10 лицензий, а основные базы — свой собственный пул.Если база HelpDesk будет опубликована на веб-сервере (Apache или IIS) для работы через браузер или тонкий клиент по HTTP, мы можем переложить задачу раздачи лицензий с сервера 1С на веб-сервер.
Рассмотрим по шагам, как это реализовать:
HelpDesk и установим параметр «Разрешить выдачу лицензий сервером 1С:Предприятия» в значение Нет. Теперь сервер приложений 1С принципиально не будет выдавать лицензии клиентам этой базы.HelpDesk.bin установленного веб-сервера (где лежит модуль расширения веб-сервера 1С) поместим индивидуальный файл настроек nethasp.ini.
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.15 ; IP-адрес машины с 10-пользовательским ключом
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = UDP
Для публикации остальных баз (Бухгалтерия, ЗУП) будем использовать стандартный веб-сервер, в файле nethasp.ini которого пропишем IP-адрес основного менеджера лицензий. Таким образом, веб-клиенты будут брать лицензии из строго разделенных аппаратных ключей.
Если у вас развернут кластер 1С с лицензиями уровня КОРП, мы можем управлять распределением лицензий штатными средствами платформы без создания дополнительных служб в операционной системе.
Выясним, как настроить маршрутизацию сеансов внутри кластера:
Сервер_HelpDesk.Сервера_HelpDesk.HelpDesk.После применения этих настроек платформа будет автоматически перенаправлять все сеансы пользователей, подключающихся к базе HelpDesk, на выделенный рабочий сервер, который будет выдавать лицензии исключительно из своего локального пула в 10 штук.
Для конфигураций КОРП доступен еще один современный и изящный метод контроля количества подключений — механизм Внешнего управления сеансами. Он позволяет ограничить количество пользователей на программном уровне, не привязываясь к физическим ключам.
Проанализируем схему работы этого механизма:
HelpDesk кластер 1С отправляет HTTP-запрос к этому веб-сервису.Пример структуры JSON-ответа от веб-сервиса, блокирующего 11-е подключение:
{
"action": "Reject",
"reason": "Превышено максимальное количество одновременно работающих пользователей для базы HelpDesk (лимит 10 сеансов)."
}
Этот способ позволяет гибко управлять доступом и гарантирует, что база HelpDesk физически не сможет занять более 10 лицензий из общего сетевого пула компании.
Если вы планируете использовать для разделения пулов аппаратные USB-ключи (HASP), необходимо учитывать важнейшее ограничение драйверов SafeNet:
Нельзя вставлять два сетевых ключа одной серии (например, два ключа ORGL8 на 10 и на 50 пользователей) в один физический компьютер. Операционная система и менеджер лицензий увидят только один из этих ключей (выбранный случайным образом), а второй ключ будет полностью проигнорирован.
Чтобы обойти это ограничение, выполните следующие действия:
HASP License Manager.nhsrv.ini на машине с 10-пользовательским ключом вы можете использовать параметр NHS_IP_LIMIT, чтобы разрешить забирать лицензии только веб-серверу базы HelpDesk, полностью закрыв доступ для остальных компьютеров сети.Использование описанных методов позволит вам гибко настроить ИТ-инфраструктуру предприятия, оптимизировать затраты на лицензирование и гарантировать стабильную работу критически важных бизнес-приложений.