В практике системного администрирования старых версий программного обеспечения, таких как 1С:Предприятие 7.7, часто возникает задача эффективного использования имеющегося аппаратного обеспечения. Одной из специфических проблем является ограничение платформы 7.7 на суммирование лицензий. В отличие от современной платформы 8.х, «семерка» не умеет автоматически объединять доступные лицензии с разных ключей в одном сегменте сети. Если просто установить два ключа в разные компьютеры, программа будет видеть только тот ключ, который первым ответит на широковещательный запрос. В результате, даже имея два ключа по 3 пользователя каждый (всего 6 лицензий), вы сможете запустить только 3 сессии, а остальные пользователи будут получать ошибку «Ключ защиты не обнаружен».
В данной статье мы разберем, как обойти это ограничение и заставить 1С 7.7 работать на 4-х (и более) компьютерах, используя два имеющихся трехпользовательских ключа. Мы проанализируем механизм работы драйвера HASP и настроим систему так, чтобы принудительно распределить пользователей между ключами.
Прежде чем перейти к настройкам, выясним причину, по которой стандартная установка не дает результата. 1С 7.7 при запуске отправляет в локальную сеть UDP-пакет (broadcast) с запросом поиска ключа. Первый менеджер лицензий (HASP License Manager), который получит этот запрос и найдет свободную лицензию, ответит программе. Поскольку обе ваши лицензии трехпользовательские, первый ответивший сервер «заберет» на себя первых трех пользователей, а четвертый пользователь, обратившись к тому же серверу, получит отказ, так как лимит лицензий на этом ключе исчерпан. При этом второй ключ, даже если он свободен, может проигнорировать запрос, так как широковещательный поиск работает нестабильно в сложных конфигурациях.
Для решения задачи нам потребуется адресное распределение: мы разделим наши 4 рабочих станции на две группы и укажем каждой группе, к какому именно ключу ей следует обращаться.
Рассмотрим нашу инфраструктуру. У нас есть ПК №1 (базовый) и ПК №4, в которые вставлены физические ключи. На обоих этих компьютерах должен быть установлен и запущен HASP License Manager (обычно он устанавливается как системная служба).
Для стабильной работы мы рекомендуем настроить уникальные имена для серверов лицензий. Для этого найдем файл настроек менеджера лицензий nhsrv.ini (обычно он находится в папке с установленным драйвером или менеджером лицензий). Отредактируем его следующим образом:
NHS_SERVERNAMES укажем имя SERV1.NHS_SERVERNAMES укажем имя SERV2.Это позволит избежать конфликтов имен в сетевом сегменте.
Теперь перейдем к самому важному этапу — настройке конфигурационного файла nethasp.ini на каждом из 4-х клиентских компьютеров. Этот файл определяет, как именно программа будет искать ключ защиты. Файл должен располагаться в папке BIN установленной платформы 1С (там, где находится 1cv7.exe) или в системных папках Windows.
Проанализируем необходимые изменения. Нам нужно отключить поиск через широковещательную рассылку (broadcast) и явно прописать IP-адреса серверов.
Для ПК №1 и ПК №2 (первая группа):
В секции [NH_COMMON] и [NH_TCPIP] установим следующие параметры:
[NH_COMMON]
NH_TCPIP = enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10 ; Укажите здесь IP-адрес ПК №1
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = disabled
Для ПК №3 и ПК №4 (вторая группа):
Здесь мы указываем адрес второго сервера лицензий:
[NH_COMMON]
NH_TCPIP = enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.40 ; Укажите здесь IP-адрес ПК №4
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = disabled
Важный момент: Параметр NH_USE_BROADCAST = disabled критически важен. Он заставляет 1С игнорировать любые другие ключи в сети и обращаться только по указанному адресу NH_SERVER_ADDR. Таким образом, первые два пользователя всегда будут занимать лицензии на первом ключе, а вторые два — на втором. В сумме мы получим 4 работающих сессии.
Посмотрим на ситуацию со стороны сетевой безопасности. 1С 7.7 и драйвер HASP используют для связи протокол UDP и порт 475. Если на компьютерах включен брандмауэр Windows, программа может не увидеть ключ даже при правильной настройке nethasp.ini.
Выполним следующие действия:
nethasp.ini на всех клиентах отключим лишние протоколы NH_IPX и NH_NETBIOS, установив их в disabled. Это значительно ускорит запуск программы, так как 1С не будет тратить время на попытки поиска ключа через устаревшие протоколы.Существует вероятность, что оба ваших трехпользовательских ключа имеют одинаковую серию (маркировку). В 1С 7.7 это может вызвать проблему: если менеджер лицензий видит два ключа одной серии на одном компьютере или в одном сегменте без жесткой привязки IP, он может работать некорректно. Именно поэтому метод с разделением по IP в nethasp.ini является единственным надежным способом задействовать оба устройства.
Рассмотрим ситуацию, если вы решите запустить 1С через RDP (удаленный рабочий стол). В этом случае описанная выше схема работать не будет. При работе в терминальной сессии все запросы к ключу идут от имени одного IP-адреса (адреса терминального сервера). Менеджер лицензий будет считать все сессии запущенными с одного узла. Даже если вы пропишете два адреса в nethasp.ini, 1С выберет один из них и будет использовать его лицензии до исчерпания (то есть максимум 3). Для терминального сервера в 1С 7.7 требуется специальный многопользовательский ключ (на 5, 10, 20 и более пользователей), «склеить» маленькие ключи на терминале невозможно.
Мы рассмотрели подробно процесс разделения лицензий для старой платформы 1С 7.7. Ключевым инструментом здесь выступает файл nethasp.ini, который позволяет обойти отсутствие механизма суммирования лицензий путем сегментации пользователей. Помните, что для современных операционных систем (Windows 10/11) также необходимо убедиться, что установлена актуальная версия драйвера Sentinel HASP, поддерживающая работу в новой среде, иначе возможны системные сбои (BSOD).
Следуя этой инструкции, вы сможете эффективно использовать имеющийся парк аппаратных ключей и обеспечить бесперебойную работу всех четырех пользователей в одной базе данных.