При работе с программными лицензиями "1С:Предприятие" часто возникает вопрос эффективного распределения ресурсов. Одной из наиболее актуальных задач для системных администраторов является настройка системы таким образом, чтобы одна многопользовательская лицензия закреплялась за сессией пользователя в терминальном режиме (RDP), а не расходовалась на каждое открытое окно программы. Рассмотрим подробно, как работает этот механизм, и проанализируем необходимые настройки для достижения оптимального результата.
Для начала разберем, как платформа 1С может подсчитывать лицензии. Существует два основных подхода:
Для реализации второго варианта крайне важно понимать условия, при которых лицензия считается именно "терминальной". Проанализируем требования документации и практический опыт специалистов.
Как указано в руководстве администратора (пункт 9.2.3.8), при работе на терминальном сервере обеспечивается запуск произвольного количества экземпляров системы в режиме "1С:Предприятие" или "Конфигуратор" для каждого одновременного подключения к терминальному серверу. Это означает, что если многопользовательская лицензия активирована непосредственно на хосте терминального сервера, платформа распознает это и применяет экономный режим подсчета.
Рассмотрим по шагам, что нужно сделать для правильной работы:
.lic должны располагаться в общих каталогах сервера, доступных всем пользователям. Обычно это путь C:\ProgramData\1C\1cv8\conf.HASP License Manager. Этот программный продукт предназначен исключительно для работы с аппаратными (USB) ключами защиты. Для программных лицензий (те, что активируются пин-кодами) он абсолютно бесполезен и никак не влияет на раздачу лицензий. Платформа 1С сама сканирует локальные папки на наличие файлов .lic.Выясним причину, по которой иногда лицензии все равно расходуются "посеансно", несмотря на наличие терминала. Это часто случается в клиент-серверных вариантах работы. Рассмотрим приоритетность поиска лицензии платформой:
1. Сначала клиентское приложение (запущенное в RDP-сессии) пытается найти лицензию локально на терминальном сервере. Если оно находит там активированную многопользовательскую программную лицензию, оно занимает одно рабочее место в рамках этой сессии ОС.
2. Если локальная лицензия не найдена, клиент обращается к серверу приложений 1С:Предприятия. Если на сервере приложений разрешена выдача лицензий (в настройках информационной базы стоит параметр Разрешить выдачу лицензий сервером — Да), сервер выдает лицензию из своего пула. Внимание: в этом случае лицензия всегда выдается на каждый конкретный сеанс (окно), и экономии не будет!
Следовательно, для работы в режиме "одна лицензия на RDP-сессию" необходимо, чтобы лицензии были активированы именно на терминальном сервере, а в настройках базы данных (через консоль администрирования кластера) желательно контролировать, кто именно выдает лицензию.
Многие задаются вопросом: меняется ли что-то при использовании RemoteApp? Проанализируем ситуацию: RemoteApp — это по сути та же терминальная сессия, в которой пользователю отображается только окно конкретного приложения. С точки зрения лицензирования 1С, все запущенные окна RemoteApp одного пользователя группируются в одну сессию операционной системы. Поэтому правило остается прежним: один пользователь RemoteApp = одна лицензия, при условии локальной активации на сервере.
Для контроля за тем, сколько лицензий занято и какие именно файлы используются, можно использовать встроенные средства или утилиты командной строки. Рассмотрим использование утилиты ring, которая входит в состав современных версий платформы.
Для просмотра информации о лицензиях можно использовать следующие команды в консоли (командной строке):
// Получение списка установленных лицензий через утилиту ring
ring liccntrl list --path "C:\ProgramData\1C\1cv8\conf"
// Просмотр детальной информации по конкретной лицензии
ring liccntrl info --name 20230510120000.lic
Также полезно использовать консоль "Администрирование серверов 1С Предприятия". В списке сеансов колонка "Лицензия" наглядно показывает, является ли лицензия локальной (будет указан путь к файлу на терминале) или серверной (будет указано, что лицензия выдана сервером приложений).
Программные лицензии крайне чувствительны к изменению параметров оборудования. Разберем основные моменты, которые могут привести к "слету" лицензии:
Таким образом, мы выяснили, что для решения задачи автора достаточно активировать многопользовательскую лицензию непосредственно на терминальном сервере, используя соответствующий пин-код. Это автоматически переведет систему в режим подсчета по RDP-сессиям, обеспечив существенную экономию лицензий для пользователей, работающих одновременно с несколькими базами или конфигурациями.