Клиент 1С не видит лицензию: проверяем сервер ключей по шагам

· 9 мин

Содержание

Доступность сервера лицензирования 1С проверяют в четыре приёма: на сервере смотрят, видит ли Windows ключ и запущена ли служба HASP License Manager, затем с клиента проверяют порт 475, затем — файл nethasp.ini, и только потом лезут в журналы. Если ключ стоит на сервере 1С:Предприятия, первым делом откройте консоль кластера: там видно, какую лицензию получил каждый сеанс.

Выбор зависит от схемы. С сетевым USB-ключом HASP почти все сбои — сеть и служба менеджера лицензий. С программной лицензией на сервере 1С проблемы обычно в файле лицензии и в пользователе, от имени которого работает служба. Ниже разобраны обе схемы.

Кто выдаёт лицензию: схема обмена при запуске 1С

Без понимания схемы легко искать неисправность не там. Клиент 1С при старте ищет лицензию в определённом порядке, и сбой может быть на любом звене.

Основные варианты:

  • 🔑 Локальный ключ HASP — вставлен в компьютер пользователя. Нужен только драйвер, сеть не участвует.
  • 🌐 Сетевой ключ HASP — стоит на одном компьютере, там же работает HASP License Manager. Клиенты обращаются к нему по сети на порт 475.
  • 🖥️ Ключ или программная лицензия на сервере 1С — в клиент-серверном варианте лицензию может выдавать сам сервер 1С:Предприятия. Клиент тогда общается не с менеджером лицензий, а с кластером.
  • 📄 Программная лицензия на компьютере пользователя — файл .lic, привязанный к оборудованию. Сеть не нужна.

Цепочка для сетевого ключа выглядит так:

  1. Клиент 1С читает nethasp.ini и узнаёт адрес менеджера лицензий (или ищет его широковещательным запросом).
  2. Отправляет запрос на порт 475 сервера с ключом.
  3. HASP License Manager через драйвер обращается к USB-ключу.
  4. Если свободные места есть, клиент получает лицензию и держит её до закрытия сеанса.

Сбой на шаге 1 — неверный адрес. На шаге 2 — сеть или брандмауэр. На шаге 3 — драйвер или сам ключ. На шаге 4 — места кончились. Отсюда и порядок проверки.

Без лицензии платформа базу не запустит. Исключение — учебная версия. Поэтому сообщение Не найден ключ защиты программы или полученная программная лицензия — это не предупреждение, а полная остановка работы.

Проверка лицензий через консоль администрирования кластера

Если у вас клиент-серверный вариант, начните с консоли. Она за минуту отвечает на главный вопрос: получает ли кто-то лицензию вообще.

Что сделать:

  1. Запустите консоль администрирования серверов 1С:Предприятия и подключитесь к центральному серверу.
  2. Раскройте кластер, затем Информационные базы → <имя базы> → Сеансы.
  3. У работающих сеансов посмотрите сведения о лицензии: тип (ключ HASP или программная), где получена (клиентом или сервером), серию ключа или имя файла лицензии.
  4. Сравните с соседними пользователями. Если у одних лицензия есть, а у другого сеанс не создаётся — проблема на его компьютере, а не на сервере ключей.

То же самое из командной строки через сервер администрирования ras:

rac cluster list
rac session list --cluster=<id кластера> --licenses

Первая команда даёт идентификатор кластера. Вторая выводит сеансы вместе со сведениями о выданных лицензиях. Если кластер защищён паролем администратора, добавьте параметры авторизации — их точный синтаксис смотрите в rac help session.

Отдельно проверьте свойства информационной базы в консоли. Там есть параметр, разрешающий выдачу лицензий сервером 1С:Предприятия. Если ключ или программная лицензия стоят на сервере, а этот параметр выключен, клиенты будут искать лицензию у себя и не найдут.

Если консоль не открывается с ошибкой про не зарегистрированный компонент, перерегистрируйте radmin.dll нужной разрядности командой regsvr32 из каталога bin установленной платформы, запустив командную строку от имени администратора.

Службы и процессы на компьютере с ключом

Следующий шаг — сам компьютер, где стоит ключ. Здесь проверяют три вещи: видит ли система ключ, работает ли служба, слушает ли она порт.

Ключ на месте. Светодиод на USB-ключе должен гореть ровно. Не горит — ключ не опознан: нет драйвера, неисправен порт или удлинитель. Попробуйте другой порт USB, лучше на задней панели, без хабов.

