Рано или поздно каждый системный администратор или специалист 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С зафиксировала несовпадение ключевых параметров компьютера, к которым привязана программная лицензия. Обратим внимание на конкретные изменения:
00252-60130-32846-AA678 на дефолтный шаблон 00252-70000-00000-AA226.American Megatrends Inc. на Phoenix Technologies LTD.Virtual Machine на семейство VMware Virtual Platform.Даже изменения одного из этих параметров достаточно, чтобы файл лицензии .lic стал невалидным. В данном же случае изменился практически весь аппаратный профиль виртуальной машины.
Заявление системного администратора о том, что виртуальный сервер не выключался, не переносился и не подвергался изменениям, часто соответствует действительности на уровне его зоны видимости. Однако в виртуальной среде гипервизора происходят скрытые процессы, которые платформа 1С расценивает как замену физического оборудования компьютера:
Еще одна критическая деталь в отчете об ошибках — сообщение следующего вида:
Ошибка программного лицензирования. Неверный формат файла программного лицензирования: file://C:/ProgramData/1C/licenses/20181001094228.lic
И пояснение во втором письме техподдержки:
На компьютере используются две копии одного и того же файла программной лицензии...
Рассмотрим подробнее, как работает механизм защиты 1С при обнаружении дубликатов:
Если на сервере в разных каталогах (например, в новой папке C:\ProgramData\1C\licenses и в старой системной папке C:\ProgramData\1C\1cv82\conf) лежат файлы лицензий, созданные на основе одного и того же пин-кода, платформа 1С определяет это как попытку нелегального размножения лицензий. В этот момент срабатывает встроенная защита: платформа физически модифицирует эти файлы, дописывая в их начало служебную текстовую строку с предупреждением. В результате нарушается целостность структуры XML и цифровой подписи файлов программных лицензий. Они переходят в статус поврежденных («Неверный формат»), и использовать их повторно становится невозможно даже после удаления дубликатов. Потребуется только полная повторная активация с использованием резервного пин-кода.
Техническая поддержка фирмы «1С» в инструкциях по восстановлению всегда требует удалить файлы с расширением .pfl (например, 1cv8conn.pfl или conn8211.pfl).
Выясним причину этого требования. Эти файлы являются локальным кэшем параметров подключений и лицензирования. В них сохраняются данные о последней успешной конфигурации защиты, а также кэшируются идентификаторы ранее использовавшихся лицензий. Если при установке новых файлов лицензий не очистить файлы .pfl, то сервер 1С или клиентское приложение может продолжить обращаться к старым заблокированным путям в кэше, игнорируя новые работоспособные файлы лицензий. Очистка кэша заставляет платформу выполнить полное сканирование каталогов с нуля.
Часто возникает вопрос: почему при номинальной лицензии на 50 пользователей реальная нехватка начинается уже при 15–20 активных подключениях в терминальном режиме? Разберем разницу в логике работы лицензирования:
Также важно помнить про «спящие сеансы» (sleeping sessions). При некорректном закрытии RDP-сессии пользователем («крестиком» вместо штатного выхода из 1С) сеанс на сервере 1С зависает и переходит в статус спящего. Такой сеанс продолжает удерживать за собой лицензию до 24 часов (по умолчанию), если в параметрах информационной базы не настроено принудительное завершение спящих сеансов через короткий промежуток времени (например, 15–20 минут).
Перейдем к практическим действиям по восстановлению работоспособности системы лицензирования. Разберем по шагам весь процесс, рекомендованный специалистами и подтвержденный решением проблемы в теме.
Шаг 1. Остановка службы сервера 1С:Предприятие
Перед началом манипуляций с файлами необходимо остановить службу сервера 1С, чтобы снять блокировки с файлов кэша и лицензий. Откройте командную строку от имени администратора и выполните команду:
net stop "1C:Enterprise 8.3 Server Agent"
Примечание: Название службы может немного отличаться в зависимости от версии платформы (например, "1C:Enterprise 8.3 Server Agent (x86-64)"). Проверить точное имя можно в оснастке services.msc.
Шаг 2. Очистка старых файлов лицензий и файлов профилей подключений
Нам необходимо найти и удалить старые поврежденные файлы лицензий .lic и файлы конфигурации подключений .pfl. Выполните поиск и удаление файлов в следующих каталогах:
C:\ProgramData\1C\licenses\ (основной каталог для версий 8.3)C:\ProgramData\1C\1Cv82\conf\ (устаревший каталог, часто содержащий дубликаты)C:\Program Files\1cv8\conf\ (или C:\Program Files (x86)\1cv8\conf\)Удалите все файлы с расширением *.lic, которые вызывают ошибки привязки (ориентируйтесь на даты файлов и текст лога ошибок). Также найдите и удалите файлы 1cv8conn.pfl и conn8211.pfl.
Шаг 3. Запуск службы сервера 1С:Предприятие
После очистки каталогов запустите службу сервера обратно:
net start "1C:Enterprise 8.3 Server Agent"
Шаг 4. Повторное получение лицензии через Конфигуратор
Теперь выполним чистую активацию лицензии с использованием резервного пин-кода:
.lic с привязкой к текущим (обновленным) параметрам вашей виртуальной машины.Выполнив эту последовательность действий, мы полностью восстановим доступ пользователей к базам данных 1С и исключим конфликты старых заблокированных файлов в системе.