Проблемы с аппаратными ключами защиты HASP — одна из классических «головных болей» системного администратора 1С. Ситуация, когда утром пользователи заходят без проблем, а к обеду система начинает выдавать сообщения об отсутствии лицензии, часто встречается на современных операционных системах, таких как Windows Server 2019. Особенно остро проблема проявляется в терминальных (RDP) средах и при смешанном использовании веб-клиентов и тонких клиентов.
В этой статье мы подробно разберем, почему «отваливается» HASP Loader, как правильно настроить раздачу лицензий и какие системные настройки Windows мешают стабильной работе ключа.
Первым делом проанализируем ситуацию: почему количество занятых лицензий в AKS Monitor может не совпадать с реальным количеством работающих пользователей. Главная причина кроется в «винегрете» способов получения лицензий. Существует два основных механизма:
1cv8.exe) напрямую от менеджера лицензий по сети. В режиме RDP-сессии на одного пользователя тратится одна лицензия, сколько бы баз он ни открыл.rphost). В этом случае лицензия тратится на каждый сеанс (каждое открытое окно базы).Если у вас включен параметр Разрешить выдачу лицензий сервером 1С:Предприятия, и при этом работает HASP LM, может возникнуть ситуация, когда часть пользователей «отъедает» лицензии по первому сценарию, а часть — по второму. В результате 20-пользовательский ключ заканчивается мгновенно. Проанализируем колонку «Лицензия» в консоли сервера 1С: если вы видите там Сервер, ORGL8 Лок 20, значит, лицензию выдал сервер, и она считается на каждое окно. Если написано Клиент, ORGL8 Сет 20 — лицензию взял сам клиент от менеджера.
Чтобы клиентские приложения всегда находили ключ быстро и не «сдавались», заставляя сервер выдавать лицензии из своего пула, необходимо жестко прописать путь к менеджеру лицензий. По умолчанию 1С ищет ключ широковещательным запросом (broadcast), который в нагруженных сетях или при использовании RDP часто работает нестабильно.
Найдем файл nethasp.ini. Обычно он располагается в папке C:\Program Files\1cv8\conf\ или в папке с конкретной версией платформы. Отредактируем секцию [NH_TCPIP] следующим образом:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100 ; Укажите здесь IP вашего сервера с ключом
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = Disabled
Параметр NH_USE_BROADCAST = Disabled критически важен: мы запрещаем 1С «кричать» на всю сеть в поисках ключа и направляем её по конкретному адресу. Это исключает задержки поиска, превышающие 3 секунды, на которые часто жалуются пользователи.
Проанализируем работу пользователей в терминале. Часто бывает так: пользователь закрыл 1С, но его лицензия всё ещё числится занятой. Одной из неочевидных причин является процесс SplWOW64.exe (подсистема печати для 32-битных приложений в 64-битной ОС). Этот процесс может удерживать сессию активной в течение нескольких минут после закрытия программы, не давая лицензии освободиться.
Для исправления этой ситуации настроим таймаут завершения процесса через реестр. Выполним следующие действия:
regedit.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print.DWORD с именем SplWOW64TimeOutSeconds и установим значение 5.Это заставит систему завершать процесс печати быстрее, что позволит корректно закрывать терминальные сессии и своевременно возвращать лицензии в пул HASP LM.
Если служба Sentinel LDK License Manager (она же hasplms или старый HASP Loader) всё же падает, настроим её автоматическое восстановление. Рассмотрим, как это сделать штатными средствами Windows:
Службы (services.msc).Свойства, вкладка Восстановление.Сброс счетчика ошибок через в значение 0, а Выполнить перезапуск через — в 0 минут (или 1 минуту для стабильности).На Windows Server 2019 по умолчанию включены агрессивные настройки энергосбережения. Система может кратковременно отключать питание USB-порта, если ей кажется, что устройство неактивно. Для аппаратного ключа 1С это фатально — связь разрывается, и HASP Loader теряет ключ.
Проанализируем настройки электропитания:
Электропитание.Высокая производительность.Изменить дополнительные параметры питания -> Параметры USB -> Параметр временного отключения USB-порта и установим значение Запрещено.Диспетчере устройств найдем все Корневые USB-концентраторы, в их свойствах на вкладке Управление электропитанием снимем галочку Разрешить отключение этого устройства для экономии энергии.Если вышеуказанные меры не помогли, выполним «чистую» установку драйверов защиты. Часто при обновлении платформы 1С драйверы накладываются друг на друга, создавая конфликты. Рассмотрим правильный алгоритм:
HASP License Manager через установку и удаление программ.haspdinst.exe -purge).Sentinel LDK Runtime GUI Install с сайта производителя (Thales/Gemalto), а не используем тот, что идет в комплекте с платформой 1С. Версии 8.x и выше гораздо стабильнее работают на Windows Server 2019.HASP License Manager.Для окончательного решения проблемы рекомендуется придерживаться стратегии «Один источник лицензий». Если у вас есть возможность, лучше докупить недостающие программные или аппаратные лицензии для внешних пользователей и отключить выдачу лицензий сервером 1С в настройках информационных баз. Это приведет систему к единообразию: все лицензии будет раздавать HASP LM, они будут считаться по рабочим местам (одна лицензия на RDP-сессию), и конфликты исчезнут.
Проанализируем ситуацию через неделю после внесения правок. Если AKS Monitor показывает стабильное число подключений без резких скачков и «зависших» сессий, значит, настройка прошла успешно. Помните, что аппаратный ключ — устройство физическое, и если переустановка драйверов помогает лишь на пару дней, стоит проверить ключ на другом ПК: возможно, имеет место физическая деградация компонентов самого USB-токена.