Как исправить ошибку «Не обнаружено свободной лицензии» в 1С на виртуальной машине?

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

Рассмотрим распространенную и крайне неприятную проблему, с которой часто сталкиваются системные администраторы при работе с платформой 1С:Предприятие в виртуальной среде (например, VMware, Hyper-V, KVM). После планового обновления платформы, перезагрузки сервера или миграции виртуальной машины пользователи внезапно получают сообщение об ошибке: «Не обнаружено свободной лицензии!».

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

Анализируем причину сбоя по логам 1С

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


Ошибка программного лицензирования. Ошибка привязки программной лицензии к компьютеру: file://C:/ProgramData/1C/licenses/20181115220520.lic
После получения лицензии удалены:
DISK_0: VMware Virtual disk SCSI Disk Device...
CPU_0: CPU0, Intel64 Family 6 Model 45 Stepping 7...
BIOS_0: Phoenix Technologies LTD, 20160405000000.000000+000...
В текущей конфигурации компьютера имеются:
DISK_1: VMware Virtual disk SCSI Disk Device...
DISK_0: VMware Virtual disk SCSI Disk Device...
CPU_0: CPU0, Intel64 Family 6 Model 45 Stepping 6...
BIOS_0: Phoenix Technologies LTD, 20180919000000.000000+000...

Проанализируем эти данные. Платформа сравнивает текущий «аппаратный отпечаток» (hardware fingerprint) сервера с тем, который был записан в файл лицензии .lic в момент его активации. Если обнаруживаются критические расхождения, файл лицензии блокируется и признается недействительным.

В нашем случае произошло изменение сразу трех ключевых параметров виртуальной машины:

  1. Изменение процессора (CPU Stepping): В исходной конфигурации процессор определялся как Stepping 7 (сигнатура оканчивалась на D7). В текущей конфигурации мы видим уже Stepping 6 (сигнатура оканчивается на D6). Это явный признак того, что виртуальная машина была смигрирована (например, с помощью функции vMotion в VMware) на другой физический хост в кластере, где установлены процессоры другой ревизии или поколения.
  2. Обновление BIOS виртуальной машины: Дата BIOS изменилась с 20160405 на 20180919. Подобное происходит при обновлении версии гипервизора ESXi, изменении уровня совместимости виртуальной машины (VM Hardware Compatibility) или обновлении пакета интеграции VMware Tools.
  3. Изменение дисковой подсистемы: Изначально в системе был зафиксирован один виртуальный диск DISK_0 размером 53 ГБ. Теперь же система видит два диска: новый DISK_1 на 64 ГБ и увеличенный старый DISK_0, объем которого вырос до 75 ГБ. Изменение количества накопителей и их объема для системы лицензирования 1С трактуется как замена физических жестких дисков.

Любого из этих изменений по отдельности достаточно, чтобы программная привязка «слетела». Поскольку у пользователя изменились все три параметра, четыре старые лицензии от 2018 года (файлы 20181115220520.lic, 20181119224423.lic, 20181119225109.lic, 20181119231954.lic) заблокировались одновременно.

Особенность ошибки «Превышено максимальное количество пользователей»

Обратите внимание на еще одну важную строчку в логах:

Ошибка программного лицензирования. Превышено максимальное количество пользователей, разрешенное файлом программной лицензии: file://C:/ProgramData/1C/licenses/20200204010748.lic

Выясним причину этого поведения. Данный файл лицензии был активирован в феврале 2020 года, то есть уже на новой конфигурации виртуальной машины (после изменения процессоров и BIOS). С точки зрения платформы этот файл абсолютно валиден, и привязка не нарушена. Однако, так как старые лицензии от 2018 года отключились, общий пул доступных клиентских мест резко сократился. Оставшийся единственный рабочий файл лицензии от 2020 года просто переполнился из-за одновременного входа пользователей, что и вызвало ошибку превышения лимита.

Пошаговое руководство по исправлению проблемы

Для восстановления работоспособности 1С нам необходимо повторно получить (активировать) все поврежденные лицензии. Проанализируем, как сделать это правильно.

Шаг 1. Подготовка регистрационных данных

