При развертывании тестовых сред или переносе баз данных 1С на виртуальные машины системные администраторы часто сталкиваются с ситуацией, когда сервер «Предприятия» отказывается запускаться, ссылаясь на отсутствие лицензии. Даже если сеть настроена корректно, а файлы конфигурации скопированы с рабочих станций, проблема может сохраняться. В этой статье мы подробно разберем, почему виртуальная среда требует особого подхода к лицензированию, и как правильно диагностировать причину отказа в доступе.
Рассмотрим первопричину большинства проблем: непонимание разницы между типами ключей. Проанализируем ситуацию, описанную в теме. Автор настроил файл nethasp.ini, надеясь, что сервер подхватит свободные лицензии из сети. Однако здесь кроется главная ловушка архитектуры 1С.
Для работы системы 1С:Предприятие в клиент-серверном варианте необходимы два принципиально разных типа лицензий:
HASP License Manager.ragent.exe (Агент сервера 1С). Эта лицензия не может быть получена через nethasp.ini от другого сервера. Она должна быть установлена локально на том сервере, где запущен кластер 1С.Выясним причину ошибки автора: сообщение «На сервере 1С:Предприятия не найдена лицензия» однозначно указывает на отсутствие именно серверной части защиты. Без неё сервер 1С просто не позволит подключиться ни одному пользователю, сколько бы клиентских лицензий ни было доступно в сети.
Посмотрим на технические детали, которые выдает система при нажатии кнопки «Подробнее». В тексте ошибки часто фигурируют специфические коды. В нашем случае это EN8SA.
Проанализируем, что это значит:
Если ваша виртуальная машина запущена на платформе VMware или Hyper-V, физический ключ, вставленный в хост-машину, «не виден» виртуалке по умолчанию. Для решения этой задачи необходимо пробросить USB-устройство внутрь VM (USB Passthrough) или использовать программную лицензию.
Разберем ситуацию с сетевыми настройками. Часто бывает так, что ping проходит, но лицензия всё равно не обнаруживается. Это связано с тем, что для работы защиты 1С (особенно аппаратных ключей HASP) недостаточно протокола ICMP. Проанализируем необходимые условия:
Для работы аппаратных ключей по сети используется протокол UDP и TCP на порту 475. Если между вашей виртуальной машиной и менеджером лицензий стоит брандмауэр или настроен NAT, пакеты защиты могут блокироваться.
Попробуем оптимизировать файл nethasp.ini, чтобы исключить проблемы с широковещательными запросами (broadcast), которые часто не проходят между разными подсетями или виртуальными сетями:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 10.10.x.x ; Укажите здесь IP-адрес сервера с ключами
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = Disabled
Отключение NH_USE_BROADCAST заставляет систему обращаться по конкретному адресу, что значительно повышает стабильность обнаружения ключей в сложных сетевых инфраструктурах.
Если вы используете программные лицензии (пин-коды), ситуация усложняется. Программная лицензия «привязывается» к уникальным идентификаторам железа. Выясним, какие параметры виртуальной машины критичны для лицензии 1С:
Важный совет: В настройках VMware рекомендуется устанавливать Static MAC address для сетевого адаптера. Если оставить его в режиме Automatic, то при перезагрузке или миграции хоста MAC-адрес может измениться, что мгновенно аннулирует программную лицензию 1С, и она станет «недействительной».
Проанализируем, как можно убедиться, что сервер видит хоть какие-то лицензии. Для этого воспользуемся консолью администрирования серверов 1С:
Если вам нужно «просто проверить работоспособность» на виртуалке, как автору вопроса, рассмотрим законные пути решения без покупки новых дорогостоящих ключей:
Add USB Device в настройках VMware. Это «отключит» ключ от физического сервера и «подключит» его к виртуальному. Помните, что рабочая база в этот момент перестанет функционировать.Подводя итог, отметим: если 1С на виртуалке не видит лицензию, первым делом проверьте тип ошибки. Если ошибка говорит о серверной лицензии — никакие манипуляции с nethasp.ini не помогут, так как этот файл предназначен для клиентских лицензий. Обеспечьте сервер 1С собственной лицензией (через USB-проброс или активацию программного ключа), и только после этого настраивайте доступ пользователей к клиентским лицензиям по сети.