В крупных инфраструктурах часто возникает ситуация, когда на предприятии функционируют несколько серверов 1С, на каждом из которых установлены свои лицензии (как аппаратные ключи HASP, так и программные лицензии). Без должной настройки клиентские приложения 1С могут хаотично занимать лицензии с «чужих» серверов, что приводит к дефициту свободных лицензий там, где они действительно необходимы. Рассмотрим подробно, как правильно настроить разграничение лицензий, проанализируем ошибки в конфигурационных файлах и разберем специфику работы в терминальном режиме (RDP).
Прежде всего, разберем, как 1С ищет лицензию. По умолчанию поиск происходит в следующем порядке: локальный аппаратный ключ, локальная программная лицензия, затем поиск сетевого ключа через HASP License Manager. Если в локальной сети находятся несколько менеджеров лицензий, клиент 1С отправляет широковещательный (broadcast) запрос и занимает первую ответившую лицензию. В условиях работы через RDP ситуация осложняется тем, что все пользователи «стучатся» с одного IP-адреса сервера, и без жесткой привязки настройки 1С будут игнорировать ваши ожидания по распределению ресурсов.
Основная ошибка многих администраторов заключается в неправильном заполнении файла nethasp.ini. Проанализируем структуру этого файла. Параметры должны быть строго разделены по секциям, иначе платформа их просто не увидит. Для жесткой привязки к конкретному серверу лицензий нам необходимо отключить широковещательный опрос и указать конкретный IP-адрес.
Рассмотрим правильную конфигурацию для Первого сервера (IP 192.168.0.42):
[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.42
NH_USE_BROADCAST = Disabled
Для Второго сервера (IP 192.168.0.51) конфигурация будет аналогичной, но с его адресом:
[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.51
NH_USE_BROADCAST = Disabled
Важный момент: Мы намеренно отключаем NH_USE_BROADCAST. Это гарантирует, что 1С не будет «оглядываться» по сторонам в поисках других ключей, а пойдет строго по указанному адресу NH_SERVER_ADDR.
Выясним причину, по которой настройки могут не вступать в силу. Часто это связано с разрядностью установленной платформы 1С. В операционных системах x64 пути поиска различаются:
C:\Program Files\1cv8\confC:\Program Files (x86)\1cv8\confПроанализируем ситуацию: если у вас установлена 32-битная платформа на 64-битной Windows, файл nethasp.ini в папке Program Files будет проигнорирован. Рекомендуем разместить файл в обе директории или непосредственно в папку bin\conf конкретной версии платформы, которую используют ваши пользователи. Также проверьте отсутствие файла nethasp.ini в профилях пользователей (AppData), так как настройки пользователя имеют приоритет над общесистемными.
Если в сети присутствуют два одинаковых ключа (например, оба Net5), 1С может их путать. Чтобы этого избежать, на стороне серверов, где физически установлены ключи, нужно отредактировать файл nhsrv.ini (настройки менеджера лицензий HASP). Нам потребуется параметр NHS_SERVERNAMES.
Внимание: Имя сервера в этом файле не должно превышать 7 символов. Например:
NHS_SERVERNAMES = SRV1NHS_SERVERNAMES = SRV2После этого в клиентском файле nethasp.ini в секции [NH_TCPIP] можно добавить строку NH_SERVER_NAME = SRV1. Это создаст однозначную связку между клиентом и конкретным ключом.
Разберем проблему «жора» лицензий, когда бухгалтеры открывают несколько баз одновременно. В терминальном режиме подсчет лицензий работает по-разному для разных типов защиты:
Выясним причину нехватки лицензий: если ваши пользователи начинают занимать чужие программные лицензии, это верный признак того, что настройки nethasp.ini либо не применяются, либо аппаратные лицензии на их родном сервере закончились, и платформа перешла к поиску доступных программных лицензий по сети.
Если правка конфигурационных файлов не помогает, рассмотрим альтернативные методы:
nethasp.ini.HL_SEARCH, указав в ней путь к конкретному файлу настроек. Это заставит 1С использовать нужный конфиг принудительно.Таким образом, для успешного разграничения лицензий необходимо обеспечить корректную структуру секций в nethasp.ini, проверить разрядность платформы для правильного размещения файла и учитывать разницу в логике работы аппаратных и программных лицензий в терминальных сессиях.