Где находится ключ защиты 1С и как задать его адрес клиенту
Содержание
Сразу о главном: поля «путь к ключу» в 1С 8.3 нет ни в конфигураторе, ни в окне запуска. Локальный USB-ключ и программную лицензию платформа находит сама. Указывать вручную приходится только одно — адрес компьютера, на котором подключён сетевой ключ. Делают это в файле nethasp.ini или в Sentinel Admin Control Center по адресу http://localhost:1947.
То есть «путь к ключу» для сетевой защиты — это не путь к файлу, а IP-адрес или имя сервера с менеджером лицензий. Разберём, где физически лежит ключ каждого типа, как задать адрес, как проверить, что клиент его видит, и что делать с ошибкой Не обнаружен ключ защиты программы.
Какой ключ защиты у вас используется
От типа защиты зависит, нужно ли вообще что-то указывать. Вариантов три.
- 🔑 Локальный аппаратный ключ (HASP) — фиолетовый или красный USB-брелок в самом компьютере. Рассчитан на одно рабочее место. Путь указывать не нужно: ключ находится автоматически, если установлен драйвер.
- 🌐 Сетевой аппаратный ключ (NetHASP) — красный USB-ключ на одном сервере раздаёт лицензии всем клиентам сети через менеджер лицензий. Вот здесь и нужно сообщить клиентам адрес этого сервера.
- 📄 Программная лицензия — вместо брелка привязанный к оборудованию файл
.lic, активированный пин-кодом. Хранится в защищённой папке, путь задавать не требуется.
Определить свой тип просто. Если в компьютер воткнут USB-брелок — ключ локальный. Если 1С работает на нескольких машинах, а брелок один и стоит на сервере — сетевой. Если физического брелка нет вообще — у вас программное лицензирование.
Что и где нужно указывать по каждому типу:
| Тип защиты | Что указывать | Где настраивается |
|---|---|---|
| Локальный HASP (USB) | ничего, находится сам | — (только драйвер) |
| Сетевой NetHASP | адрес сервера с ключом | nethasp.ini или Sentinel ACC |
| Программная лицензия | ничего, привязка по пин-коду | помощник лицензирования |
Как видно, вручную «путь» задают только для сетевого ключа — и это адрес компьютера, а не каталог.
На одном компьютере типы можно сочетать: например, сервер 1С защищён своим аппаратным ключом, а клиентские лицензии выдаёт сетевой ключ или комплект программных лицензий.
Где физически лежит ключ и файлы лицензий
«Стандартного пути» к USB-ключу не существует — это устройство, а не файл. А вот у настроек сетевого доступа и у программных лицензий есть конкретные расположения.
Файл настроек сетевого ключа nethasp.ini. Платформа ищет его в двух местах:
- в каталоге исполняемого файла — рядом с
1cv8.exe(папкаbinнужной версии платформы); - в общем каталоге конфигурации —
C:\Program Files\1cv8\conf\nethasp.ini.
Папка conf удобнее: файл не затирается при обновлении платформы и действует для всех установленных версий.
Папка программных лицензий. Активированные файлы .lic платформа сохраняет сама, обычно здесь:
- общий для всех пользователей каталог —
C:\ProgramData\1C\licenses; - каталог текущего пользователя —
%LOCALAPPDATA%\1C\licenses.
Файлы программных лицензий руками не переносят и не редактируют. Привязка идёт к параметрам оборудования; при переносе на другой компьютер лицензия слетает, и её нужно активировать заново по пин-коду (или по резервному коду у поставщика). Точное имя подпапки может немного отличаться в разных сборках платформы — ориентируйтесь на каталог 1C\licenses.
Как задать адрес сетевого ключа в nethasp.ini
Это основной способ «указать путь к ключу» для классических сетевых ключей HASP. Файл nethasp.ini — обычный текстовый, его правят в Блокноте.
Шаблон с нужными секциями:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.10
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = Disabled
Что здесь что:
NH_SERVER_ADDR— IP-адрес или сетевое имя компьютера с сетевым ключом. Это и есть «адрес ключа». Можно указать несколько адресов через запятую.NH_USE_BROADCAST = Disabledотключает широковещательный поиск. Это ключевая строка. Когда адрес задан явно, широковещание лучше выключить: клиент перестаёт «опрашивать» всю сеть и соединяется с сервером напрямую — быстрее и без сбоев на маршрутизируемых подсетях.NH_TCPIP_METHOD = TCPзадаёт протокол. TCP стабильнее UDP на сложных сетях.
Порядок действий:
- возьмите образец
nethasp.iniиз каталогаconf(часто лежит с расширением.iniили как шаблон) либо создайте файл с нуля; - впишите адрес сервера в
NH_SERVER_ADDR; - сохраните файл в
C:\Program Files\1cv8\conf\на каждом клиентском компьютере; - перезапустите 1С и проверьте выдачу лицензии.
Правьте файл в кодировке, которую понимает платформа (обычно ANSI/Windows-1251). Сохранение в UTF-8 с BOM иногда приводит к тому, что платформа игнорирует настройки.
Указание удалённого ключа через Sentinel ACC
Современные ключи 1С работают на платформе Sentinel (бывший HASP от Aladdin/Thales). Для них адрес удалённого ключа задают не только через nethasp.ini, но и через веб-консоль драйвера — Sentinel Admin Control Center.
Откройте в браузере http://localhost:1947 на клиентском компьютере. Это локальная консоль драйвера, наружу она не торчит. Дальше:
- Слева откройте раздел Configuration.
- Перейдите на вкладку Access to Remote License Managers.
- Включите Allow Access to Remote Licenses.
- В поле Specify Search Parameters впишите IP-адрес или имя сервера с ключом (по одному в строке).
- Снимите Broadcast Search for Remote Licenses, если задали адрес явно, и сохраните кнопкой Submit.
После этого в разделе Sentinel Keys появится строка с удалённым ключом, а в Features — доступные лицензии 1С. Это самый наглядный способ убедиться, что клиент «дотянулся» до сетевого ключа.
Если у вас новый ключ Sentinel HL, а старый nethasp.ini не помогает — настраивайте доступ именно через ACC. Классический nethasp.ini рассчитан на ключи предыдущего поколения, хотя 1С понимает оба механизма.
Как проверить, что клиент видит ключ
Прежде чем лезть в реестр, проверьте ключ штатными средствами — это быстрее и надёжнее.
Sentinel ACC (http://localhost:1947). Главный инструмент диагностики. Раздел Sentinel Keys показывает все доступные ключи — и локальные, и удалённые. Если ключа там нет, 1С его тоже не увидит.
Диспетчер устройств Windows. Для локального USB-ключа: откройте диспетчер устройств и найдите ключ в разделе USB-контроллеров или в отдельной ветке драйвера защиты. Если устройство с восклицательным знаком — не установлен драйвер.
Служба менеджера лицензий. На сервере с сетевым ключом должна быть запущена служба Sentinel LDK License Manager (процесс hasplms). Остановлена — клиенты лицензий не получат.
Сколько лицензий свободно. В консоли ACC раздел Features показывает общее число лицензий на ключе, а Sessions — сколько сеансов занято прямо сейчас и с каких компьютеров. Если 1С пишет про недоступный ключ, а в сети всё в порядке, в первую очередь смотрят сюда: нередко лицензии просто закончились, а не «пропал путь к ключу».
А что с реестром? Параметры драйвера защиты действительно хранятся в реестре Windows, но править их вручную не нужно и рискованно. Реестр используют только для диагностики: убедиться, что ветка драйвера HASP/Sentinel присутствует, то есть драйвер установлен. Адрес удалённого ключа задаётся не через реестр, а через nethasp.ini или ACC — только эти два способа поддерживаются и переживают обновление драйвера.
Ошибка «Не обнаружен ключ защиты» и её причины
Самое частое сообщение при запуске — Не обнаружен ключ защиты программы или произведён запуск с недопустимым ключом. Причин несколько, и адрес ключа — лишь одна из них.
Короткий порядок разбора:
- 🔌 Локальный ключ — переткните брелок в другой USB-порт, переустановите драйвер, проверьте ключ в диспетчере устройств.
- 🌐 Сетевой ключ — проверьте, запущена ли служба менеджера лицензий на сервере, доступен ли сервер по сети (
ping), открыт ли порт475и1947. - 📄 Программная лицензия — если «слетела» после смены оборудования, активируйте заново по пин-коду.
Прежде чем перезапускать службу менеджера лицензий на сервере, помните: в момент перезапуска у всех пользователей на короткое время пропадут лицензии и сеансы 1С могут завершиться с ошибкой. Делайте это в перерыве или по согласованию с пользователями.
Особенности в клиент-серверном варианте
В клиент-серверной 1С защиты две, и путать их нельзя.
Лицензия сервера 1С. Самому серверу приложений нужна серверная лицензия — отдельный аппаратный ключ (32- или 64-разрядный) либо программная лицензия сервера. Без неё не запустится кластер.
Клиентские лицензии. Их выдаёт либо сетевой ключ на том же или другом сервере, либо комплект программных клиентских лицензий. Если клиентские лицензии берутся с сетевого ключа, адрес ключа задают так же — через nethasp.ini в каталоге conf на сервере приложений, потому что при тонком клиенте через веб-сервер лицензию часто запрашивает именно серверный процесс.
Что важно учесть:
- Файл
nethasp.iniна сервере читается под учётной записью службы сервера 1С (rphost/агент кластера), а не под вашим пользователем. У этой учётки должен быть доступ к сети и к серверу с ключом. - Служба менеджера лицензий и служба сервера 1С — разные службы. Ключ может быть подключён к третьему компьютеру: тогда и клиенты, и сервер указывают его адрес.
- Фаервол между сервером приложений и сервером с ключом должен пропускать порт
475(или1947для Sentinel).
На терминальном сервере достаточно одного nethasp.ini в каталоге conf — он подействует для всех пользовательских сеансов сразу, по отдельным папкам раскладывать не нужно.
Программная лицензия вместо аппаратного ключа
Если возиться с адресами и драйверами не хочется, аппаратный ключ заменяют программной лицензией. Пути указывать не придётся вовсе.
Как это работает:
- лицензия активируется пин-кодом из комплекта поставки — одноразово, через помощник лицензирования при первом запуске или в разделе настроек лицензирования;
- активированная лицензия привязывается к параметрам компьютера и сохраняется в папку
1C\licensesавтоматически; - для многопользовательской работы существуют программные лицензии на несколько рабочих мест — их активируют на сервере, и он раздаёт сеансы клиентам, как сетевой ключ.
Минус один и существенный: программная лицензия жёстко привязана к железу. Серьёзная смена конфигурации компьютера (материнская плата, иногда — крупное обновление) приводит к тому, что лицензия перестаёт действовать и нужна повторная активация. Поэтому резервный пин-код и привязку к учётной записи поставщика храните отдельно. Для парка машин, где оборудование меняется часто, сетевой аппаратный ключ бывает удобнее именно переносимостью.
Где в конфигураторе 1С указать путь к ключу защиты?
nethasp.ini или в Sentinel ACC (http://localhost:1947), а не в самой программе.Какой порт нужен для сетевого ключа 1С?
475 (TCP и UDP). Служба Sentinel и её веб-консоль — на порту 1947. Для корректной выдачи лицензий эти порты должны быть открыты на сервере с ключом и доступны клиентам.Куда сохраняются программные лицензии 1С?
C:\ProgramData\1C\licenses (общий для всех пользователей) и %LOCALAPPDATA%\1C\licenses (для текущего пользователя). Платформа создаёт и обновляет эти файлы сама; вручную их переносить не нужно.Как указать сразу несколько серверов с ключами?
nethasp.ini перечислите адреса в строке NH_SERVER_ADDR через запятую. В Sentinel ACC адреса вписывают по одному в строке в разделе Access to Remote License Managers. Клиент опросит их по порядку.