При переходе компании на терминальный режим работы (RDP) перед системными администраторами и руководителями ИТ-отделов неизбежно встает вопрос расчета и приобретения клиентских лицензий «1С:Предприятие». Ситуация, описанная на форуме, классическая: имеется терминальный сервер, сервер приложений 1С на базе MS SQL и 20 активных пользователей, которым одновременно нужен доступ к четырем различным информационным базам (например, две базы «1С:Бухгалтерия», одна «1С:Зарплата и управление персоналом» и одна «1С:Управление торговлей»).
Если обратиться к неквалифицированным менеджерам фирм-франчайзи, можно получить пугающий ответ: «В клиент-серверном варианте лицензируется каждое подключение. Раз у вас 20 пользователей и 4 базы, вам нужно покупать 80 лицензий!». Давайте разберем по шагам, почему этот ответ ошибочен, как на самом деле платформа 1С производит подсчет лицензий в терминальной среде, и как настроить систему так, чтобы легально обойтись покупкой всего 20 лицензий вместо 80.
Для того чтобы принять взвешенное решение, рассмотрим подробнее базовый механизм защиты программных продуктов 1С. Ключевое отличие, определяющее финальный бюджет на покупку ПО, заключается в способе авторизации сеансов. Существует два режима распределения клиентских лицензий:
Наша главная задача при проектировании терминальной инфраструктуры — настроить систему так, чтобы использовался первый режим подсчета («на пользователя»). Выясним, как это реализовать на практике для разных типов защитных ключей.
Программные лицензии 1С представляют собой файлы с расширением .lic, которые привязываются к аппаратным параметрам сервера. При покупке многопользовательских комплектов лицензий (на 5, 10, 20 пользователей и т.д.) в коробке поставляются два комплекта пин-кодов: однопользовательские и многопользовательские.
Чтобы получить экономию по схеме «один пользователь RDP = одна лицензия», нам необходимо выполнить активацию лицензий определенным образом:
При таком сценарии файл лицензии сохраняется в общую системную папку терминального сервера, путь к которой обычно выглядит следующим образом:
C:\ProgramData\1C\1Cv8\Conf\
Когда пользователи заходят на сервер по RDP и запускают тонких или толстых клиентов 1С, сама платформа на их виртуальных рабочих местах обращается к этому файлу напрямую. Локальный сеанс 1С сам считывает лицензию из папки общего доступа. Платформа распознает, что запуск происходит в рамках уже существующей терминальной сессии текущего Windows-пользователя, группирует подключения и расходует только 1 лицензию на всю RDP-сессию. Таким образом, для 20 сотрудников вам потребуется купить ровно 20 программных лицензий.
Важное предупреждение: Ни в коем случае не активируйте в свойствах баз на сервере 1С настройку Разрешить выдачу лицензий сервером 1С. Если эта опция включена, сервер приложений перехватит инициативу и начнет самостоятельно раздавать лицензии из общего пула по схеме «на сеанс», что моментально заблокирует работу пользователей при исчерпании 20 лицензий.
Если ваша компания отдает предпочтение физическим носителям, то использование аппаратных ключей NetHASP (красного цвета) значительно упрощает задачу администрирования. Эти ключи работают через сетевой протокол и распределяют лицензии с помощью службы HASP License Manager.
Рассмотрим, как ведет себя аппаратный ключ на терминальном сервере:
Таким образом, использование аппаратного сетевого ключа на 20 пользователей гарантирует работу всех 20 сотрудников с любым количеством информационных баз без риска перерасхода лицензий.
Однако здесь существуют важные системные нюансы:
Для правильной маршрутизации запросов к аппаратному ключу на терминальном сервере рекомендуется явно настроить конфигурационный файл nethasp.ini, находящийся в каталоге установки платформы 1С. Пример оптимальной настройки файла для ускорения поиска ключа по протоколу TCP/IP:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100 ; IP-адрес ПК, где установлен USB-ключ
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = UDP
Ситуация кардинально меняется, если часть из ваших 20 пользователей планирует работать вне терминального сервера напрямую через интернет, используя веб-клиент (в браузере) или тонкий клиент, подключенный к базе по протоколу HTTP через веб-серверы Apache или IIS.
В этом случае экономия «одна сессия — одна лицензия» перестает работать по умолчанию:
Как минимизировать затраты при работе по HTTP?
Проанализируем доступные варианты решения проблемы:
Рассмотрим две современные технологии, которые значительно облегчают жизнь системным администраторам при развертывании крупных или динамических инфраструктур.
Главный недостаток программных лицензий — их высокая чувствительность к изменениям конфигурации сервера. Стоит администратору виртуальной машины на Hyper-V или VMware добавить оперативной памяти, изменить количество ядер процессора или обновить операционную систему — программная лицензия тут же «слетает», требуя ввода нового резервного пин-кода для восстановления работоспособности.
Начиная с версии платформы 8.3.12, разработчики 1С представили элегантное решение: возможность привязки программной лицензии к аппаратному ключу защиты HASP. При активации новой программной лицензии система считывает уникальный внутренний ID подключенного к серверу USB-ключа и привязывает лицензионный файл к нему, а не к параметрам материнской платы или процессора. Теперь вы можете свободно масштабировать виртуальные машины, переносить их между физическими хостами — лицензия останется активной до тех пор, пока сервер видит физический USB-токен.
В современных релизах платформы (начиная с версии 8.5.4) компания 1С предлагает использовать собственный программный компонент — Менеджер лицензий 1С (rmlic). Этот инструмент приходит на смену устаревшей утилите HASP License Manager от компании Aladdin/Thales.
Утилита rmlic регистрируется в системе как самостоятельная служба (поддерживаются как ОС семейства Windows, так и дистрибутивы Linux) и выполняет следующие задачи:
.lic) и аппаратных ключей защиты.Для того чтобы успешно запустить работу 20 пользователей в 4 базах 1С на терминальном сервере и уложиться в рамки 20 купленных лицензий, придерживайтесь следующего чек-листа:
nethasp.ini на терминальном сервере для прямого обращения к службе по IP-адресу.Разрешить выдачу лицензий сервером 1С. Он должен находиться в значении «Нет» (Выключен). В этом случае поиск и получение лицензий будут делегированы локальным рабочим местам пользователей внутри RDP-сессий, что гарантирует работу правила «один пользователь = одна лицензия».Следуя этим правилам, вы обеспечите стабильную, быструю и, главное, абсолютно легальную работу пользователей 1С без лишних финансовых затрат на переплату за избыточные лицензии.