Служба менеджера лицензий. Откройте services.msc и найдите службу HASP License Manager. В разных версиях она отображается по-разному, поэтому ищите по слову «HASP». Тип запуска — «Автоматически», состояние — «Выполняется».

Из PowerShell то же самое быстрее:

Get-Service | Where-Object { $_.DisplayName -like "*HASP*" -or $_.DisplayName -like "*Sentinel*" }

Порт слушается. Если служба запущена, но клиенты её не видят, проверьте, открыт ли порт:

netstat -ano | findstr :475

В выводе должна быть строка с портом 475 и PID процесса. Сверьте PID в диспетчере задач: он должен принадлежать менеджеру лицензий. Если порт занят чем-то другим, менеджер не сможет его открыть.

Перезапуск службы HASP License Manager обрывает выдачу лицензий. Пользователи, у которых 1С уже открыта, могут получить сообщение о потере ключа. Делайте это после предупреждения коллег или вне рабочего времени.

Частая ловушка — менеджер лицензий установлен как обычное приложение, а не как служба. Тогда он работает, пока кто-то вошёл в систему, и пропадает после перезагрузки сервера. При установке HASP License Manager выбирайте вариант со службой.

Сетевая проверка: порты 475 и 1947, nethasp.ini

Теперь смотрим со стороны клиента. Здесь выясняется, доходит ли запрос до сервера ключей.

Какие порты нужны

ПортПротоколКто использует
475UDP и TCPHASP License Manager — выдача лицензий сетевых ключей 1С
1947TCPSentinel Admin Control Center — веб-интерфейс диагностики ключей
1540, 1541TCPАгент и менеджер кластера 1С (если лицензию выдаёт сервер 1С)
диапазон рабочих процессовTCPЗадаётся в свойствах рабочего сервера, по умолчанию 1560–1591

Проверка с клиента

Сначала простая доступность узла и TCP-порта:

Test-NetConnection -ComputerName 192.168.0.10 -Port 475

TcpTestSucceeded : True значит, что порт открыт по TCP. Этот командлет не умеет проверять UDP, а сетевые ключи по умолчанию ищутся именно по UDP. Поэтому успех теста ещё не гарантирует, что UDP-запросы проходят.

Если тест провалился, проверьте брандмауэр на сервере с ключом. Правила можно добавить так (от имени администратора):

New-NetFirewallRule -DisplayName "HASP LM UDP 475" -Direction Inbound -Protocol UDP -LocalPort 475 -Action Allow
New-NetFirewallRule -DisplayName "HASP LM TCP 475" -Direction Inbound -Protocol TCP -LocalPort 475 -Action Allow

Файл nethasp.ini

Клиент 1С берёт настройки поиска ключа из nethasp.ini в каталоге conf платформы, например C:\Program Files\1cv8\conf\nethasp.ini. По умолчанию поиск идёт широковещательным запросом. Он не проходит через маршрутизаторы и VPN, а в больших сетях работает медленно.

Укажите адрес сервера явно:

