При работе с системой 1С:Предприятие часто возникает необходимость использовать различные типы лицензий одновременно: часть пользователей работает с аппаратными ключами (USB-ключи HASP), а другая часть — с программными лицензиями, например, через веб-клиент или на терминальном сервере. Такая смешанная среда может стать источником сложностей, если не настроить её должным образом. Мы вместе разберем, как избежать конфликтов и обеспечить корректное получение лицензий каждым типом пользователей, предотвратив нежелательное потребление программных лицензий там, где должны использоваться аппаратные, и наоборот.
Прежде всего, давайте выясним причину возникновения таких проблем. Система 1С:Предприятие имеет определенный алгоритм поиска лицензий. По умолчанию, при наличии программных и аппаратных лицензий, клиентское приложение сначала пытается использовать программные лицензии, затем переходит к поиску локального аппаратного ключа HASP, далее ищет многопользовательский аппаратный ключ по сети через HASP License Manager. И только после этого, в клиент-серверном варианте, делается запрос к серверу 1С на получение лицензии (сначала программной, затем аппаратной).
Веб-клиент, в свою очередь, работает иначе: он не может использовать локальные или сетевые аппаратные ключи HASP. Для веб-клиента лицензия всегда должна быть предоставлена сервером 1С:Предприятия или, для файловых баз, быть доступна на машине веб-сервера. Это ключевое отличие, которое мы учтем при настройке.
Для эффективного управления лицензиями на сервере 1С:Предприятия, особенно в смешанной среде, нам потребуется выполнить несколько важных шагов:
Убедимся, что на сервере 1С:Предприятия нет клиентского аппаратного ключа. Если на машине, где установлен агент сервера 1С, присутствует физический клиентский HASP-ключ, это может привести к непредсказуемому поведению при выдаче лицензий. Сервер должен работать с серверной лицензией 1С:Предприятия, а клиентские лицензии должны либо выдаваться им программно, либо находиться на клиентских машинах (аппаратные ключи) или в HASP License Manager.
Для информационных баз, которые должны использовать только аппаратные лицензии (или клиентские программные, установленные на рабочих местах), отключим выдачу лицензий сервером 1С. Откроем свойства нужной информационной базы в консоли сервера 1С:Предприятия. На вкладке "Лицензирование" (или аналогичной, в зависимости от версии платформы) найдем и снимем флажок "Разрешить выдачу лицензий сервером 1С:Предприятие". Это гарантирует, что пользователи, подключающиеся к этой базе, будут искать лицензии на своих рабочих местах или в сети (аппаратные ключи), а не получать их от сервера 1С.
Для информационных баз, доступ к которым осуществляется через веб-клиент (или тонкий клиент, которому сервер должен выдавать лицензии), оставим или установим флажок "Разрешить выдачу лицензий сервером 1С:Предприятие" в положение ДА. Это позволит серверу 1С выдавать программные клиентские лицензии для сеансов, подключающихся к этой базе, что необходимо для корректной работы веб-клиентов и в некоторых сценариях для тонких клиентов.
Помимо настроек на сервере, нам необходимо управлять поведением клиентских приложений 1С при поиске лицензий. Это особенно актуально для тонких и толстых клиентов.
/UseHwLicensesМы можем явно указать клиентскому приложению, искать ли аппаратные ключи защиты. Это делается с помощью параметра командной строки при запуске 1С:Предприятия:
/UseHwLicenses-: Этот параметр отключает поиск аппаратных ключей защиты. Клиентское приложение будет принудительно искать программные лицензии (локально или через сервер 1С, если это разрешено). Мы используем его для пользователей, которые гарантированно должны получать программные лицензии и не должны "случайно" занимать аппаратные.
"C:\Program Files\1cv8\common\1cv8.exe" ENTERPRISE /IBName "МояБаза" /UseHwLicenses-
/UseHwLicenses+ (или отсутствие параметра): Это значение включает поиск аппаратных ключей защиты. Это поведение по умолчанию, и оно подходит для пользователей, которые должны использовать аппаратные лицензии.
Обратите внимание: Этот параметр влияет только на клиентские приложения и не действует на использование лицензий сервером 1С:Предприятия.
nethasp.iniФайл nethasp.ini используется для настройки параметров поиска клиентских лицензий 1С, выдаваемых HASP License Manager с многопользовательских аппаратных ключей. Он должен располагаться на клиентской машине в каталоге bin платформы 1С.
Если на сервере 1С или на веб-сервере установлены клиентские HASP-ключи (что не рекомендуется, как мы уже рассмотрели), или если клиенты могут "видеть" HASP License Manager в сети, мы можем управлять этим поиском:
Запретим поиск ключей по сети на сервере (или веб-сервере). Если на сервере 1С или веб-сервере есть риск, что опубликованные базы будут пытаться получить аппаратные лицензии, мы можем создать (или отредактировать) файл nethasp.ini в каталоге bin платформы 1С на этом сервере. В нем мы укажем:
[NH_COMMON]
NH_USE_BROADCAST = Disabled
Это отключит широковещательный поиск HASP-ключей по сети, что может предотвратить нежелательное использование аппаратных лицензий сервером.
Укажем конкретные адреса HASP License Manager'ов. Если у нас есть выделенный сервер с HASP License Manager, мы можем явно указать его IP-адрес в nethasp.ini на клиентских машинах (которые должны использовать аппаратные ключи) для более точного поиска:
[NH_SERVER_ADDR]
NH_SERVER_ADDR = 192.168.1.100 ; IP-адрес вашего сервера HASP License Manager
Важный момент: Если веб-пользователи исчерпают программные лицензии, они не "полезут" за USB-ключами, если поиск по сети запрещен в nethasp.ini на сервере. Это именно то, что нам нужно для четкого разделения.
Ситуация значительно усложняется, если сервер 1С:Предприятия и RDP-сервер (терминальный сервер) — это один и тот же компьютер, и все пользователи работают по RDP, используя одну и ту же версию платформы. В этом случае, даже при всех предыдущих настройках, RDP-клиенты могут получать программные лицензии, которые предназначены для сервера 1С или других целей. Это происходит потому, что программные лицензии представляют собой файлы, и если у пользователя есть к ним доступ, он может их использовать.
Для решения этой проблемы нам потребуется настроить права доступа на уровне операционной системы:
Настроим права доступа к файлу программной лицензии на уровне ОС.
Выясним расположение файла лицензии. По умолчанию, программные лицензии 1С:Предприятия хранятся в каталоге %ProgramData%\1C\licenses (для Windows Server 2008 и выше) или C:\Documents and Settings\All Users\Application Data\1C\1Cv82\conf\ (для старых версий). Мы можем перейти в этот каталог и найти файлы лицензий.
Ограничим доступ. Нам необходимо настроить права доступа к этому каталогу (или непосредственно к файлам лицензий) таким образом, чтобы к ним имел доступ только тот пользователь, от имени которого запускается агент сервера 1С:Предприятия (обычно это системный пользователь USR1CV8 или аналогичный, созданный инсталлятором 1С). Для всех остальных пользователей RDP-сессий доступ к этому каталогу должен быть либо запрещен, либо ограничен до "только чтение" (чтобы избежать случайного повреждения, но не использования).
Это предотвратит несанкционированное использование программных лицензий RDP-клиентами, которые не должны их получать.
Перенесем файл лицензии и используем параметр ConfLocation. В качестве альтернативного (или дополнительного) метода, мы можем перенести файл программной лицензии в произвольную папку, к которой изначально никто не имеет доступа, кроме администратора. Затем мы укажем путь к этой папке в конфигурационном файле conf.cfg.
Создадим новую папку. Например, C:\1C_Licenses_ServerOnly.
Переместим файл лицензии из стандартного расположения в эту новую папку.
Настроим права доступа к этой новой папке, как описано в пункте 1, предоставив доступ только пользователю, от имени которого работает агент сервера 1С.
Отредактируем файл conf.cfg. Этот файл обычно находится в каталоге conf в папке установки сервера 1С:Предприятия (например, C:\Program Files\1cv8\srvinfo\conf\conf.cfg). Добавим в него параметр ConfLocation, указывающий на новую папку:
ConfLocation=C:\1C_Licenses_ServerOnly
После сохранения изменений и перезапуска агента сервера 1С, он будет искать лицензии в указанном каталоге.
Важно: Если сервер лицензирования 1С будет развернут на другой машине, это также поможет разделить лицензии, но в большинстве случаев, при правильной настройке прав доступа, это может быть излишним "костылем".
Версия платформы: Убедитесь, что версия платформы 1С:Предприятия для всех баз, работающих на одном сервере, одинакова. Разные версии платформы могут по-разному обрабатывать лицензии и приводить к конфликтам.
Привязка программных лицензий: Программные лицензии привязываются к параметрам компьютера. При существенном изменении аппаратной конфигурации компьютера (например, замене материнской платы, процессора) лицензия может быть аннулирована, и потребуется повторная активация с использованием резервного пин-кода. Рекомендуется иметь резервные пин-коды для каждой активированной программной лицензии.
Поведение веб-клиентов при исчерпании лицензий: Как мы уже рассмотрели, веб-клиент всегда получает лицензию от сервера 1С. Если программные лицензии, доступные серверу, исчерпаны, веб-пользователи не смогут подключиться, и не будут автоматически пытаться использовать аппаратные ключи HASP, если их поиск запрещен или невозможен для веб-клиента.
Сервер лицензирования 1С: Для крупных систем и виртуальных сред существует возможность развернуть отдельный сервис лицензирования 1С. Он позволяет централизованно выдавать программные клиентские и серверные лицензии. Однако, он работает только с программными лицензиями (ПРОФ или КОРП) и не поддерживает работу с HASP-ключами. Версия платформы сервера лицензирования должна совпадать с версией остальных серверов кластера.
Следуя этим подробным инструкциям, мы сможем эффективно настроить совместное использование программных и аппаратных лицензий 1С:Предприятия, обеспечив стабильную и корректную работу всех пользователей в вашей смешанной среде.
← К списку