Как использовать локальный USB-ключ в терминальной сессии 1С и какие есть альтернативы?

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

Вопрос использования локальных (однопользовательских) ключей защиты HASP в терминальных сессиях RDP является классической проблемой для системных администраторов и бухгалтеров. Зачастую возникает ситуация: база находится на удаленном сервере, а ключ защиты — в руках у пользователя или вставлен в его локальный компьютер. Попробуем разобраться, почему стандартный "проброс" USB-устройств часто не помогает, и какие существуют методы решения этой задачи.

Почему локальный ключ не работает через RDP?

Рассмотрим техническую сторону вопроса. Разработчики платформы 1С намеренно ограничили возможность использования локальных ключей (маркировка H4 M1 или HL Pro) при работе в терминальном режиме. Проанализируем, как это происходит: при запуске 1С система проверяет окружение. Если обнаруживается, что приложение запущено внутри сессии удаленного рабочего стола (Remote Desktop Session), платформа автоматически переключается в режим поиска только сетевых лицензий (HL Net) или серверных лицензий. Программа просто игнорирует локальный ключ, даже если он успешно "проброшен" и виден в диспетчере устройств сервера.

Это сделано из соображений лицензионной политики: локальный ключ предназначен для работы одного пользователя на одном физическом устройстве. Для многопользовательской работы в терминале предусмотрены сетевые ключи (красного цвета) или программные лицензии.

Вариант 1. Настройка сетевого ключа через VPN и nethasp.ini

Если у вас есть сетевой ключ (например, на 5 или 10 пользователей) в другой локальной сети (например, в офисе), а работать нужно на сервере в магазине, мы можем настроить обращение сервера к этому ключу. Разберем по шагам, как организовать маршрутизацию лицензий:

  1. Организация канала связи: Необходимо настроить VPN-соединение между терминальным сервером и сетью, где установлен сетевой ключ.
  2. Настройка HASP License Manager: На компьютере, где физически установлен сетевой ключ, должен быть запущен HASP License Manager.
  3. Открытие портов: Убедимся, что в брандмауэрах обеих сетей открыт порт 475 (как для UDP, так и для TCP).
  4. Конфигурация клиента: На терминальном сервере, где запускается 1С, необходимо найти или создать файл nethasp.ini. Обычно он находится в папке conf каталога установки платформы или в системных папках профиля пользователя.

Проанализируем пример настройки файла nethasp.ini для стабильной работы через удаленные каналы:


[NH_COMMON]
NH_TCPIP = Enabled

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

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

;; Рекомендуется принудительно использовать TCP для стабильности через VPN
NH_TCPIP_METHOD = TCP

;; Увеличиваем время ожидания ответа от менеджера лицензий (в секундах)
NH_SESSION_HOOK = 5

При такой настройке программа 1С при запуске в терминале не будет пытаться найти локальный ключ, а сразу отправит запрос по конкретному IP-адресу к сетевому ключу. Это самое надежное и "правильное" решение с точки зрения системного администрирования.

Вариант 2. Публикация базы через веб-сервер (Тонкий клиент)

Если бюджет не позволяет приобрести сетевой ключ, а локальный ключ уже есть на руках у бухгалтера, рассмотрим альтернативный метод — отказ от RDP в пользу Тонкого клиента. Это решение позволяет использовать локальный ключ на компьютере пользователя.

Выясним причину, почему это работает: при использовании Тонкого клиента (или веб-клиента через браузер) само приложение 1С исполняется на локальном ПК пользователя. К серверу передаются только данные базы. Поскольку 1С запущена локально, а не в терминальной сессии, она "видит" вставленный в этот же ПК USB-ключ и успешно проходит проверку защиты.

Для реализации этого способа:

Вариант 3. Использование программных лицензий

Современным решением проблемы является переход с аппаратных USB-ключей на программные лицензии (пин-коды). Программная однопользовательская лицензия, в отличие от USB-ключа, может быть активирована непосредственно на терминальном сервере. Рассмотрим подробнее: если вы активируете однопользовательскую программную лицензию на сервере, она позволит запустить одну сессию 1С любому пользователю, подключившемуся по RDP. Это полностью снимает проблему "проброса" оборудования и конфликтов с терминальным режимом.

Вариант 4. Программные и аппаратные USB-хабы (USB-over-IP)

Если вам все же необходимо пробросить именно физический ключ, обычный функционал RDP "RemoteFX USB Redirection" может оказаться нестабильным. Системные администраторы часто используют специализированное ПО, такое как USB Redirector или VirtualHere. Эти программы создают виртуальную шину USB, и сервер "думает", что устройство подключено напрямую к его материнской плате.

Однако помните: даже если ключ определится как локальное устройство, платформа 1С версии 8.2 и выше все равно определит наличие RDP-сессии. Поэтому такие методы работают либо в связке с виртуальными машинами (где нет прямого RDP-подключения к хосту), либо требуют дополнительных манипуляций с системой, что может нарушать лицензионное соглашение.

Резюме и рекомендации

Подведем итог нашему анализу:

  1. Локальный ключ + RDP = не работает по умолчанию из-за программных ограничений 1С.
  2. Сетевой ключ (Net) + nethasp.ini = лучшее решение для терминального сервера.
  3. Тонкий клиент + Веб-сервер = отличный способ использовать имеющийся локальный ключ без дополнительных затрат.
  4. Программные лицензии = самый современный и беспроблемный вариант для облачной или терминальной работы.

Для стабильной работы мы рекомендуем использовать настройку nethasp.ini с жестким указанием IP-адреса менеджера лицензий, так как это исключает задержки при запуске 1С и минимизирует риск потери связи с ключом защиты в процессе работы.

← На главную