[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.10
NH_USE_BROADCAST = Disabled
NH_TCPIP_METHOD = UDP

Если серверов с ключами несколько, перечислите адреса через запятую. Когда UDP режется на пути, попробуйте NH_TCPIP_METHOD = TCP. После правки перезапустите 1С на клиенте: файл читается при старте.

Правьте nethasp.ini на каждом клиенте и для каждой установленной версии платформы — у разных версий может быть свой каталог conf.

Драйвер защиты: haspdinst и Admin Control Center

Если ключ не горит или служба не видит его, причина почти всегда в драйвере. Драйвер ставится утилитой haspdinst.exe от Sentinel (бывший Aladdin). Её же используют для переустановки.

Порядок переустановки:

  1. Предупредите пользователей: пока драйвера нет, ключ не выдаёт лицензий.
  2. Выньте USB-ключ.
  3. Откройте командную строку от имени администратора в папке с утилитой.
  4. Удалите старый драйвер: haspdinst.exe -r.
  5. Установите заново: haspdinst.exe -i.
  6. Вставьте ключ и дождитесь, пока загорится светодиод.

Остальные ключи утилиты смотрите в её встроенной справке (haspdinst.exe -help). На старых серверах иногда встречаются остатки драйверов разных лет — после удаления перезагрузите компьютер перед установкой.

Admin Control Center

Вместе со свежим драйвером ставится веб-интерфейс Sentinel Admin Control Center. Откройте в браузере на сервере:

http://localhost:1947

В разделе ключей должен быть виден ваш USB-ключ. Если его там нет, система ключ не видит: дело в драйвере, порте USB или самом ключе. Если ключ есть — проблема выше по цепочке, в менеджере лицензий или сети. Там же есть страницы журнала доступа и диагностики.

Сервер 1С на Linux

На Linux ключ обслуживает демон драйвера Sentinel (aksusbd). Быстрые проверки:

lsusb | grep -i 0529
systemctl status aksusbd

Код производителя 0529 — это ключи Aladdin/Sentinel. Пустой вывод lsusb значит, что ключ не виден на уровне USB. В виртуальной машине это часто означает, что USB-устройство не проброшено в гостевую систему.

Диагностика: выберите симптом

Журналы и логирование: где искать следы сбоя

Когда всё выглядит рабочим, а лицензия пропадает время от времени, нужны журналы.

Журнал событий Windows. Откройте eventvwr.msc и посмотрите разделы «Система» и «Приложение» за время сбоя. Ищите остановки службы менеджера лицензий, отключения USB-устройств и ошибки драйвера. Отключение USB при простое часто связано с энергосбережением: в диспетчере устройств у корневых USB-концентраторов снимите разрешение отключать устройство для экономии энергии.

Технологический журнал 1С. В клиент-серверном варианте включите сбор событий лицензирования в logcfg.xml в каталоге conf сервера. Событие лицензирования называется LIC:

<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\techlog" history="24">
    <event>
      <eq property="name" value="LIC"/>
    </event>
    <property name="all"/>
  </log>
</config>

Журнал начнёт писаться через минуту после сохранения файла. Каталог C:\techlog должен существовать, а пользователь службы сервера 1С — иметь право записи. history="24" хранит логи 24 часа.

Не оставляйте технологический журнал с <property name="all"/> включённым надолго. Он быстро растёт и может занять диск сервера. Соберите данные за период сбоя и удалите файл logcfg.xml или его секцию.

Монитор сетевых ключей. Утилита Aladdin Monitor (HASP Monitor) показывает менеджеры лицензий в сети и число занятых мест в каждом ключе. Если монитор с клиента не видит сервер, а на самом сервере видит — проблема точно в сети.

Программная лицензия на сервере 1С: отдельные проверки

Для программных лицензий ключа нет, но проверка сервера лицензирования всё равно нужна.

  • 📁 Файлы лицензий лежат в C:\ProgramData\1C\licenses\ с расширением .lic. Убедитесь, что они на месте и не удалены антивирусом.
  • 👤 Служба сервера 1С работает от отдельного пользователя. У него должно быть право чтения каталога лицензий.
  • 🔧 Изменение оборудования — замена сетевой карты, диска, перенос виртуальной машины — может сделать лицензию недействительной. Это нормальная работа защиты, а не сбой.
  • 🧰 Список установленных лицензий можно посмотреть утилитой лицензирования: ring license list.

Если лицензия слетела после переноса сервера, повторите активацию тем же пин-кодом. У каждого комплекта ограниченное число резервных активаций, поэтому не переактивируйте лицензию «на всякий случай».

Частые вопросы

Можно ли держать сетевой ключ HASP на обычном рабочем компьютере?
Можно, но компьютер должен работать постоянно. Выключили его — лицензии пропали у всех. Надёжнее отдельный сервер или виртуальная машина с пробросом USB.
Сколько ключей можно подключить к одному менеджеру лицензий?
Несколько ключей 1С в одном компьютере допустимы, если это ключи разных серий или разных типов. Два одинаковых многопользовательских ключа одной серии на одном менеджере лицензий могут работать некорректно — их лучше разнести по разным компьютерам.
Почему лицензия держится после закрытия 1С?
Если клиент закрылся аварийно, место освобождается не сразу, а по таймауту. В клиент-серверном варианте проверьте в консоли кластера зависшие сеансы и завершите их — пользователь при этом потеряет несохранённые данные.
Нужен ли HASP License Manager, если ключ стоит на сервере 1С:Предприятия?
Нет. Серверный ключ и клиентские ключи на сервере 1С читает сам сервер через драйвер. Менеджер лицензий нужен, когда клиенты получают лицензии напрямую с сетевого ключа.
Как понять, что дело в нехватке мест, а не в сети?
Если с того же компьютера чуть раньше лицензия получалась, а сейчас нет, и другие пользователи работают — скорее всего, кончились места. Монитор ключей или консоль кластера покажут, сколько лицензий занято.