Мы часто сталкиваемся с ситуацией, когда на одном физическом или виртуальном компьютере требуется запустить несколько служб сервера "1С:Предприятие 8". Это может быть обусловлено необходимостью использовать разные версии платформы, изолировать рабочие среды или тестировать новые конфигурации. Однако, при работе с программными лицензиями 1С, возникает распространенная и неочевидная проблема: даже если мы активируем лицензию, указывая конкретный порт одной из служб, другие службы сервера 1С на той же машине все равно видят эти лицензии и могут их расходовать. Это приводит к неконтролируемому "перетеканию" лицензий и неэффективному их использованию.
Давайте вместе разберемся, почему такое поведение наблюдается, какие распространенные заблуждения существуют на этот счет и, что самое главное, как правильно решить эту проблему, обеспечив корректное распределение лицензий.
Чтобы понять причину, нам нужно рассмотреть, как работают программные лицензии "1С:Предприятие". В отличие от аппаратных ключей HASP, программная лицензия привязывается не к конкретной службе или процессу ragent.exe, а к параметрам операционной системы и аппаратного обеспечения компьютера, на котором происходит активация. Это включает в себя такие данные, как MAC-адрес сетевой карты, идентификатор процессора, серийный номер жесткого диска, параметры операционной системы и другие уникальные характеристики.
Когда вы активируете программную лицензию, например, через утилиту или непосредственно из конфигуратора, вы действительно можете указать порт сервера 1С. Однако это указание служит лишь для того, чтобы утилита активации знала, к какому экземпляру агента сервера (ragent.exe) обратиться для выполнения процедуры активации. После успешной активации лицензионный файл (обычно с расширением .lic) сохраняется в общедоступный каталог на этом компьютере. На операционных системах Windows, как правило, это путь вида C:\ProgramData\1C\1Cv8\conf\ или в каталог установки платформы.
Суть проблемы заключается в следующем: любой экземпляр службы сервера 1С (ragent.exe, rphost.exe), запущенный на этом же компьютере, при старте или при необходимости получения лицензии, будет сканировать стандартные каталоги для поиска доступных файлов лицензий. Поскольку лицензионные файлы находятся в общедоступном месте и привязаны к "железу" машины, а не к конкретной службе, все запущенные на данной машине серверы 1С обнаруживают и используют один и тот же пул лицензий. Механизм изоляции лицензий между различными службами на одном и том же компьютере для программных лицензий в платформе "1С:Предприятие" не предусмотрен.
В попытке решить проблему "перетекания" лицензий, часто возникают вопросы о различных настройках и файлах. Давайте проанализируем некоторые из них.
Как мы уже выяснили, указание порта во время активации лицензии 1С служит исключительно для того, чтобы утилита активации могла установить связь с конкретным агентом сервера ragent.exe. Это необходимо для начала процедуры получения параметров оборудования и записи нового файла лицензии. Сам по себе этот порт никак не является параметром привязки лицензии к конкретной службе. После активации файл .lic сохраняется в общее хранилище, и любой другой сервер 1С на той же машине будет иметь к нему доступ.
В сообщении 1 верно подмечено, что файл nethasp.ini предназначен исключительно для работы с аппаратными ключами защиты HASP. Этот файл используется для настройки того, как клиентские приложения или сервер 1С ищут аппаратные ключи HASP (например, по сети, на определенном IP-адресе, локально). Он абсолютно не имеет отношения к поиску, использованию или разделению программных лицензий (файлов .lic). Поэтому любые попытки настройки nethasp.ini для решения проблемы с программными лицензиями будут безрезультатны.
В сообщении 5 упоминается возможность снять галку "Выдача лицензий сервером 1С" в свойствах информационной базы. Давайте разберем, что это за настройка и почему она не решает нашу проблему. Эта опция относится к клиентским лицензиям, которые сервер 1С выдает пользователям, подключающимся к информационным базам, обслуживаемым этим сервером. Она определяет, будет ли сервер приложений 1С выступать в роли "раздатчика" клиентских лицензий из своего пула пользователям, если те не смогли получить лицензию самостоятельно (например, с локального HASP-ключа или программной лицензии на клиентской машине). Эта настройка никак не влияет на то, какую серверную лицензию использует сам сервер приложений 1С для своей работы, а также не решает проблему "перетекания" программных лицензий между разными службами 1С на одном физическом сервере. Если галка снята, то пользователи должны будут получать клиентские лицензии другими способами (с локальных ключей или с выделенного сервера лицензирования).
В сообщении 6 затрагивается флаг "Установка на сервер". Этот флаг используется при активации многопользовательских клиентских программных лицензий (например, на 5 или 10 пользователей) и указывает, что лицензия будет использоваться сервером 1С для обслуживания сессий пользователей, подключающихся к нему (например, через терминальные сессии, веб-клиент или тонкий клиент без локальной лицензии). Активация такой лицензии на сервере позволяет ему выдавать сессии согласно количеству приобретенных рабочих мест. Этот флаг меняет только механизм подсчета используемых сессий для многопользовательской лицензии, но, как и предыдущие пункты, не предоставляет механизма изоляции лицензий между разными экземплярами служб сервера 1С на одном и том же компьютере.
Наиболее правильным, надежным и официально поддерживаемым решением для управления программными лицензиями "1С:Предприятие 8.3", особенно в сложных инфраструктурах с несколькими серверами или кластерами 1С, является организация выделенного сервера лицензирования. Этот механизм позволяет централизовать хранение и выдачу всех программных лицензий, исключая проблему "перетекания" и обеспечивая гибкость в управлении.
Давайте подробно рассмотрим, как это работает и какие преимущества дает.
Выделенный сервер лицензирования – это один из рабочих серверов в кластере "1С:Предприятие", которому назначается исключительно роль "Сервис лицензирования". Все программные лицензии (как клиентские, так и серверные) активируются именно на этом выделенном сервере. Другие рабочие серверы 1С (которые обслуживают информационные базы) затем обращаются к этому централизованному серверу для получения необходимых лицензий по сети.
Для организации выделенного сервера лицензирования вам не требуется приобретать дополнительные лицензии. Вы можете использовать один из существующих серверов вашего кластера 1С, или же развернуть новый, с минимальными требованиями к ресурсам.
Нам необходимо выбрать физический или виртуальный сервер, который будет выполнять роль сервиса лицензирования. Крайне важно, чтобы аппаратная конфигурация этого сервера была максимально стабильной и не менялась в дальнейшем, чтобы избежать необходимости повторной активации лицензий. Идеальный вариант — отдельная виртуальная машина с фиксированным набором виртуального оборудования.
Убедимся, что на выбранном сервере установлена необходимая версия платформы "1С:Предприятие", включающая компоненты сервера 1С. Обычно достаточно установить полный дистрибутив сервера 1С.
Если у вас уже есть кластер, просто добавьте выбранный сервер в него. Если кластера нет, создайте новый кластер и добавьте в него этот сервер.
Самый важный шаг – это конфигурирование роли рабочего сервера в консоли администрирования кластера 1С. Мы разберем его подробнее:
Пример настройки функциональности:
// В консоли администрирования кластера 1С:
// Кластер -> Рабочие сервера -> [Имя_Вашего_Сервера] -> Свойства
// Раздел "Требования назначения функциональности":
// [ ] Рабочие процессы
// [ ] Фоновые задания
// [ ] Менеджер кластера
// [ ] Центральный сервер
// [X] Сервис лицензирования
Все имеющиеся у вас программные лицензии (как клиентские, так и серверные) следует активировать именно на этом выделенном сервере. Это можно сделать через конфигуратор (в режиме запуска, выбрав пункт "Получение лицензии"), либо с помощью утилиты lichelper.exe, указывая IP-адрес и порт агента сервера лицензирования.
Важно помнить, что активированные лицензии будут привязаны к аппаратному обеспечению этого конкретного сервера. Поэтому стабильность его конфигурации является ключевым фактором.
Другие кластеры 1С, которые работают на ваших основных серверах приложений, автоматически обнаружат этот выделенный сервис лицензирования в своей сети и будут запрашивать лицензии у него. Никаких дополнительных специфических настроек (вроде указания IP-адреса сервера лицензирования в каждом клиенте или сервере) обычно не требуется, так как механизм поиска лицензий реализован на уровне платформы.
Таким образом, организация выделенного сервера лицензирования 1С является стандартом в корпоративной среде и позволяет нам эффективно и надежно управлять всеми программными лицензиями, полностью исключая проблему их "перетекания" между разными службами 1С на одном или нескольких компьютерах.