Откуда 1С берёт лицензию и почему её не находит: диагностика по шагам

· 10 мин

Содержание

Проверить лицензию 1С быстрее всего из самой программы: откройте Главное меню (≡) → Справка → О программе. В окне указано, какую лицензию получил текущий сеанс: программную (с путём к файлу .lic) или аппаратную (ключ HASP), и с какого компьютера она пришла. Если 1С не запускается вовсе, проверка идёт снаружи: папка с файлами .lic, служба менеджера лицензий HASP, порт 475 и файл nethasp.ini.

Порядок проверки различается для программной лицензии, локального ключа и сетевого менеджера лицензий. Всё описанное относится к платформе 8.3 и не зависит от конфигурации: в Бухгалтерии, ЗУП и УТ лицензирование работает одинаково.

Какие лицензии бывают у 1С 8.3 и где их ищет платформа

Платформа при запуске ищет лицензию сразу в нескольких местах. Чтобы понять, что проверять, сначала определите, чем защищён ваш комплект.

Вид защитыКак выглядитГде «живёт» лицензияЧто проверять
Программная клиентскаяПин-код из 15 цифр в конвертеФайл .lic на компьютере пользователя или на сервере 1СПапку licenses, утилиту ring
Аппаратная локальнаяUSB-ключ на одно рабочее местоКлюч, вставленный в этот компьютерДрайвер ключа
Аппаратная сетеваяUSB-ключ с маркировкой NET и числом местКлюч на компьютере с HASP License ManagerСлужбу менеджера, порт 475, nethasp.ini
Лицензия сервера 1СПин-код или ключ для сервераКомпьютер с сервером 1С:ПредприятияКонсоль кластера, rac

📌 Главное различие:

  • 🔑 программная лицензия привязана к параметрам компьютера, при их смене она перестаёт действовать;
  • 🔌 аппаратная привязана к ключу: переставили ключ — лицензия «переехала» вместе с ним;
  • 🌐 сетевой ключ раздаёт места по сети, и за выдачу отвечает отдельная программа — HASP License Manager.

Проверка программной лицензии: «О программе», файлы .lic и утилита ring

Окно «О программе»

Запустите базу в режиме 1С:Предприятие и откройте ≡ → Справка → О программе. Найдите строку о лицензии. Там видно три вещи:

  1. Вид лицензии: программная или ключ защиты.
  2. Для программной — путь к файлу, из которого она получена.
  3. Для клиент-серверной базы — получена ли лицензия на клиенте или выдана сервером.

Если в окне указан не тот файл, который вы ожидали (например, лицензия пришла с сервера, а не локальная), значит, у вас несколько источников и платформа выбрала первый подходящий.

Папки с файлами лицензий

Активированная программная лицензия — это файл с расширением .lic. Стандартные места хранения в Windows:

  • C:\ProgramData\1C\licenses — лицензия для всех пользователей компьютера;
  • %APPDATA%\1C\licenses — лицензия только для текущего пользователя Windows.

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

Не правьте и не переименовывайте содержимое .lic. Любое изменение внутри файла делает лицензию недействительной. Копию файла держите в резервном хранилище, но учтите: на другом компьютере она работать не будет.

Утилита ring

Для работы с программными лицензиями без запуска базы у 1С есть утилита командной строки ring с модулем лицензирования. Её ставят отдельно вместе с инструментами лицензирования, для работы нужна Java.

ring license list
ring license info --name <имя_лицензии>
ring license validate --name <имя_лицензии>
  • list выводит все активированные лицензии на компьютере;
  • info показывает данные конкретной лицензии;
  • validate проверяет, подходит ли она к текущему оборудованию.

Если validate сообщает о несоответствии, причина почти всегда в смене оборудования или переустановке ОС. Полный список параметров смотрите в ring license help.

Что сбивает привязку программной лицензии

Лицензия запоминает параметры компьютера. Её «роняет»:

  • 🖥 замена материнской платы, процессора, системного диска;
  • 🌐 замена или отключение сетевой карты;
  • 💿 переустановка Windows;
  • ☁️ для виртуальной машины — смена её параметров, перенос на другой хост с изменением оборудования.

