Почему в 1С возникает ошибка «ORGL8 сетевой, лицензии исчерпаны» и как освободить занятые лицензии?

Системный администратор 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При организации многопользовательской работы с базой 1С через терминальный сервер (RDP) системные администраторы нередко сталкиваются с ситуацией, когда очередной пользователь не может войти в систему. При запуске программа выдает диагностическое сообщение: «поиск лицензии на клиенте... nethasp.ini прочитан успешно, ORGL8 сетевой, лицензии исчерпаны. Файл программной лицензии не найден». При этом общее число фактически работающих сотрудников меньше номинального количества купленных лицензий, а ошибка возникает у любого пользователя, запускающего сеанс сверх определенного лимита.

Разберем причины возникновения этой ошибки, выясним, почему сетевой менеджер лицензий перестает отдавать свободные слоты, и подробно рассмотрим пошаговые способы восстановления нормальной работы.

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

Проанализируем архитектуру раздачи аппаратных лицензий HASP и определим узкие места, приводящие к ошибке исчерпания лицензий:

  1. Зависшие и разорванные RDP-сеансы (Disconnected): если сотрудник не выполняет корректный выход из базы и завершение сеанса Windows, а просто закрывает окно терминала («крестиком»), его сеанс переходит в состояние отключенного. Процесс 1cv8.exe продолжает выполняться в фоновом режиме на сервере, удерживая сетевую лицензию.
  2. Зависшие «осиротевшие» процессы: при аварийном падении сессии или сбое сети процесс платформы может остаться в памяти без активного пользователя. Менеджер лицензий не получает сигнал о завершении работы и считает лицензию занятой.
  3. Удержание лицензий службой HASP License Manager: служба раздачи ключей на сервере, к которому физически подключен USB-токен, хранит таблицу дескрипторов сессий. Если соединение клиента с сервером разорвалось без штатного пакета освобождения, лицензия может оставаться заблокированной до перезапуска службы или истечения сетевого тайм-аута.
  4. Использование двух сетевых ключей на одном компьютере: драйвер и служба сетевого лицензирования не умеют суммировать лицензии с двух сетевых аппаратных ключей одинаковой серии (например, два ключа с маркировкой ORGL8), вставленных в один физический хост. Менеджер лицензий видит только один из них (первый инициализированный), а емкость второго ключа полностью игнорируется.
  5. Сбои широковещательного опроса (Broadcast): при отсутствии жестко заданных настроек в конфигурационном файле клиент опрашивает локальную сеть широковещательными пакетами. При высокой сетевой нагрузке или фильтрации широковещательного трафика между подсетями пакеты теряются, что приводит к ложным ошибкам нехватки лицензий.

Шаг 1. Перезапуск службы лицензирования и серверов

Рассмотрим самое быстрое оперативное решение, которое позволяет вернуть систему в строй в экстренной ситуации.

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

Разберем порядок действий:

  1. Перезапуск службы без перезагрузки сервера: на машине, где физически установлен USB-ключ, не обязательно выполнять полную перезагрузку операционной системы. Достаточно перезапустить службу сетевого менеджера лицензий. Для этого откроем командную строку от имени администратора и выполним команды:
    
    net stop "HASP Loader"
    net start "HASP Loader"
    
    (В зависимости от версии драйвера служба в диспетчере служб Windows может также называться hasplms либо ссылаться на исполняемый файл nhsrvice.exe).
  2. Очистка зависших процессов на терминальном сервере: на терминальном узле открываем Диспетчер задач, переходим на вкладку пользователей и завершаем все отключенные сеансы. Во вкладке «Подробности» убеждаемся в отсутствии зависших процессов 1cv8.exe или 1cv8c.exe.
  3. Полная перезагрузка при глубоком зависании стека USB: если перезапуск службы не помог из-за сбоя виртуального USB-контроллера (в гипервизорах Hyper-V, ESXi или USB-over-IP концентраторах), последовательно перезагружаем сначала сервер с аппаратными ключами, а затем терминальный сервер пользователей.

Шаг 2. Мониторинг занятых лицензий

Чтобы точно знать, какие компьютеры и процессы занимают лицензии, воспользуемся специализированной утилитой мониторинга Aladdin Monitor (AKS Monitor).

  1. Устанавливаем и запускаем утилиту на любом компьютере в подсети.
  2. В дереве сетевых серверов находим имя хоста, раздающего лицензии по протоколу TCP/IP.
  3. Анализируем список активных подключений: утилита показывает имя клиента, IP-адрес, имя пользователя и точное количество лицензий, которые удерживаются данным подключением.
  4. Если в списке обнаружены старые сеансы несуществующих компьютеров или отключенных пользователей, это однозначно указывает на необходимость перезапуска службы менеджера лицензий.

Шаг 3. Точная настройка файла nethasp.ini

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

На терминальном сервере переходим в каталог конфигурации платформы 1С. Файл nethasp.ini располагается в каталоге конкретной версии платформы (например, conf\nethasp.ini) либо в общесистемном каталоге настроек. Открываем файл в текстовом редакторе и задаем следующие параметры:


[NH_COMMON]
NH_TCPIP = Enabled
NH_IPX = Disabled
NH_NETBIOS = Disabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_USE_BROADCAST = Disabled
NH_SESSION = 5
NH_SEND_RCV = 4

Посмотрим на назначение указанных директив:

  1. NH_TCPIP = Enabled — принудительно включает стек протоколов TCP/IP, отключая устаревшие протоколы IPX и NetBIOS, что ускоряет поиск.
  2. NH_SERVER_ADDR = 192.168.1.10 — указывает прямой IP-адрес сервера (или контроллера домена), на котором запущен менеджер лицензий. Если в сети используется несколько серверов с ключами, их IP-адреса перечисляются через запятую.
  3. NH_USE_BROADCAST = Disabled — отключает широковещательную рассылку запросов, защищая от сетевых коллизий и сбоев маршрутизации.
  4. NH_SESSION и NH_SEND_RCV — увеличивают допустимые сетевые тайм-ауты ожидания ответа от ключа, предотвращая ложный сброс соединения при кратковременных нагрузках на канал.

Шаг 4. Настройка групповых политик для RDP-сеансов

Чтобы исключить повторение проблемы в будущем из-за небрежности пользователей, закрывающих терминальные окна крестиком, настроим автоматическое завершение брошенных сессий.

  1. На терминальном сервере открываем редактор локальной групповой политики: нажимаем Win + R, вводим gpedit.msc и нажимаем Enter.
  2. Переходим по ветке: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Ограничения по времени сеанса.
  3. Находим параметр «Задать предел времени для отключенных сеансов», переводим его в состояние «Включено» и задаем интервал, например, 15 минут или 30 минут.
  4. Находим параметр «Завершать сеанс при достижении предела времени» и активируем его.

Благодаря этой настройке сервер Windows самостоятельно закроет забытые сеансы и принудительно выгрузит процессы 1cv8.exe, что гарантированно вернет сетевые лицензии в пул свободных для остальных сотрудников.

← На главную