Мы часто сталкиваемся с ситуацией, когда аппаратные ключи защиты HASP для 1С:Предприятия, прекрасно функционирующие на одной рабочей станции, отказываются работать при установке на сервер, где развернута система 1С. Это может вызывать недоумение и тратить много времени на поиск причины. Давайте вместе разберем эту проблему шаг за шагом и выясним, почему так происходит, а также как это исправить.
Представим типовую ситуацию: у вас есть несколько HASP-ключей (например, на 10 и 20 рабочих мест), которые при подключении к локальной машине работают без нареканий. Однако, когда вы устанавливаете их на сервер 1С:Предприятия, лицензии не обнаруживаются, и пользователи не могут подключиться. При этом, если вы попробуете поменять ключи местами или подключить их к другой локальной машине, они снова начнут работать. Это указывает на то, что проблема не в самих ключах или их драйверах, а, скорее всего, в настройках сервера 1С или механизмах обнаружения HASP License Manager.
Прежде всего, давайте проанализируем, как сервер 1С и клиентские приложения находят HASP-ключи. За это отвечает специальная программа HASP License Manager, а также конфигурационные файлы nethasp.ini и nhsrv.ini.
Проверим пути к ключам в nethasp.ini:
Файл nethasp.ini — это клиентский конфигурационный файл, который указывает, где искать HASP License Manager, а значит, и ключи. Он должен располагаться на машине, с которой осуществляется поиск ключей (т.е. на сервере 1С:Предприятия и на клиентских машинах). Давайте убедимся, что в нем корректно прописаны сетевые пути или IP-адреса компьютеров, где установлены ключи и запущен HASP License Manager.
Типовой пример настройки в nethasp.ini:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10, 192.168.1.11 ; IP-адреса серверов с HASP LM
NH_SERVER_NAME = SERVER1, SERVER2 ; Имена серверов с HASP LM (опционально)
NH_USE_BROADCAST = Disabled ; Отключим широковещательный поиск для ускорения
NH_SESSION = Enabled
NH_SEND_RCV_TIME = 1000 ; Время ожидания ответа
Обратите внимание, что 1С может использовать разные версии nethasp.ini для 32-битных и 64-битных клиентов/сервера. Убедитесь, что вы редактируете именно тот файл, который используется вашей платформой 1С.
Настройка nhsrv.ini для HASP License Manager:
Файл nhsrv.ini используется для настройки самого HASP License Manager. Если HASP LM установлен как служба, этот файл должен находиться в каталоге C:\Windows\SysWOW64 (для 64-битных ОС) или C:\Windows\System32 (для 32-битных ОС). После его изменения службу HASP Loader необходимо перезапустить.
В этом файле мы можем, например, указать имя менеджера лицензий с помощью параметра NHS_SERVERNAMES. Это имя затем можно использовать в nethasp.ini на клиентских машинах или сервере 1С.
Проверка HASP License Manager и драйверов:
Sentinel Admin Control Center: Откройте в браузере адрес http://localhost:1947. Если страница не открывается, это указывает на проблемы с драйвером HASP или его блокировку брандмауэром/антивирусом. На этой странице мы можем проверить, распознаются ли USB-ключи системой (раздел Sentinel Keys) и разрешен ли доступ удаленным клиентам (вкладка Access from Remote Clients).
Служба HASP License Manager: Убедитесь, что служба HASP License Manager (Hasplms.exe) запущена на сервере, где установлен физический ключ. Если нет, запустите ее вручную через оснастку "Службы" Windows.
Брандмауэр и антивирус: HASP License Manager по умолчанию использует порт TCP 475 и UDP-протокол для связи. Мы должны убедиться, что антивирусное ПО и брандмауэр не блокируют процесс nhsrvice.exe и порт 475 (TCP и UDP) на сервере с ключом и на сервере 1С.
Драйверы HASP: В некоторых случаях повреждение или устаревшая версия драйвера может быть причиной. Попробуйте полностью удалить старые драйверы HASP, перезагрузить сервер и установить актуальные драйверы с официального сайта.
Это одна из ключевых особенностей, которая часто становится причиной проблем при работе с несколькими HASP-ключами. Сервер "1С:Предприятие 8" имеет определенные ограничения при поиске и использовании лицензий с аппаратных ключей.
Ограничение по серии ключей: Сервер 1С:Предприятия может получить клиентскую лицензию только от одного аппаратного ключа защиты одной серии, обнаруженного по сети с помощью HASP License Manager. Например, если у вас в сети есть несколько ключей серии ORGL8 (на 5, 10, 20, 50, 100 рабочих мест), сервер 1С произвольно выберет только один из них. Если лицензии на этом ключе будут исчерпаны, поиск других ключей той же серии выполняться не будет.
Мы видим, что сервер 1С сначала ищет ключи серии ORGL8, затем, если их нет или лицензии исчерпаны, переходит к поиску ORG8A (на 300 мест), а затем ORG8B (на 500 мест), но не вернется к поиску других ключей ORGL8, если первый найденный ключ этой серии оказался пустым.
Локальный и сетевой ключ: Сервер 1С:Предприятия может использовать лицензии с одного локального ключа (установленного непосредственно в компьютер с сервером 1С) и одного сетевого ключа через HASP License Manager.
Смешанный способ раздачи: Если у вас используется смешанный способ раздачи ключей (часть клиентов получает лицензии напрямую от HASP LM, а часть — от сервера 1С), то клиенты, получающие лицензии напрямую, не имеют такого ограничения на количество ключей в сети. Это объясняет, почему "третий" ключ, который не видит сервер 1С, может успешно раздавать лицензии некоторым клиентам.
Конфликт использования ключа: Мы не рекомендуем использовать один и тот же ключ одновременно для получения лицензий клиентским приложением напрямую от HASP LM и сервером "1С:Предприятия". Это может привести к ошибкам "Лицензия не обнаружена", даже если в сети есть свободные лицензии.
Мониторинг лицензий: Для мониторинга используемых лицензий и их занятости мы можем использовать утилиту Aladdin monitor или Sentinel Admin Control Center (http://localhost:1947). Пересчитайте занятые лицензии по ключам через административную консоль, чтобы получить актуальную информацию.
Иногда, несмотря на правильные настройки HASP License Manager и отсутствие ограничений, сервер 1С может "потерять" ключи. В таких случаях, как показывает практика, помогает перезапуск службы Агента администрирования 1С серверов.
Давайте разберем по шагам, как это сделать:
Откройте оснастку "Службы" в Windows (через "Панель управления" -> "Администрирование" -> "Службы" или выполнив команду services.msc).
Найдите службу с именем, похожим на "Агент сервера 1С:Предприятия 8.x" (например, 1C:Enterprise 8.3 Server Agent (x86-64)).
Щелкните по ней правой кнопкой мыши и выберите "Перезапустить".
Этот простой шаг часто помогает серверу 1С переинициализировать процесс обнаружения лицензий и "увидеть" доступные HASP-ключи. Именно это действие помогло автору исходной проблемы с форума.
В некоторых сценариях, особенно при наличии множества ключей, смешанных способах раздачи или использовании удаленных рабочих столов (RDP) и веб-клиентов, мы можем рассмотреть более радикальные, но эффективные решения.
Централизация HASP License Manager: Если у вас несколько физических ключей, установленных на разных серверах, мы можем попробовать перенести все ключи на один выделенный сервер и запустить на нем единственный HASP License Manager. Это упростит управление и настройку, так как всем клиентам и серверу 1С нужно будет указывать только один адрес для поиска лицензий.
Переход на программные лицензии: Это наиболее гибкое решение в современной инфраструктуре. Мы можем перевести все аппаратные ключи в программные и раздавать их с одного сервера 1С:Предприятия. Программные лицензии активируются пин-кодом и "привязываются" к оборудованию компьютера. Они имеют ряд преимуществ:
Удобство использования: Отсутствие физических ключей упрощает управление, особенно на арендованных серверах или при использовании виртуализации.
RDP и веб-клиенты: При использовании удаленного доступа (RDP) или веб-клиентов, количество используемых лицензий будет соответствовать количеству сеансов, независимо от типа ключа (USB или программный). Программные лицензии лучше адаптированы для таких сценариев.
Гибкость: Программные лицензии можно активировать отдельно на клиентских ПК, если это необходимо.
Однако, стоит помнить, что при изменении компонентов компьютера может потребоваться повторная активация лицензии с использованием резервного пин-кода.
Для более глубокого анализа ситуации, мы рекомендуем выполнить следующие действия:
Проверьте логи сервера 1С: Внимательно изучите технологический журнал сервера 1С:Предприятия на предмет ошибок, связанных с лицензированием или обнаружением ключей.
Проверьте логи HASP LM: Некоторые версии HASP License Manager могут вести собственные логи, которые помогут выявить проблемы.
Тестирование на другом порту: Если есть подозрение на блокировку порта 475, попробуйте настроить HASP LM и nethasp.ini на использование другого порта (например, 476), чтобы исключить конфликты.
Обновление платформы 1С: Убедитесь, что используемая версия платформы 1С:Предприятия актуальна. В новых релизах могут быть исправлены ошибки, связанные с лицензированием.
Мы видим, что проблема с обнаружением HASP-ключей сервером 1С:Предприятия может быть вызвана целым комплексом причин: от некорректных настроек HASP License Manager и файлов nethasp.ini до внутренних ограничений самого сервера 1С и банальных сбоев в работе службы. Систематический подход к диагностике, начиная с проверки базовых настроек и заканчивая анализом поведения сервера 1С, поможет нам эффективно решить эту задачу и обеспечить бесперебойную работу вашей системы 1С:Предприятия.