В этом случае лицензию активируют заново резервным пин-кодом из того же конверта. Когда резервные пин-коды закончились, восстановление идёт через партнёра 1С или центр лицензирования с объяснением причины.

Как проверить ключ HASP и менеджер лицензий HASP License Manager

Локальный ключ

Для локального USB-ключа менеджер лицензий не нужен, нужен только драйвер ключа. Проверка:

  1. Посмотрите на ключ: индикатор должен гореть. Не горит — драйвер не установлен или порт не работает .
  2. Откройте Диспетчер устройств и найдите ключ в разделе USB-устройств.
  3. Если установлен драйвер Sentinel, откройте в браузере http://localhost:1947 — в списке ключей должен быть ваш ключ с отметкой о локальном подключении.

Переустановку драйвера делают из каталога дистрибутива платформы: там лежит установщик драйвера защиты. Перед переустановкой выньте ключ из порта.

Сетевой ключ и HASP License Manager

Сетевой ключ вставляют в один компьютер, на нём же ставят HASP License Manager (HASP LM). Остальные компьютеры получают места по сети через этот менеджер. Проверяйте по цепочке:

  1. Служба запущена. На компьютере с ключом откройте services.msc и найдите службу с HASP в названии. Состояние — «Выполняется», тип запуска — «Автоматически».
  2. Ключ виден менеджеру. Запустите утилиту Aladdin Monitor (она ставится отдельно). В дереве слева должен появиться компьютер с менеджером, а под ним — ключ и число занятых мест.
  3. Порт 475 доступен. HASP LM работает через порт 475. С клиентского компьютера проверьте TCP-доступ:
Test-NetConnection -ComputerName 192.168.1.10 -Port 475

TcpTestSucceeded : True значит, что брандмауэр пропускает соединение. Если False — откройте на компьютере с ключом входящие соединения на порт 475 по TCP и UDP.

Aladdin Monitor показывает, кто сейчас занимает места сетевого ключа. Это самый быстрый способ ответить на вопрос «почему не хватает лицензий, если людей меньше».

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

Несколько ключей на одном компьютере

Два ключа одинаковой маркировки на одном компьютере менеджер лицензий не суммирует: виден только один. Ключи разных серий на одном компьютере работают. Если у вас два одинаковых сетевых ключа, разнесите их по разным компьютерам, на каждом поставьте свой менеджер.

Настройка сетевого менеджера лицензий через nethasp.ini

По умолчанию клиент 1С ищет сетевой ключ широковещательным запросом. В сети с несколькими подсетями, VPN или VLAN такой поиск не доходит до менеджера, и 1С сообщает, что ключ не найден. Решение — явно указать адрес менеджера в nethasp.ini.

Файл лежит в каталоге conf установленной платформы на каждом клиентском компьютере (обычно C:\Program Files\1cv8\conf\ или bin\conf внутри каталога конкретной версии). Рабочий пример:

