Как настроить приоритет получения USB-лицензий 1С и обеспечить их работу через VPN

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе эксплуатации 1С:Предприятие часто возникает ситуация, когда в сети находится несколько аппаратных ключей защиты (USB HASP). Типичная проблема системного администратора — «непредсказуемое» поведение платформы при выборе ключа. Например, когда есть ключ на 20 лицензий и на 10 лицензий, 1С может сначала занять все места на «десятке», блокируя возможность работы локальных администраторов или пользователей старых версий конфигураций. Разберем подробно, как выстроить четкую иерархию опроса ключей и решить сопутствующие проблемы с сетевыми подключениями.

Механизм поиска лицензий и проблема «памяти» клиента

Прежде чем переходить к настройкам, проанализируем, как именно клиентское приложение 1С ищет ключ. По умолчанию платформа использует широковещательный запрос (Broadcast) по всей локальной сети. Тот ключ, который ответит первым, и будет использован. Именно это создает иллюзию рандомности.

Важно учитывать нюанс, упомянутый в обсуждении: клиент в первую очередь пытается найти ключ тем способом, который был успешен в прошлый раз. Если вчера пользователь «зацепился» за ключ на 10 лицензий, сегодня система в приоритетном порядке обратится именно к нему, игнорируя общие настройки поиска, пока этот способ не станет недоступным. Чтобы сбросить эту «память», иногда требуется очистка кэша или ручная правка файлов конфигурации.

Настройка приоритетов через файл nethasp.ini

Основным инструментом управления порядком опроса лицензий является файл nethasp.ini. На клиентских машинах (или на сервере терминалов) этот файл обычно располагается в папке C:\Program Files\1cv8\conf\ или в папке с установленной платформой. Рассмотрим по шагам, как заставить систему опрашивать сначала сервер с 20 лицензиями, а затем с 10.

Для реализации этой задачи нам необходимо отключить автоматический поиск и жестко прописать адреса серверов лицензий. Отредактируем секции [NH_COMMON] и [NH_TCPIP] следующим образом:


[NH_COMMON]
NH_TCPIP = ENABLE

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.20, 192.168.1.10
NH_USE_BROADCAST = DISABLE
NH_TCPIP_METHOD = UDP
NH_SESSION_HOOK = ENABLE

Разберем, что дают эти настройки:

  1. NH_SERVER_ADDR — здесь мы перечисляем IP-адреса серверов, где установлены менеджеры лицензий (HASP License Manager). Важно: 1С опрашивает их строго слева направо. Первым в списке ставим адрес сервера с ключом на 20 лицензий.
  2. NH_USE_BROADCAST = DISABLE — это критическая настройка. Мы запрещаем 1С «кричать» в сеть. Теперь она будет обращаться только по указанным выше адресам. Это убирает эффект рандомности.
  3. NH_TCPIP = ENABLE — включаем использование протокола TCP/IP для поиска ключа.

Ограничения по сериям ключей

Выясним важную техническую деталь: можно ли воткнуть оба ключа в один сервер? Как было отмечено в дискуссии, ключи серий от 1 до 100 пользователей относятся к одной серии ORGL8. Два ключа одной серии на одном физическом компьютере работать не будут (точнее, License Manager увидит только один из них, обычно тот, что был вставлен первым или имеет меньший номинал).

Если вы хотите объединить лицензии на одном физическом сервере, рассмотрим два варианта:

Настройка работы лицензий через VPN

Многие сталкиваются с проблемой, когда удаленные офисы (например, Кемерово — Омск) не видят ключ через VPN. Причина кроется в том, что широковещательные UDP-пакеты, которыми 1С ищет ключ по умолчанию, не проходят через VPN-туннели.

Чтобы решить проблему, выполним следующие действия:

  1. На стороне сервера, где стоит ключ, убедимся, что порт UDP 475 открыт в сетевом экране.
  2. На стороне удаленного клиента в файле nethasp.ini обязательно прописываем внешний (или внутренний VPN) IP-адрес сервера в параметре NH_SERVER_ADDR и отключаем NH_USE_BROADCAST.
  3. Проверим наличие установленного драйвера Sentinel HASP и запущенной службы Sentinel LDK License Manager.

Раздача лицензий сервером 1С:Предприятие

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

Если установлено «Да», то сервер 1С сам забирает лицензии с ключа и отдает их сеансам. В этом случае настройки nethasp.ini на компьютерах пользователей могут игнорироваться, так как ключ ищет сам сервер. Чтобы выстроить приоритет в этом случае, файл nethasp.ini нужно настраивать именно на том сервере, где запущены службы ragent, rmngr и rphost.

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

Диагностика через Admin Control Center

Для окончательной проверки того, какой ключ используется в данный момент, проанализируем состояние системы через Sentinel Admin Control Center (ACC). На любом сервере, где установлен драйвер ключа, откроем браузер и перейдем по адресу:

http://localhost:1947

В разделе «Sentinel Keys» вы увидите все доступные ключи, их ID и количество лицензий. В разделе «Sessions» можно увидеть список активных пользователей и понять, с какого именно ключа (Key ID) они получили лицензию в данный момент. Это поможет быстро выявить, на каком компьютере настройки приоритета не применились и где система продолжает «захватывать» ненужный ключ.

← На главную