При проектировании и настройке клиент-серверной архитектуры «1С:Предприятие 8» одним из самых сложных и запутанных вопросов является лицензирование. Особенно остро эта проблема встает при совместном использовании серверов терминалов (RDS), серверов приложений «1С» и различных типов ключей защиты — программных (активируемых по пин-кодам) и аппаратных (USB-ключей HASP). Попробуем детально разобраться, как именно система подсчитывает лицензии в различных сценариях работы, и как настроить инфраструктуру так, чтобы минимизировать расходы и избежать переплат за лишние лицензии.
Для понимания логики расхода лицензий необходимо уяснить базовое правило: поведение системы защиты зависит от того, кто именно выдает лицензию клиенту — терминальный сервер (локально на стороне клиента) или сервер приложений «1С:Предприятие».
Сценарий 1: Лицензии раздает сервер «1С:Предприятия» (Режим «На соединение»)
Если программные лицензии активированы на сервере «1С» (или на сервере установлены многопользовательские USB-ключи) и в настройках информационных баз включена опция «Разрешить выдачу лицензий сервером 1С», то сервер берет на себя роль диспетчера лицензий. В этом случае действует жесткое правило: одно подключение (один запуск базы) = одна лицензия.
Проанализируем эту ситуацию на примере: если один и тот же пользователь, находясь внутри своей терминальной сессии (или за обычным рабочим ПК), запускает одновременно конфигурацию «Бухгалтерия предприятия», «Зарплата и управление персоналом» и «Управление торговлей», то сервер приложений «1С» спишет из общего пула ровно три лицензии. Тип клиента при этом значения не имеет — тонкий клиент и толстый клиент расходуют лицензии абсолютно одинаково.
Сценарий 2: Лицензии активированы локально на терминальном сервере (Режим «На сессию»)
Если многопользовательская программная лицензия активирована непосредственно на сервере терминалов (в режиме активации «На этот компьютер» для всех пользователей), то раздачей лицензий управляет сам терминальный сервер. В этом случае работает более экономичное правило: одна терминальная сессия (RDP-сессия) = одна лицензия.
Рассмотрим, как это работает на практике. Пользователь подключается к серверу терминалов по RDP. Платформа «1С» при запуске находит локальную лицензию на этом сервере терминалов. Теперь внутри этой конкретной RDP-сессии пользователь может запустить неограниченное количество баз данных (хоть 10 штук одновременно) — система потратит всего одну лицензию из общего пула.
Чтобы управлять расходом лицензий, необходимо точно знать, в каком порядке платформа ищет ключ защиты при запуске клиентского приложения. Рассмотрим этот алгоритм по шагам:
1cv8conn.pfl на предмет информации о последнем успешном подключении..lic в локальных каталогах компьютера (или в общедоступных папках терминального сервера).HASP License Manager (настройки этого поиска регулируются конфигурационным файлом nethasp.ini).Выяснив этот алгоритм, мы можем сделать важный вывод: если вы хотите экономить лицензии в терминальном режиме, необходимо настроить систему так, чтобы платформа находила лицензии на шаге 2 (локально на RDS) и не доходила до шага 5 (запрос к серверу «1С»). Для этого на сервере приложений «1С» в свойствах баз следует отключить параметр «Разрешить выдачу лицензий сервером 1С».
Часто в организациях одновременно присутствуют и аппаратные USB-ключи, и новые программные лицензии. При их совмещении нужно учитывать важные технические ограничения:
Ограничение по установке одинаковых USB-ключей: На один физический компьютер или одну виртуальную машину невозможно установить два многопользовательских USB-ключа одного номинала (например, два ключа по 10 пользователей). Драйвер защиты HASP увидит только один из них, а второй будет игнорироваться. Чтобы использовать оба ключа, их придется разносить на разные физические компьютеры в локальной сети и запускать на каждом свой собственный HASP License Manager.
С программными лицензиями таких проблем нет. Вы можете активировать на одном сервере файлы лицензий любых номиналов (например, ключ на 5, на 10 и на 20 пользователей), и платформа корректно просуммирует их общую емкость.
Смешивание типов лицензий: Если сервер «1С» настроен на раздачу лицензий, он может забирать свободные лицензии как со своих программных файлов, так и с доступных сетевых USB-ключей через менеджер лицензий. Однако помните: как только сервер «1С» забирает лицензию с USB-ключа для выдачи удаленному клиенту, она автоматически переходит в режим работы «одно подключение = одна лицензия».
Программная лицензия «1С» жестко привязывается к ключевым параметрам аппаратной части компьютера (материнская плата, процессоры, объем оперативной памяти, сетевые адаптеры, сетевое имя, UUID операционной системы и т.д.). Любое изменение этих параметров приводит к тому, что лицензия «слетает» и требует повторной активации с помощью резервного пин-кода.
При развертывании серверов «1С» или серверов терминалов в виртуальной среде (Hyper-V, VMware, Proxmox) это создает серьезные риски:
Для крупных и динамически масштабируемых систем рекомендуется использовать специальный Сервер лицензирования «1С». Это отдельная служба (или выделенный небольшой виртуальный сервер с жестко зафиксированными характеристиками), на которой активируются все программные ключи организации. Основные рабочие серверы приложений «1С» при этом могут свободно масштабироваться, менять процессоры и память — они просто запрашивают лицензии по сети у стабильного сервера лицензирования, что полностью исключает риски внезапной блокировки ключей.
При локальной активации программных лицензий на сервере терминалов (RDS) для правильной работы пользователей необходимо соблюдать следующие правила:
Права доступа к файлам лицензий: Чтобы любой пользователь терминала мог воспользоваться активированной лицензией, файлы с расширением .lic должны находиться в каталоге, к которому у всех пользователей есть права на чтение. В операционных системах Windows таким каталогом является папка: C:\ProgramData\1C\licenses. Если активировать лицензию в профиле администратора (например, в папке C:\Users\Администратор\AppData\Local\1C\...), то обычные пользователи запустить «1С» не смогут.
Лимиты на RDP-сессии: Платформа накладывает ограничение на количество одновременных обращений к одному файлу лицензии. С одного компьютера (или из одной RDP-сессии) к одному файлу программной лицензии могут одновременно обращаться не более 256 процессов. В масштабах крупных терминальных ферм это требует грамотного разделения и распределения файлов лицензий.
Проанализируем исходную задачу автора темы: имеется терминальный сервер (на котором работают бухгалтеры с большим количеством открытых баз) и рабочие места локальной сети, подключающиеся напрямую. В наличии есть программные лицензии (25 штук) и USB-ключ HASP (на 10 пользователей).
Рассмотрим оптимальный вариант настройки такой архитектуры: