Почему в терминальной сессии 1С не видны сетевые ключи HASP и как это исправить?

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

Проблема доступности сетевых ключей защиты при работе через удаленный рабочий стол (RDP) является одной из классических задач системного администрирования 1С. Часто возникает ситуация, когда обычные рабочие станции в локальной сети успешно получают лицензии, но пользователи на терминальном сервере сталкиваются с ошибкой "Не обнаружен ключ защиты программы". Проанализируем причины этой проблемы и разберем по шагам методы её решения.

Выясняем причину: диагностика сетевой доступности

Первым делом нам необходимо убедиться, что терминальный сервер "видит" компьютер, в который физически установлены USB-ключи. Основным инструментом взаимодействия между 1С и ключом является менеджер лицензий HASP License Manager (NHLM). Он принимает запросы по порту 475.

Рассмотрим, как проверить доступность этого порта. Для этого воспользуемся утилитой telnet. В командной строке на терминальном сервере выполним команду:

telnet IP_АДРЕС_СЕРВЕРА_КЛЮЧЕЙ 475

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

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

Одной из самых частых причин ошибки Warning 129 (которую мы видим в логах пользователя) является нестабильная работа широковещательного опроса (broadcast) в терминальной среде. По умолчанию 1С пытается найти менеджер лицензий, рассылая пакеты по всей сети, что в сложных сетевых структурах или терминальных сессиях часто блокируется.

Разберем, как принудительно указать 1С, где искать ключи. Для этого нам нужно отредактировать файл nethasp.ini. Обычно он находится в каталоге установки платформы C:\Program Files\1cv8\conf\ или непосредственно в папке bin. Проанализируем необходимые изменения в секции [NH_TCPIP]:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
;; Указываем конкретный IP-адрес компьютера с ключами
NH_SERVER_ADDR = 192.168.1.100 

;; Отключаем широковещательный поиск для ускорения и стабильности
NH_USE_BROADCAST = Disabled

;; Указываем тип протокола
NH_TCPIP_METHOD = TCP

После внесения этих изменений 1С перестанет тратить время на опрос всей сети и будет обращаться напрямую к указанному серверу. Это решает большинство проблем, связанных с Net Status=0, Warning=129.

Режим работы HASP License Manager

Посмотрим на то, как запущен менеджер лицензий на "отдельном компьютере" с ключами. Существует два режима запуска NHLM: как обычное приложение (Application) и как служба (Service).

Критически важно: В производственной среде менеджер лицензий должен быть установлен только как служба. Если он запущен как приложение, то при выходе пользователя из системы на этом компьютере (Logoff) процесс завершается, и ключи становятся недоступными для всей сети. Проверьте список служб Windows (services.msc) на наличие HASP Loader и убедитесь, что тип запуска установлен в значение "Автоматически".

Настройка выдачи лицензий сервером 1С

В клиент-серверном варианте работы (SQL) у нас есть два пути получения лицензии. Выясним, какой из них используется в вашей системе. Для этого откроем консоль администрирования серверов 1С:

  1. Перейдем в свойства информационной базы.
  2. Найдем параметр "Разрешить выдачу лицензий сервером 1С:Предприятия".

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

Особенности работы с RDP и локальными ключами

Проанализируем ситуацию, если в логах программы вы видите сообщение: локальный ключ недоступен: Status=-10, ORGL8 Локальный.

Важно понимать: однопользовательские локальные ключи (синего цвета) принципиально не работают внутри терминальной сессии. Драйвер HASP блокирует доступ к локальному USB-порту из RDP-сеанса в целях защиты от несанкционированного тиражирования. В терминале работают только сетевые ключи (красного цвета) или программные лицензии. Если вы пытаетесь пробросить локальный ключ через USB-перенаправление в RDP, 1С его не увидит.

Использование Aladdin Monitor для визуализации

Чтобы не гадать, видит ли сеть ключи, мы рекомендуем использовать официальную утилиту Aladdin Monitor (AKS Monitor). Установим её на терминальный сервер и запустим. Рассмотрим, что она нам показывает:

Если в Aladdin Monitor сервер лицензий виден, а 1С все равно выдает ошибку, значит проблема кроется в настройках самого приложения 1С или в конфликте версий драйвера. Если же монитор пуст — проблема исключительно сетевая (порты, маршрутизация, брандмауэр).

Конфликт нескольких сетевых ключей

Рассмотрим еще один технический нюанс. Если вы решили увеличить количество пользователей и вставили в один компьютер два сетевых ключа одной серии (например, два ключа по 10 лицензий ORGL8), 1С увидит только один из них. Это ограничение технологии HASP. Чтобы использовать оба ключа, их нужно либо разнести на разные физические компьютеры (и указать оба IP в nethasp.ini через запятую), либо заменить их на один ключ большего номинала.

Резюме решения

Подводя итог, если 1С на терминале не видит ключи, выполните следующие действия:

  1. Убедитесь, что на сервере с ключами служба HASP Loader запущена и работает.
  2. Проверьте доступность порта 475 через telnet.
  3. Настройте nethasp.ini, прописав NH_SERVER_ADDR и отключив NH_USE_BROADCAST.
  4. Проверьте в консоли 1С, кто должен выдавать лицензию — сервер или клиент.
  5. Используйте Aladdin Monitor для окончательной проверки видимости ключей в сети.

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

← На главную