Ключ HASP для 1С 8.3: от USB-разъёма до сетевой лицензии
Содержание
Защита 1С HASP работает так: платформа при запуске ищет аппаратный ключ — сначала локально через драйвер Sentinel, затем по сети через HASP License Manager. Нашла ключ со свободной лицензией — сеанс открывается, не нашла — появляется Не обнаружен ключ защиты программы. Чтобы всё работало, нужны три вещи: правильный тип ключа, установленный драйвер и, для сетевых ключей, менеджер лицензий с открытым портом 475.
Механизм общий для платформы 8.3 и не зависит от конфигурации: Бухгалтерия, ЗУП и УТ лицензируются одинаково. Разница только в том, где стоит ключ и как клиенты до него добираются — локально, через сеть или через сервер 1С.
Как устроена аппаратная защита 1С и какие бывают ключи HASP
Ключ HASP — это USB-устройство с прошитой лицензией. Сам по себе он ничего не делает: его читает драйвер, а платформа спрашивает драйвер или менеджер лицензий, есть ли свободное место.
Ключи делятся по двум признакам: кого лицензируют (клиента или сервер 1С) и сколько мест дают.
| Тип ключа | Маркировка | Что лицензирует | Как раздаёт лицензии |
|---|---|---|---|
| Однопользовательский клиентский | ORGL8 | 1 рабочее место | Только локально, через драйвер |
| Многопользовательский клиентский | NET5, NET10, NET20, NET50 и т.д. | 5, 10, 20, 50… одновременных сеансов | По сети через License Manager или с сервера 1С |
| Серверный | ENSR8 / EN8SA | Сервер 1С:Предприятия | Локально на компьютере с сервером |
Что из этого следует на практике:
- 🔌 Однопользовательский ключ всегда вставляют в тот компьютер, где запускают 1С. По сети его не раздать.
- 🌐 Сетевой ключ можно воткнуть в любой компьютер сети — главное, чтобы там работал License Manager, а клиенты его видели.
- 🖥️ Серверный ключ нужен только для клиент-серверного варианта. Клиентских лицензий он не даёт: пользователям всё равно нужен NET-ключ или программные лицензии.
- 🔢 Числа в маркировке NET-ключа — это одновременные сеансы, а не именные пользователи. Одиннадцатый пользователь на NET10 не войдёт, пока кто-то не закроет 1С.
32-битный и 64-битный серверные ключи различаются. Ключ для 64-битного сервера подходит и 32-битному, наоборот — нет. Перед переходом на 64-битный сервер 1С проверьте, какой ключ у вас в наличии.
Порядок поиска лицензии
Платформа перебирает источники по очереди:
- Программная лицензия, активированная на этом компьютере.
- Локальный ключ HASP, подключённый к USB.
- Сетевой ключ через License Manager (по адресам из
nhsrv.iniили широковещательным запросом). - В клиент-серверном варианте — лицензия, которую выдаёт сервер 1С из ключа или файлов лицензий на своей стороне.
Отсюда частый эффект: на одном компьютере лицензия берётся из программного файла, на соседнем — из сетевого ключа. Пока мест хватает, этого никто не замечает.
Установка и обновление драйвера ключа защиты
Без драйвера Windows видит ключ как неизвестное USB-устройство, а платформа не видит его вовсе. Драйвер нужен на компьютере, куда физически вставлен ключ. Клиентам, которые берут лицензию по сети, драйвер не нужен.
Способ 1. Из установщика платформы
На последнем шаге установки 1С:Предприятия есть флажок установки драйвера защиты. Если при установке его сняли, запустите установщик платформы повторно, выберите изменение компонентов и пройдите мастер до конца с отмеченным флажком.
Этот способ ставит драйвер из дистрибутива платформы. Для свежих версий Windows он бывает устаревшим — тогда переходите ко второму способу.
Способ 2. Отдельный пакет Sentinel Runtime
Актуальный драйвер распространяется как Sentinel HASP/LDK Run-time Environment. Есть графический установщик и консольный haspdinst.exe.
:: запуск из командной строки от имени администратора
haspdinst.exe -i
Ключ -i ставит драйвер, -r удаляет его. Полный список параметров выводит haspdinst.exe -help.
Порядок обновления «начисто»:
- Закройте 1С на этом компьютере и выньте ключ.
- Удалите старый драйвер:
haspdinst.exe -r. - Перезагрузите компьютер.
- Установите новый:
haspdinst.exe -i. - Вставьте ключ и дождитесь, пока в диспетчере устройств он определится без жёлтого значка.
Проверить драйвер можно без 1С: откройте в браузере http://localhost:1947. Это Admin Control Center — веб-консоль из комплекта драйвера. В разделе ключей (Sentinel Keys) должен быть виден ваш ключ.
Не вынимайте ключ, пока в базе работают пользователи — сеансы, которые держат лицензию от этого ключа, получат ошибку защиты и могут потерять несохранённые данные.
Настройка сервера лицензирования: HASP License Manager и nhsrv.ini
Сетевой ключ раздаёт лицензии через HASP License Manager — службу hasplms. Её ставят на компьютер с ключом, лучше всего на сервер, который не выключают на ночь.
Установка License Manager
- Установите драйвер ключа (раздел выше).
- Установите HASP License Manager. В установщике выберите вариант службы Windows (Service), а не приложения — тогда менеджер стартует без входа пользователя.
- Убедитесь, что служба запущена:
services.msc, ищите службу с HASP Loader в названии. - Откройте в брандмауэре порт 475 для UDP и TCP — входящие подключения.
netsh advfirewall firewall add rule name="HASP LM UDP 475" dir=in action=allow protocol=UDP localport=475
netsh advfirewall firewall add rule name="HASP LM TCP 475" dir=in action=allow protocol=TCP localport=475
Указание адреса сервера на клиентах
По умолчанию клиент ищет License Manager широковещательным запросом. В одной подсети это работает, через VPN, маршрутизатор или VLAN — нет. Тогда адрес прописывают явно в файле nhsrv.ini.
Файл лежит в каталоге conf платформы: обычно C:\Program Files\1cv8\conf\nhsrv.ini. Если его нет — создайте текстовый файл с таким содержимым:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.10.5
NH_USE_BROADCAST = Disabled
Здесь 192.168.10.5 — адрес компьютера с ключом. Несколько менеджеров перечисляют через запятую. Отключение широковещания ускоряет запуск: клиент сразу идёт по адресу и не ждёт ответов со всей сети.
Если на компьютере стоят несколько версий платформы и одна из них игнорирует общий nhsrv.ini, положите копию в каталог конкретной версии: ...\1cv8\8.3.xx.xxxx\bin\conf\.
Ключ на сервере 1С
В клиент-серверном варианте есть второй путь: вставить NET-ключ в сервер 1С. Тогда лицензии пользователям выдаёт сам сервер, и nhsrv.ini на клиентах не нужен.
Чтобы сервер раздавал клиентские лицензии, в консоли кластера у рабочего сервера должны быть разрешены требования назначения функциональности для объекта «Клиентская лицензия». По умолчанию они разрешены; проблема появляется, если их кто-то менял.
Диагностика ошибок защиты HASP
Начинайте с текста сообщения и того, у кого оно появилось: у всех или у одного пользователя.
http://localhost:1947 на компьютере с ключом.nhsrv.ini и проверьте доступность порта 475.Чем смотреть, кто занял лицензии
- 👀 Aladdin Monitor — утилита из комплекта License Manager. Показывает менеджеры в сети, ключи и адреса подключённых клиентов.
- 🧾 Консоль администрирования серверов 1С — в списке сеансов информационной базы видно, кто подключён; из консоли можно завершить сеанс.
- 🛠️ Утилита
rac—rac session list --licensesвыводит лицензии, занятые сеансами, если нужен список для скрипта.
Завершение сеанса из консоли обрывает работу пользователя без сохранения. Сначала предупредите человека или делайте это вне рабочего времени.
Технологический журнал
Если причина не находится, включите технологический журнал с событием LIC — в нём платформа пишет операции с лицензиями. Фрагмент logcfg.xml:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\1c_techlog" history="24">
<event>
<eq property="name" value="LIC"/>
</event>
<property name="all"/>
</log>
</config>
Файл кладут в каталог conf платформы. Журнал быстро растёт, поэтому включайте его на время диагностики и затем удаляйте logcfg.xml.
Ключ HASP в виртуальной машине и на терминальном сервере
Виртуализация
USB-ключ привязан к физическому порту, а виртуальная машина этого порта не видит. Варианты решения:
| Способ | Когда подходит | Риски |
|---|---|---|
| Проброс USB в гипервизоре | VMware ESXi, Proxmox, VirtualBox — там есть проброс USB-устройства в ВМ | Ключ отваливается при миграции ВМ на другой хост |
| License Manager на физическом хосте | Сетевой NET-ключ, хост работает на Windows | Не подходит для ORGL8 и серверного ключа |
| USB over IP (аппаратный хаб или ПО) | Hyper-V, облако, кластер из нескольких хостов | Дополнительная точка отказа, нужна стабильная сеть |
| Программные лицензии | Новые внедрения, частые переезды ВМ | Лицензия слетает при сильной смене «железа» ВМ |
В Hyper-V штатного проброса USB-устройств в ВМ нет, поэтому там обычно используют USB-хаб с доступом по сети или выносят License Manager на отдельную физическую машину.
Терминальный сервер (RDP)
Для работы через удалённый рабочий стол берут многопользовательский ключ. Каждый открытый сеанс 1С в терминале занимает одно место на ключе — так же, как отдельный компьютер.
- 📌 Ключ вставляют прямо в терминальный сервер или в другой компьютер с License Manager.
- 📌 Один пользователь, открывший две копии 1С, может занять два места. Следите за этим, когда лицензий впритык.
- 📌 Пробрасывать ключ с ноутбука пользователя в RDP-сессию — ненадёжная схема: сессия закрылась, лицензия пропала.
Профилактика и обслуживание защиты 1С
Ключ HASP выходит из строя редко, но вся организация встаёт, если с ним что-то случилось. Несколько привычек снимают большинство рисков:
Отдельно про сохранность. Документы на лицензию — это доказательство, что вы законно владеете программой. Потерянный или сломанный ключ восстанавливают через партнёра 1С по этим документам. Без них восстановление сильно усложняется.
Если ключ сломался, а работать нужно сегодня, обсудите с партнёром временную программную лицензию — это законный путь, пока идёт замена.
Иногда ищут «эмуляторы HASP», чтобы не зависеть от железа. Это нарушение лицензии и прямой риск: такие сборки часто несут вредоносный код, а при проверке у компании возникают претензии за нелицензионное ПО. Легальная замена ключу — программные лицензии 1С.
Частые вопросы о ключах HASP
Можно ли использовать вместе ключ HASP и программные лицензии?
Нужен ли драйвер HASP на каждом компьютере?
Что будет, если вынуть сетевой ключ во время работы?
Можно ли подключить два сетевых ключа к одному License Manager?
nhsrv.ini.