Перед тем как приступить к активации, убедитесь, что у вас есть:

Шаг 2. Запуск конфигуратора от имени Администратора

Запустите конфигуратор 1С или клиентское приложение на сервере от имени администратора операционной системы. Это необходимо, чтобы у платформы были права на запись файлов лицензий в общую системную директорию C:\ProgramData\1C\licenses.

Шаг 3. Запуск процедуры получения лицензии

При запуске система выдаст окно с предупреждением об отсутствии лицензии. Выберите пункт «Получить лицензию». Если система запускается, перейдите в меню «Сервис» — «Получение лицензии» (или «Администрирование» — «Получение лицензии» в зависимости от режима).

Шаг 4. Ввод пин-кодов

Введите регистрационный номер программного продукта и действующий пин-код. На следующем шаге выберите вариант «Восстановление». Система попросит ввести неиспользованный резервный пин-код из вашего комплекта поставки.

Шаг 5. Проверка личных данных

Поставьте галочку «Я подтверждаю, что персональные данные не изменились» (если вы уверены, что вводите их точно так же, как в первый раз). Если есть сомнения, заполните форму вручную, обращая внимание на каждый знак препинания и сокращение.

Что делать, если закончились резервные пин-коды?

Поскольку вам нужно восстановить сразу несколько лицензий, резервные пин-коды могут закончиться. Не паникуйте, покупать новые лицензии не потребуется. Выполните следующие действия:

  1. Направьте электронное письмо в Центр лицензирования 1С по адресу lic@1c.ru.
  2. В теме письма укажите: «Запрос резервных пин-кодов для рег. номера [ваш номер]».
  3. В тексте письма укажите наименование вашей организации, ИНН, регистрационный номер продукта и кратко опишите причину (например: «Произошел сброс программной привязки после изменения параметров виртуальной машины на сервере VMware»).
  4. В ответном письме Центр лицензирования пришлет вам новые резервные пин-коды абсолютно бесплатно.

Как предотвратить сбои лицензирования виртуальных машин в будущем

Чтобы избежать повторения этой ситуации при последующих обновлениях инфраструктуры или миграциях серверов, системным администраторам рекомендуется выполнить комплекс превентивных мер на уровне гипервизора.

1. Включение режима EVC (Enhanced vMotion Compatibility) в VMware

Режим EVC обеспечивает одинаковую сигнатуру процессора для виртуальных машин во всем кластере. Настройте EVC на уровне кластера VMware. Это заставит гипервизор скрывать различия в поколениях физических CPU и транслировать виртуальной машине фиксированный набор инструкций и один и тот же CPU Stepping. После этого «живая миграция» между физическими серверами не будет приводить к слету лицензий.

2. Фиксация виртуального BIOS и UUID

Избегайте без крайней необходимости обновления уровня совместимости оборудования виртуальной машины (VM Hardware Version), так как это действие напрямую перезаписывает виртуальный BIOS и меняет его дату, что гарантированно разрушит привязку 1С.

3. Статическое выделение ресурсов

Для виртуальной машины, на которой развернут сервер 1С:Предприятия, необходимо выделять оперативную память (RAM) и процессоры статически. Избегайте использования динамического распределения памяти (Dynamic Memory / Memory Ballooning) и динамического добавления ядер «на лету» (CPU Hot Add). Колебания доступного объема ОЗУ и количества ядер воспринимаются защитой 1С как изменение конфигурации компьютера.

4. Привязка программной лицензии к аппаратному ключу защиты (HASP)

Малоизвестный, но крайне эффективный способ защиты: начиная с версии платформы 8.3.12, 1С позволяет выполнить привязку программного файла лицензии .lic не к характеристикам компьютера, а к физическому USB-ключу защиты (HASP), который подключен к серверу (или проброшен в виртуальную машину). В этом случае вы можете произвольно менять любые параметры виртуальной машины, обновлять BIOS и диски — лицензия останется активной, пока система видит этот USB-ключ.

Соблюдение этих рекомендаций позволит вам построить отказоустойчивую и стабильную систему лицензирования 1С, которая не будет реагировать на плановые технические работы в вашей ИТ-инфраструктуре.

← На главную