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

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

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

Анализируем лог ошибки и выявляем скрытые причины сбоя

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


Ошибка программного лицензирования. Ошибка привязки программной лицензии к компьютеру: file://C:/ProgramData/1C/1Cv82/conf/20170808143333.lic
После получения лицензии удалены:
OS Ser_0: 00252-60130-32846-AA678
BIOS_0: American Megatrends Inc., 20120523000000.000000+000, 090006 , 2, 3
CPU_0: CPU0, Intel64 Family 6 Model 63 Stepping 2, 64, 64, 2600, 1F8BFBFF000306F2, 16130, None
Sys Type_0: Virtual Machine, x64-based PC

В текущей конфигурации компьютера имеются:
OS Ser_0: 00252-70000-00000-AA226
Phis Mem_0: 51539136512
CPU_0: CPU0, Intel64 Family 6 Model 63 Stepping 2, 64, 64, 0, 2600, 1FABFBFF000306F2, 16130, CPU socket #0
BIOS_0: Phoenix Technologies LTD, 20150921000000.000000+000, 6.00, 2, 4
Sys Type_0: VMware Virtual Platform, x64-based PC
NET_11: [00000011] Сетевое подключение Intel(R) 82574L Gigabit, 00:0C:29:53:93:8F

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

  1. Серийный номер операционной системы (OS Ser_0): Изменился с реального номера 00252-60130-32846-AA678 на дефолтный шаблон 00252-70000-00000-AA226.
  2. Производитель и версия BIOS (BIOS_0): Изменился с American Megatrends Inc. на Phoenix Technologies LTD.
  3. Тип системы (Sys Type_0): Изменился со стандартного Virtual Machine на семейство VMware Virtual Platform.

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

Почему меняются параметры привязки, если «администратор ничего не делал»?

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

Механизм блокировки дубликатов лицензий и повреждение файлов .lic

Еще одна критическая деталь в отчете об ошибках — сообщение следующего вида:

Ошибка программного лицензирования. Неверный формат файла программного лицензирования: file://C:/ProgramData/1C/licenses/20181001094228.lic

И пояснение во втором письме техподдержки:

На компьютере используются две копии одного и того же файла программной лицензии...

Рассмотрим подробнее, как работает механизм защиты 1С при обнаружении дубликатов:

Если на сервере в разных каталогах (например, в новой папке C:\ProgramData\1C\licenses и в старой системной папке C:\ProgramData\1C\1cv82\conf) лежат файлы лицензий, созданные на основе одного и того же пин-кода, платформа 1С определяет это как попытку нелегального размножения лицензий. В этот момент срабатывает встроенная защита: платформа физически модифицирует эти файлы, дописывая в их начало служебную текстовую строку с предупреждением. В результате нарушается целостность структуры XML и цифровой подписи файлов программных лицензий. Они переходят в статус поврежденных («Неверный формат»), и использовать их повторно становится невозможно даже после удаления дубликатов. Потребуется только полная повторная активация с использованием резервного пин-кода.

Зачем очищать файлы кэша .pfl и как они влияют на поиск лицензий

Техническая поддержка фирмы «1С» в инструкциях по восстановлению всегда требует удалить файлы с расширением .pfl (например, 1cv8conn.pfl или conn8211.pfl).

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

Разница между раздачей лицензий сервером 1С и локальным клиентом в сессии RDP

Часто возникает вопрос: почему при номинальной лицензии на 50 пользователей реальная нехватка начинается уже при 15–20 активных подключениях в терминальном режиме? Разберем разницу в логике работы лицензирования:

  1. Выдача лицензии сервером 1С (клиент-серверный вариант): Если в свойствах информационной базы включена опция «Разрешить выдачу лицензий сервером 1С:Предприятия», то подсчет лицензий ведет сам сервер. В этом режиме лицензия выдается на каждый запущенный сеанс. Если один и тот же пользователь внутри своей RDP-сессии запустит 3 разные базы 1С или откроет одну базу в трех окнах, сервер заберет из пула ровно 3 лицензии. Это быстро приводит к исчерпанию лимита.
  2. Выдача лицензии клиентом (локальный поиск / HASP / терминал): Если лицензия активирована как многопользовательская на самом сервере терминалов (RDP) и выдается клиентским приложением, то лицензия привязывается к терминальной сессии (рабочему месту). В этом случае пользователь внутри одного RDP-сеанса может запустить неограниченное количество баз 1С, и на это потратится всего 1 лицензия из общего пула.

Также важно помнить про «спящие сеансы» (sleeping sessions). При некорректном закрытии RDP-сессии пользователем («крестиком» вместо штатного выхода из 1С) сеанс на сервере 1С зависает и переходит в статус спящего. Такой сеанс продолжает удерживать за собой лицензию до 24 часов (по умолчанию), если в параметрах информационной базы не настроено принудительное завершение спящих сеансов через короткий промежуток времени (например, 15–20 минут).

Пошаговое руководство по восстановлению программных лицензий 1С

Перейдем к практическим действиям по восстановлению работоспособности системы лицензирования. Разберем по шагам весь процесс, рекомендованный специалистами и подтвержденный решением проблемы в теме.

Шаг 1. Остановка службы сервера 1С:Предприятие

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

net stop "1C:Enterprise 8.3 Server Agent"

Примечание: Название службы может немного отличаться в зависимости от версии платформы (например, "1C:Enterprise 8.3 Server Agent (x86-64)"). Проверить точное имя можно в оснастке services.msc.

Шаг 2. Очистка старых файлов лицензий и файлов профилей подключений

Нам необходимо найти и удалить старые поврежденные файлы лицензий .lic и файлы конфигурации подключений .pfl. Выполните поиск и удаление файлов в следующих каталогах:

Удалите все файлы с расширением *.lic, которые вызывают ошибки привязки (ориентируйтесь на даты файлов и текст лога ошибок). Также найдите и удалите файлы 1cv8conn.pfl и conn8211.pfl.

Шаг 3. Запуск службы сервера 1С:Предприятие

После очистки каталогов запустите службу сервера обратно:

net start "1C:Enterprise 8.3 Server Agent"

Шаг 4. Повторное получение лицензии через Конфигуратор

Теперь выполним чистую активацию лицензии с использованием резервного пин-кода:

  1. Запустите платформу 1С:Предприятие в режиме Конфигуратора от имени администратора (желательно запустить локально на сервере).
  2. Если база не открывается и требует лицензию, в открывшемся окне помощника выберите пункт «Получить лицензию». Если Конфигуратор открылся, перейдите в меню: Сервис — Получение лицензии...
  3. В открывшемся окне введите регистрационный номер вашего комплекта лицензий и активный пин-код (тот, который использовался ранее и сейчас перестал работать).
  4. Нажмите кнопку «Восстановление».
  5. Важно: Снимите галочку «Я уверен(-а), что ключевые параметры компьютера не изменялись».
  6. В появившемся поле ввода укажите новый неиспользованный резервный пин-код из вашего лицензионного комплекта.
  7. Проверьте персональные данные владельца лицензии. Они должны символ в символ совпадать с теми данными, которые вводились при самой первой активации этого комплекта. Если данные будут отличаться хотя бы на одну точку или пробел, центр лицензирования отклонит запрос.
  8. Нажмите «Далее» и завершите процесс получения лицензии. Платформа создаст новый чистый файл .lic с привязкой к текущим (обновленным) параметрам вашей виртуальной машины.

Выполнив эту последовательность действий, мы полностью восстановим доступ пользователей к базам данных 1С и исключим конфликты старых заблокированных файлов в системе.

← На главную