Рассмотрим типичную и очень неприятную ситуацию, с которой сталкиваются системные администраторы: пользователи начинают жаловаться, что не могут войти в 1С, так как «нет свободных лицензий», хотя вы точно знаете, что они есть. Временным решением становится перезапуск службы «Агент сервера 1С:Предприятия», но через некоторое время проблема повторяется. Часто подозрение падает на недавние изменения, например, установку тестовой Community-лицензии. Давайте разберемся, как правильно диагностировать эту проблему и найти её истинную причину, не полагаясь на догадки.
Первая мысль автора проблемы была о том, что всё сломалось из-за установленной и затем удаленной Community-лицензии. Это логичное предположение, основанное на совпадении событий. Однако в мире 1С совпадение — не всегда причина. Чтобы не тратить время на ошибочные гипотезы, нам нужны точные данные о том, что происходит в момент, когда клиент не может получить лицензию.
Главный инструмент для такой диагностики — Технологический журнал (ТЖ). Нам необходимо настроить его так, чтобы он фиксировал события, связанные с лицензированием.
Именно этот шаг позволяет перейти от гаданий к анализу фактов.
После того как ошибка была поймана, в логе мы увидим подробную картину происходящего. В нашем случае ключевой фрагмент лога выглядит так:
Не найдена лицензия. Не обнаружен ключ защиты программы или полученная программная лицензия!
...
Поиск лицензии на сервере:
Ошибка программного лицензирования. Ошибка привязки программной лицензии к компьютеру: file://C:/ProgramData/1C/licenses/20190827174045.lic
После получения лицензии удалены:
DISK_0: Microsoft Virtual Disk, ..., 64420392960
BIOS_0: Microsoft Corporation, 20121126000000.000000+000, Hyper-V UEFI Release v1.0, 2, 4
В текущей конфигурации компьютера имеются:
DISK_0: Microsoft Virtual Disk, ..., 128849011200
Phis Mem_0: 31456260096
BIOS_0: Microsoft Corporation, 20240620000000.000000+000, Hyper-V UEFI Release v4.1, 3, 1
...
(аналогичные сообщения для других файлов лицензий)
Давайте расшифруем это сообщение. Фраза «Ошибка привязки программной лицензии к компьютеру» — это ключ к разгадке. Система программного лицензирования 1С при первой активации создает «слепок» ключевых параметров компьютера. К ним относятся характеристики материнской платы, процессора, жестких дисков, сетевых адаптеров и, как мы видим, версии BIOS.
Проанализируем две части лога:
После получения лицензии удалены: здесь перечислены параметры компьютера, которые были зафиксированы в момент успешной активации лицензии. Обратим внимание на Hyper-V UEFI Release v1.0.В текущей конфигурации компьютера имеются: а это параметры, которые система видит сейчас, в момент попытки получить лицензию. Здесь мы видим Hyper-V UEFI Release v4.1, а также изменившиеся параметры виртуального диска Microsoft Virtual Disk.Вывод: Причина сбоя — изменение аппаратной (в данном случае — виртуальной) конфигурации сервера. Скорее всего, было произведено обновление гипервизора Hyper-V, или изменены параметры самой виртуальной машины (например, размер диска). Система лицензирования 1С расценила это как попытку переноса лицензии на другой компьютер и аннулировала её. Перезапуск службы временно помогает, потому что сеансы, которые уже "захватили" лицензию до сбоя, могут продолжать работать, но новые сеансы не могут получить уже "слетевшую" лицензию.
Теперь, когда мы знаем настоящую причину, вернемся к первоначальному подозрению. Почему в окне «О программе» осталась запись о Community-лицензии, даже после её удаления?
Окно «О программе» содержит несколько разделов с информацией о лицензиях:
Появление Community-лицензии в разделе «Информационная база» означает лишь то, что кто-то один раз успешно подключился к этой базе данных, используя эту лицензию. Эта запись не оказывает никакого влияния на текущий процесс лицензирования на сервере. Таким образом, установка и удаление Community-лицензии было просто совпадением по времени с обновлением виртуальной среды.
Поскольку лицензии стали недействительными, единственный правильный путь — активировать их заново. Для этого потребуется комплект поставки с пин-кодами.
Действуем по следующему плану:
После выполнения этих шагов сервер 1С снова начнет корректно получать и раздавать валидные, привязанные к текущей конфигурации сервера, лицензии.