Как настроить совместную работу нескольких сетевых HASP-ключей в среде 1С:Предприятие?

Системный администратор IT и автоматизация бизнеса
← На главную

При масштабировании бизнеса и увеличении штата сотрудников ИТ-специалисты часто сталкиваются с ситуацией, когда имеющихся лицензий «1С:Предприятие» становится недостаточно. Например, в организации уже есть сетевой ключ на 10 пользователей (серия ORGL8, маркировка NET10), и к нему докупается еще один ключ на 20 пользователей (серия ORGL8, маркировка NET20). Естественное желание администратора — установить оба ключа в один сервер, чтобы получить в сумме 30 рабочих мест. Однако при стандартном подключении система защиты просто проигнорирует один из ключей.

В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем внутренние механизмы работы драйверов HASP и предложим пошаговые инструкции по настройке стабильной работы нескольких ключей защиты в одной локальной сети.

Почему два сетевых ключа одной серии не работают на одном сервере?

Давайте выясним техническую причину этого ограничения. Ключи защиты HASP HL (красного цвета), предназначенные для многопользовательского доступа на 5, 10, 20, 50, 100 и более рабочих мест, относятся к одной программной серии — ORGL8. Операционная система и менеджер лицензий HASP License Manager (HASP LM) на физическом уровне не умеют адресовать и разделять лицензии с двух разных USB-устройств одной серии, подключенных к одной машине.

Если мы вставим оба ключа (на 10 и 20 пользователей) в USB-порты одного и того же сервера, произойдет следующее:

  1. Драйвер защиты инициализирует только один из ключей (обычно тот, который определился операционной системой первым).
  2. Второй ключ останется незадействованным. Светодиод на нем может гореть, но лицензии с него выдаваться не будут.
  3. Менеджер лицензий будет транслировать в сеть объем лицензий только одного активного ключа (например, 20), а оставшиеся 10 лицензий будут полностью заблокированы.

Важное исключение: на одном сервере могут одновременно работать только ключи разных серий. Например, мы можем без проблем объединить в рамках одного сервера:

Поскольку наши ключи NET10 и NET20 относятся к одной серии (ORGL8), их совместное использование на одном сервере физически невозможно. Нам необходимо разнести их по разным компьютерам сети.

Шаг 1. Разнесение HASP-ключей по разным компьютерам

Разберем базовую схему размещения оборудования. Нам потребуются как минимум два компьютера в локальной сети, которые постоянно включены и доступны для пользователей.

Выполним следующие действия по шагам:

  1. Первый ключ (например, NET20) мы оставляем на основном сервере терминалов (RDP-сервере) или сервере приложений «1С».
  2. Второй ключ (например, NET10) мы подключаем к любому другому постоянно работающему компьютеру в этой же локальной сети (это может быть файловый сервер, сервер СУБД или даже рабочая станция бухгалтера, которая не выключается в течение рабочего дня).
  3. На обеих машинах обязательно устанавливаем актуальный драйвер HASP и службу HASP License Manager (HASP LM). Менеджер лицензий должен быть запущен как системная служба (Service), чтобы раздача начиналась автоматически при старте операционной системы.

Шаг 2. Анализ раздачи лицензий: Сервер 1С или клиентское приложение?

Перед тем как перейти к настройке конфигурационных файлов, нам крайне важно проанализировать, кто именно будет раздавать лицензии пользователям. В свойствах информационной базы в консоли администрирования «1С» есть критически важный параметр: «Разрешить выдачу лицензий сервером "1С:Предприятия"».

Рассмотрим два сценария его работы:

Сценарий А: Выдача лицензий сервером включена (значение «Да»)

