Почему 1С 8.3 не видит лицензию на виртуальной машине и как это исправить?

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

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

Разграничение клиентских и серверных лицензий

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

Для работы системы 1С:Предприятие в клиент-серверном варианте необходимы два принципиально разных типа лицензий:

  1. Клиентская лицензия: Она позволяет запустить само приложение (толстый, тонкий или веб-клиент) на конкретном рабочем месте или сеансе. Эти лицензии действительно могут раздаваться по сети через HASP License Manager.
  2. Серверная лицензия: Это разрешение на работу самой службы 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С:

  1. Запустите оснастку «Администрирование серверов 1С Предприятия».
  2. Перейдите в раздел «Сеансы».
  3. Найдите любой активный сеанс (если он есть) и посмотрите колонку «Лицензия». Там будет указан путь к файлу лицензии или тип ключа.
  4. Если база не открывается вовсе, загляните в раздел «Информационные базы» -> [Ваша база] -> «Сеансы». Даже при ошибке там может появиться запись, в свойствах которой будет указана причина отказа.

Варианты решения для тестовых сред

Если вам нужно «просто проверить работоспособность» на виртуалке, как автору вопроса, рассмотрим законные пути решения без покупки новых дорогостоящих ключей:

  1. Проброс USB-ключа: Если у вас есть физический серверный ключ, используйте функцию Add USB Device в настройках VMware. Это «отключит» ключ от физического сервера и «подключит» его к виртуальному. Помните, что рабочая база в этот момент перестанет функционировать.
  2. Лицензия для разработчика: 1С предлагает недорогие комплекты для разработчиков и администраторов, которые включают серверную лицензию. Это идеальный вариант для тестовых VM.
  3. Запрос временного пин-кода: Если вы планируете миграцию, можно обратиться к партнеру 1С для получения резервного пин-кода или временной лицензии для целей тестирования.

Резюме

Подводя итог, отметим: если 1С на виртуалке не видит лицензию, первым делом проверьте тип ошибки. Если ошибка говорит о серверной лицензии — никакие манипуляции с nethasp.ini не помогут, так как этот файл предназначен для клиентских лицензий. Обеспечьте сервер 1С собственной лицензией (через USB-проброс или активацию программного ключа), и только после этого настраивайте доступ пользователей к клиентским лицензиям по сети.

← На главную