При совместном использовании серверов 1С:Предприятие версий 8.2 и 8.3 на одном физическом или виртуальном сервере часто возникает ошибка «Не обнаружена лицензия на запуск сервера». Ситуация усложняется, когда на сервер установлена единая программная лицензия, а службы серверов разнесены по разным сетевым портам (например, 1541 для 8.2 и 1741 для 8.3). Разберем причины возникновения этой проблемы и пошаговый алгоритм ее устранения.
Проанализируем механику работы защиты 1С при параллельной работе двух платформ:
C:\ProgramData\1C\1Cv82\conf\, а платформа 8.3 — в C:\ProgramData\1C\1Cv8\conf\. Если файл лицензии находится только в каталоге версии 8.2, сервер 8.3 его не увидит без явного перенаправления.location.cfg должен располагаться исключительно в подпапке conf. Размещение его в корневом каталоге C:\ProgramData\1C\1Cv8\ полностью игнорируется службой 1С.ragent, rmngr, rphost) кэшируют дескрипторы файлов лицензий и проверяют права на запись для установки файловых блокировок. Если одна служба стартовала первой и заблокировала файл или лицензия находится в каталоге конкретного пользователя операционной системы, второй сервер получит отказ..lic остался в одном из опрашиваемых каталогов, платформа может первым прочитать деактивированный файл и прервать запуск до проверки актуального файла.Рассмотрим правильный порядок размещения файлов программных лицензий для одновременной работы обеих служб.
Шаг 1. Полная остановка служб 1С
Перед любыми манипуляциями с файлами лицензий необходимо остановить службы обоих серверов: «Агент сервера 1С:Предприятия 8.2» и «Агент сервера 1С:Предприятия 8.3» через консоль services.msc.
Шаг 2. Создание резервной копии и очистка старых путей
Скопируем все существующие файлы *.lic в резервную папку на локальном диске. Затем удалим файлы лицензий из версионных и пользовательских каталогов, чтобы исключить конфликты:
C:\ProgramData\1C\1Cv82\conf\C:\ProgramData\1C\1Cv8\conf\C:\Users\<Имя_Пользователя_Службы>\AppData\Local\1C\1Cv82\conf\C:\Users\<Имя_Пользователя_Службы>\AppData\Local\1C\1Cv8\conf\Шаг 3. Размещение файлов в общем системном каталоге
Поместим все файлы программных лицензий (серверные и клиентские) в централизованный каталог:
C:\ProgramData\1C\licenses
Начиная с версий 8.2.15 и во всех релизах 8.3 данный каталог входит в стандартный список путей поиска лицензий обеих платформ. Использование файла location.cfg при таком размещении не требуется.
Шаг 4. Проверка прав доступа к каталогу (NTFS)
Убедимся, что учетная запись (например, USR1CV8 или USR1CV82), под которой запускаются службы агентов серверов 8.2 и 8.3, имеет полные права доступа («Чтение», «Запись», «Изменение») на папку C:\ProgramData\1C\licenses и все вложенные файлы.
Шаг 5. Запуск служб
Последовательно запустим службу Агент сервера 1С:Предприятия 8.2, а затем Агент сервера 1С:Предприятия 8.3. Проверим запуск клиентских приложений и подключение к информационным базам на обоих кластерах.
Если после выполнения шагов сервер по-прежнему сообщает об отсутствии лицензии, настроим технологический журнал для выявления точной причины отказа. Создадим файл logcfg.xml в подкаталоге conf соответствующей версии платформы:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\1C_Logs\Lic" history="24">
<event>
<eq property="name" value="LIC"/>
</event>
<property name="all"/>
</log>
</config>
Событие LIC фиксирует полный путь к опрашиваемым файлам *.lic, их регистрационные номера, номинал и причину отказа (ошибка привязки к параметрам оборудования, блокировка другим процессом или отсутствие прав на запись).
.lic из системных папок.