Что делать, если 1С не запоминает адрес сервера лицензий и ищет старый IP-адрес?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При переносе сервера лицензий на новый IP-адрес системные администраторы часто сталкиваются с ситуацией, когда клиентские рабочие места упорно пытаются подключиться к старому серверу. Даже если вы изменили настройки, система может «сбрасывать» их или просто игнорировать. В этой статье мы подробно разберем, как заставить 1С видеть нужный сервер лицензий, проанализируем приоритеты конфигурационных файлов и изучим скрытые механизмы Windows, которые могут мешать корректной работе.

Анализ работы менеджера лицензий HASP

Для начала разберем, как именно 1С ищет ключ. В случае использования сетевого USB-ключа (HASP HL), платформа обращается к программе HASP License Manager, которая запущена на сервере. По умолчанию поиск происходит путем широковещательного запроса (broadcast) по всей локальной сети. Если серверов несколько или сеть сложная, этот механизм начинает давать сбои. Чтобы 1С работала стабильно, мы должны жестко указать ей путь к конкретному IP-адресу через файл nethasp.ini.

Шаг 1: Поиск и устранение дубликатов nethasp.ini

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

  1. Каталог conf конкретной версии платформы: C:\Program Files\1cv8\8.3.XX.XXXX\bin\conf
  2. Общий каталог conf для всех версий: C:\Program Files\1cv8\conf
  3. Каталог bin платформы: C:\Program Files\1cv8\8.3.XX.XXXX\bin
  4. Рабочий каталог пользователя или системные папки Windows.

Рассмотрим правильную стратегию: необходимо оставить только один рабочий файл nethasp.ini. Рекомендуется использовать общую папку C:\Program Files\1cv8\conf, чтобы настройки применялись при обновлении версии платформы. Все остальные копии файла следует удалить или переименовать (например, в nethasp.ini.bak), чтобы исключить их влияние.

Шаг 2: Правильная настройка секции [NH_TCPIP]

Просто прописать IP-адрес в файле недостаточно. Разберем структуру файла nethasp.ini и внесем изменения, которые заставят 1С игнорировать старые настройки. Откройте файл блокнотом от имени администратора и найдите секцию [NH_TCPIP]. Нам нужно привести её к следующему виду:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.50  ;; Укажите здесь ваш НОВЫЙ IP-адрес
NH_PORT_NUMBER = 475           ;; Стандартный порт HASP
NH_TCPIP_METHOD = UDP          ;; Или TCP, если UDP заблокирован
NH_USE_BROADCAST = Disabled    ;; ВАЖНО: отключаем широковещательный поиск

Параметр NH_USE_BROADCAST = Disabled является критически важным. Именно он запрещает 1С «самодеятельность» в поиске ключа. Когда этот параметр отключен, платформа будет обращаться только по адресу, указанному в NH_SERVER_ADDR. Это исключает ситуацию, когда 1С пытается найти старый сервер в сети.

Шаг 3: Проблема VirtualStore (UAC)

Если вы редактируете файл в папке Program Files, а изменения не применяются, мы можем столкнуться с механизмом виртуализации Windows. Если у пользователя недостаточно прав, система создает копию файла в специальной папке профиля. Проверим следующий путь:

%LOCALAPPDATA%\VirtualStore\Program Files\1cv8\conf

Если вы обнаружите там nethasp.ini, удалите его. Проанализируем ситуацию: 1С сначала заглядывает в VirtualStore, находит там старую версию конфига и использует её, полностью игнорируя ваши правки в основной директории Program Files. Это «невидимая» ловушка, которая часто сбивает с толку даже опытных администраторов.

Шаг 4: Использование переменных окружения

В особо сложных случаях, когда 1С упорно игнорирует файлы на диске, мы можем применить «силовой» метод — задать путь к конфигурационному файлу через системную переменную окружения. Это перекрывает все остальные способы поиска.

  1. Откройте «Свойства системы» -> «Дополнительные параметры системы».
  2. Нажмите «Переменные среды».
  3. В разделе «Системные переменные» создайте новую переменную:
    • Имя переменной: NH_FILENAME
    • Значение переменной: C:\1C_Config\nethasp.ini (путь к вашему проверенному файлу).

Теперь платформа будет обязана использовать именно этот файл. Убедитесь, что по указанному пути файл действительно существует и доступен для чтения всем пользователям.

Шаг 5: Очистка реестра и кэша

Иногда настройки поиска ключей кэшируются в реестре Windows. Выясним причину задержки обновления данных, проверив ветку реестра:

HKEY_CURRENT_USER\Software\Aladdin Knowledge Systems\HASP\Settings

Если там присутствуют параметры, указывающие на старый сервер, их стоит удалить или обновить. Также рекомендуется выполнить очистку кэша 1С. Хотя кэш конфигурации базы напрямую не связан с лицензированием, иногда системные сбои в файлах *.pfl в профиле пользователя (%APPDATA%\1C\1cv8\) могут приводить к странному поведению платформы при запуске.

Шаг 6: Проверка сетевой доступности (Порт 475)

Если адрес прописан верно, но 1С всё равно выдает ошибку, возможно, новый сервер лицензий недоступен по техническим причинам. Проанализируем сетевой трафик. Менеджер лицензий HASP работает по порту 475 (протоколы UDP и TCP). Убедитесь, что:

Для диагностики рекомендуем использовать утилиту AKS Monitor. Если монитор не видит менеджер лицензий по новому адресу, значит, проблема в сети или в самой службе на сервере, а не в настройках nethasp.ini.

Шаг 7: Конфликт с программными лицензиями

Выясним, нет ли на проблемных компьютерах остатков программных лицензий. Если ранее использовались файлы .lic, 1С может сначала пытаться прочитать их. Проверьте папки:

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

Подводя итог, скажем: решение проблемы всегда кроется в системном подходе. Сначала избавляемся от лишних копий nethasp.ini, затем жестко отключаем NH_USE_BROADCAST, проверяем отсутствие файлов в VirtualStore и, если ничего не помогает, используем системную переменную NH_FILENAME. Такой алгоритм гарантированно заставит 1С подключаться к правильному серверу лицензий.

← На главную