В работе крупных систем на базе 1С часто возникает ситуация, когда сервер лицензий, работающий на виртуальной машине, внезапно прекращает раздачу лицензий. Пользователи видят сообщение об отсутствии лицензии, а работа всей компании парализуется до перезагрузки службы 1С или всего сервера. Разберем подробно, почему это происходит и как выстроить надежную систему лицензирования.
Прежде всего, нам необходимо понять, что именно видит система в момент отказа. Рассмотрим два основных способа получения информации:
1. Окно «Подробно» в сообщении об ошибке. Когда у пользователя появляется окно «Не найдена лицензия», не спешите его закрывать. Нужно нажать кнопку «Подробно». Перед нами откроется «Журнал поиска программных лицензий и HASP-ключей». Проанализируем его содержимое. Если мы видим строки типа Файл программной лицензии не найден на стороне клиента, значит, поиск перемещается на сервер. Если же там указано Ошибка программного лицензирования, это прямой сигнал к изучению файлов на сервере.
2. Технологический журнал (ТЖ). Для глубокого анализа настроим сбор логов события LEVENT. Для этого в каталоге conf сервера 1С создадим файл logcfg.xml со следующим содержанием:
<config xmlns="http://v8.1c.ru/7.4/config/logcfg">
<log location="C:\LOGS\LICENSE" history="72">
<event>
<eq property="Name" value="LEVENT"/>
</event>
<property name="all"/>
</log>
</config>
Именно в этих логах можно встретить критическую ошибку: Продукт с регистрационным номером... допускает одновременное использование не более 1 пинкодов. Это означает, что система обнаружила дублирование одной и той же лицензии.
Разберем ситуацию, когда лицензии были перенесены со старого сервера на новый. Часто системные администраторы забывают удалить старые файлы лицензий (с расширением .lic). Выясним причину конфликта: программная лицензия 1С привязывается к параметрам железа. Если один и тот же пин-код активирован дважды или файл лицензии скопирован на другой сервер, менеджер лицензий может заблокировать выдачу при обнаружении «клона» в сети.
Проанализируем каталоги, где могут храниться лицензии:
C:\ProgramData\1C\licenses (наиболее частое место в современных версиях);C:\Program Files\1cv8\conf;ragent.Важный нюанс: Имена файлов лицензий выглядят как временные метки (например, 202310121530.lic). Чтобы понять, какой файл за что отвечает, откроем их текстовым редактором. В конце файлов, полученных на современных платформах, часто содержится информация о продукте. Если же файл не читается, воспользуемся утилитой ring из комплекта поставки 1С для идентификации лицензий.
Рекомендуем не удалять подозрительные файлы сразу, а перемещать их в архив (zip-папку) вне рабочих каталогов 1С. После перемещения дублей обязательно перезапустим службу Агент сервера 1С:Предприятия.
Проанализируем ситуацию: сервер лицензий находится на виртуальной машине. 1С крайне чувствительна к изменению параметров оборудования. Рассмотрим основные ошибки настройки гипервизоров (Hyper-V, VMware):
hosts на рабочих станциях и сервере приложений четкое соответствие имени сервера лицензий и его основного IP-адреса.Иногда возникает парадокс: утром при 90 сеансах лицензий не хватает, а днем при 150 — всё работает. Это признак «подвисших» или «спящих» сеансов. Разберем, как с этим бороться:
Очистка служебных файлов. Помимо файлов .lic, в папке C:\ProgramData\1C\1cv8\conf (или аналогичных) скапливаются файлы 1cv8conn.pfl, 1cv8connN.pfl и логи .lgp. Выясним, что файл 1cv8conn.pfl отвечает за связь между компонентами кластера. Если он поврежден или содержит устаревшие данные о путях к серверу лицензий, возникнут задержки. Рекомендуем остановить службу 1С и очистить эту папку, оставив только актуальные файлы лицензий.
Настройка кластера. В консоли администрирования 1С проверим параметры кластера:
Время завершения спящего сеанса — установите разумное значение (например, 1200 секунд), чтобы лицензии не удерживались некорректно завершенными приложениями.Количество сеансов на один процесс — при большом количестве пользователей стоит распределить нагрузку, чтобы менеджер лицензий внутри процесса rphost не захлебывался от запросов.Даже если у вас используются только программные лицензии, платформа 1С по умолчанию пытается найти аппаратные ключи HASP. В моменты пиковой нагрузки (утром) эти запросы в сеть могут создавать задержки и вызывать тайм-ауты. Проанализируем файл nnhasp.ini. Рекомендуем явно отключить поиск сетевых ключей, если они не используются:
[NH_COMMON]
NH_TCPIP = Disabled
NH_IPX = Disabled
NH_NETBIOS = Disabled
Или, если ключи все же есть, укажите конкретный IP-адрес сервера с ключом в параметре NH_SERVER_ADDR, чтобы исключить широковещательные запросы по всей сети.
Для стабилизации работы сервера лицензий мы выполнили комплекс мер: локализовали дубликаты файлов .lic с помощью технологического журнала, зафиксировали ресурсы виртуальной машины, чтобы избежать изменения привязки, и оптимизировали настройки кластера для своевременного освобождения лицензий. Помните, что перезагрузка сервера — это лишь временная мера, скрывающая симптомы, в то время как чистка кэша и анализ состава лицензий решают проблему в корне.