[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = UDP
NH_USE_BROADCAST = Disabled

Что здесь важно:

  • NH_SERVER_ADDR — IP-адрес компьютера с ключом и менеджером. Несколько адресов перечисляют через запятую;
  • NH_USE_BROADCAST = Disabled — отключает широковещательный поиск, клиент идёт сразу по адресу;
  • NH_TCPIP_METHOD — способ обмена. Если по UDP связь нестабильна, попробуйте TCP.

После правки файла перезапустите 1С на клиенте. Перезагружать компьютер не нужно.

Если на клиенте установлено несколько версий платформы, у каждой может быть свой nethasp.ini. Правьте файл той версии, которой запускаете базу.

Лицензии сервера 1С и клиент-серверный вариант

В клиент-серверной работе есть две разные проверки: лицензия самого сервера и клиентские лицензии.

Лицензия сервера

Без лицензии сервера 1С:Предприятия базы на нём не запускаются. Программная лицензия сервера хранится на компьютере с сервером в той же папке C:\ProgramData\1C\licenses. Проверка — та же утилита ring, запущенная на сервере.

Клиентские лицензии, выдаваемые сервером

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

Кто какую лицензию занял, видно двумя способами.

Консоль кластера. Откройте оснастку администрирования серверов, раскройте кластер и узел «Лицензии». Там список лицензий, выданных сеансам, с указанием вида и источника.

Утилита rac. Сначала получите идентификатор кластера, затем список сеансов с лицензиями:

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

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

💡 Если пользователей 8, а лицензия на 10 мест «закончилась», ищите в этом списке зависшие сеансы и фоновые задания, которые тоже могут занимать места, и одного пользователя, открывшего базу в нескольких окнах на разных компьютерах.

Журнал получения лицензий: технологический журнал и событие LIC

Когда лицензия «то есть, то нет», окна «О программе» мало. Нужен журнал: в технологическом журнале платформы есть событие LIC, в которое пишутся попытки получить лицензию и их результат.

Создайте файл logcfg.xml в каталоге conf платформы на том компьютере, где получают лицензию (на клиенте — для локальной лицензии, на сервере — для серверной):

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\1C_logs\lic" history="24">
    <event>
      <eq property="name" value="LIC"/>
    </event>
    <property name="all"/>
  </log>
</config>

Платформа подхватит настройку сама в течение примерно минуты. Воспроизведите проблему и откройте файлы .log в C:\1C_logs\lic. По записям видно, где платформа искала лицензию, какой файл или ключ пробовала и с каким результатом.

Каталог для журнала должен быть доступен на запись пользователю, под которым работает 1С или служба сервера. После диагностики удалите logcfg.xml, иначе журнал будет расти и занимать диск.

Журнал регистрации базы (Администрирование → Обслуживание → Журнал регистрации) про лицензии почти ничего не скажет: если лицензии нет, сеанс до базы не доходит.

Ошибки получения лицензии и что с ними делать

Самое частое сообщение — Не обнаружен ключ защиты программы или полученная программная лицензия!. Оно одно на все случаи, поэтому причину ищут по обстоятельствам.

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

Если не помогло

  1. Включите технологический журнал с событием LIC и посмотрите, какой источник платформа пробует последним.
  2. Временно уберите лишние источники: оставьте одну лицензию и проверьте запуск.
  3. Проверьте права: у пользователя Windows должно быть право на чтение папки C:\ProgramData\1C\licenses.
  4. Для сетевого ключа попробуйте вставить его в другой USB-порт напрямую, без удлинителя и хаба.

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

Узнавать о падении менеджера лицензий от бухгалтерии в понедельник утром — плохой сценарий. Простой скрипт PowerShell, запущенный по расписанию, ловит проблему раньше пользователей.

# Проверка службы HASP и доступности порта менеджера лицензий
$server = "192.168.1.10"
$log    = "C:\1C_logs\lic_monitor.log"
$time   = Get-Date -Format "yyyy-MM-dd HH:mm"

$svc = Get-Service | Where-Object { $_.DisplayName -like "*HASP*" }
if (-not $svc) {
    Add-Content $log "$time служба HASP не найдена"
} elseif ($svc.Status -ne "Running") {
    Add-Content $log "$time служба $($svc.Name) в состоянии $($svc.Status)"
}

$port = Test-NetConnection -ComputerName $server -Port 475 -WarningAction SilentlyContinue
if (-not $port.TcpTestSucceeded) {
    Add-Content $log "$time порт 475 на $server недоступен"
}

Как запустить:

  1. Сохраните скрипт, например, в C:\Scripts\check_hasp.ps1.
  2. В Планировщике заданий создайте задачу с запуском каждые 15 минут.
  3. Действие — powershell.exe -ExecutionPolicy Bypass -File C:\Scripts\check_hasp.ps1.

Вместо записи в файл можно отправлять письмо или сообщение в мессенджер — добавьте эту команду в ветки с ошибкой.

Что ещё стоит контролировать по расписанию:

  • 📄 наличие и дату файлов в C:\ProgramData\1C\licenses — случайное удаление папки при «чистке» встречается чаще, чем кажется;
  • 📊 число занятых лицензий через rac session list --licenses — если оно регулярно упирается в предел, мест пора докупать;
  • 🔑 результат ring license validate после обновления драйверов, BIOS или переноса виртуальной машины.

Скрипт сам служб не перезапускает, и это сознательно: автоматический перезапуск HASP LM посреди рабочего дня оборвёт лицензии всем пользователям.

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

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