В этом режиме клиентские приложения не обращаются к ключам напрямую. Запрос на получение лицензии делает сам сервер «1С:Предприятия». Однако здесь кроется важнейшая особенность платформы: при поиске сетевых лицензий сервер «1С» опрашивает сеть и монополизирует только один первый найденный сетевой ключ серии ORGL8. Если сервер найдет ключ NET20 на основном сервере, он заберет его лицензии. Когда все 20 лицензий будут исчерпаны, сервер «1С» не пойдет опрашивать второй компьютер с ключом NET10. В результате 10 лицензий окажутся недоступны. Таким образом, при использовании сервера «1С» для раздачи лицензий суммировать данные ключи не удастся.

Сценарий Б: Выдача лицензий сервером выключена (значение «Нет»)

В этом случае лицензии получают сами клиентские приложения (тонкие или толстые клиенты) по сети напрямую от менеджеров лицензий HASP LM. При запуске программа опрашивает доступные менеджеры лицензий. Если первый менеджер (с ключом на 20 пользователей) сообщает, что свободных лицензий нет, клиентское приложение автоматически переходит к опросу второго менеджера лицензий (с ключом на 10 пользователей) и успешно запускается. Именно этот сценарий позволяет нам полноценно суммировать лицензии с обоих ключей!

Обратите внимание на разницу в подсчете лицензий:

Шаг 3. Тонкая настройка файла nethasp.ini

По умолчанию клиентские компьютеры ищут менеджеры лицензий в сети с помощью широковещательных UDP-запросов (broadcast). При наличии нескольких ключей в сети такой поиск может происходить хаотично: пользователи будут случайным образом подключаться то к одному, то к другому ключу. Это часто приводит к «зависанию» лицензий и нестабильной работе программы.

Чтобы навести порядок, мы выполним жесткую настройку адресов менеджеров лицензий. Для этого нам понадобится отредактировать конфигурационный файл nethasp.ini. Этот файл находится на клиентских компьютерах (или на сервере терминалов, если пользователи работают в RDP) в каталоге установки платформы C:\Program Files\1cv8\conf\ (или в папке конкретной версии платформы, например, C:\Program Files\1cv8\8.3.XX.XXXX\bin\conf\).

Откроем файл nethasp.ini в текстовом редакторе и приведем его к следующему виду:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.51, 192.168.1.52
NH_PORT_NUMBER = 475
NH_USE_BROADCAST = Disabled
NH_SEND_RCV_TIMEOUT_SEC = 2

Разберем детально параметры, которые мы настроили:

Шаг 4. Настройка уникальных имен менеджеров лицензий (nhsrv.ini)

Если в вашей сети используется старый протокол NetBIOS (или требуется дополнительная изоляция менеджеров), два запущенных HASP LM могут конфликтовать, так как по умолчанию регистрируют в сети одинаковое сетевое имя — AladinHaspV01.2:30.

Чтобы избежать конфликтов имен на сетевом уровне, мы можем задать каждому менеджеру уникальное имя. Настройка выполняется в файле nhsrv.ini, который расположен в папке с установленной службой HASP LM на серверах с ключами.

На первом сервере (с адресом 192.168.1.51) пропишем в файле nhsrv.ini:


[NHS_SERVER]
NHS_SERVERNAMES = LM001

На втором сервере (с адресом 192.168.1.52) укажем уникальное имя:


[NHS_SERVER]
NHS_SERVERNAMES = LM002

После изменения параметров конфигурации обязательно перезапустите службу HASP Loader на обоих серверах через оснастку управления службами Windows (services.msc).

В клиентском файле nethasp.ini на рабочих станциях сопоставим эти имена в явном виде:


[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.51, 192.168.1.52
NH_SERVER_NAME = LM001, LM002

Альтернативное решение: Переход на программные лицензии

Если инфраструктура усложняется, а администрирование физических USB-ключей и файлов конфигурации nethasp.ini отнимает слишком много времени, мы рекомендуем рассмотреть современную альтернативу — переход на программные лицензии (пин-коды).

Программные лицензии обладают неоспоримыми преимуществами:

Для перехода на программную защиту вы можете обратиться к вашему партнеру «1С» для проведения процедуры апгрейда (обмена) аппаратных ключей защиты на программные лицензии.

← На главную