Почему возникает ошибка «Нет свободной лицензии» в 1С и как освободить занятые лицензии?

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

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

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

Варианты раздачи программных лицензий: терминал и сервер 1С

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

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

Где хранятся файлы программных лицензий и почему они блокируются

Расположение файлов .lic зависит от того, под какой учетной записью выполнялась активация и как запущена служба сервера 1С:

  1. Каталог для всех пользователей: C:\ProgramData\1C\licenses (рекомендуемое расположение для общедоступных клиентских лицензий).
  2. Профиль системной службы (Local System): %windir%\System32\config\systemprofile\AppData\Local\1C\licenses.
  3. Профиль конкретного пользователя (например, Admin): %userprofile%\AppData\Local\1C\licenses.

Если лицензия активирована в каталог службы или профиль администратора, клиентское приложение 1cv8.exe не сможет найти ее напрямую и будет требовать лицензию у сервера 1С. Кроме того, если файлы лицензий сервера и клиентов разнесены по разным каталогам с некорректными правами доступа, платформа может блокировать запуск.

Ошибка «Файл занят другим приложением» возникает потому, что процесс сервера 1С (rphost.exe или ragent.exe) либо клиентский процесс держит дескриптор файла открытым для контроля целостности привязки. Также удерживать файл могут антивирусные программы или службы резервного копирования при постоянном сканировании.

Пошаговое решение проблемы с нехваткой лицензий

Разберем комплекс мер, которые помогут освободить лицензии и настроить их стабильное использование.

Шаг 1. Настройка автоматического сброса спящих и неактивных сеансов

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

Для изменения этих параметров выполним следующие действия в Консоли администрирования кластера серверов 1С:

  1. Откроем ветку нужного кластера и перейдем в раздел Информационные базы.
  2. Откроем свойства рабочей информационной базы.
  3. Найдем параметр Время засыпания пассивных сеансов и установим разумное значение (например, 1200 секунд — 20 минут). По истечении этого времени неактивный сеанс уснет.
  4. Найдем параметр Время завершения спящих сеансов (по умолчанию 86400) и уменьшим его до 1800–3600 секунд (от 30 минут до 1 часа). После этого сервер будет принудительно удалять зависшие сеансы и мгновенно возвращать лицензии в пул.

Шаг 2. Корректировка раздачи лицензий в терминале

Если пользователи работают на одном сервере через Удаленный рабочий стол (RDP), целесообразно запретить серверу 1С самостоятельно раздавать лицензии, чтобы одна сессия пользователя не потребляла несколько лицензий при открытии нескольких баз:

  1. В консоли администрирования кластера в свойствах информационной базы найдем пункт Разрешить выдачу лицензий сервером 1С:Предприятия.
  2. Установим значение в Нет.
  3. Убедимся, что файлы программных лицензий *.lic скопированы в общий каталог C:\ProgramData\1C\licenses, к которому имеют права на чтение все пользователи терминала.

Шаг 3. Очистка кэша и поиск блокирующего процесса

Если лицензия продолжает удерживаться даже после закрытия программы, выясним причину блокировки:

  1. Запустим штатный Монитор ресурсов Windows (вкладка ЦП -> панель Связанные дескрипторы).
  2. В строке поиска дескрипторов введем расширение .lic или имя файла лицензии. Монитор покажет точный PID и имя процесса (например, rphost.exe или сторонний антивирус), который держит файл.
  3. Очистим локальный кэш пользователя в каталогах %localappdata%\1C\1Cv8 и %appdata%\1C\1Cv8, чтобы удалить запомненные некорректные параметры привязки к лицензиям.
  4. Добавим рабочие каталоги 1C\licenses и исполняемые файлы ragent.exe, rmngr.exe, rphost.exe, 1cv8.exe в исключения антивирусного сканера.

Шаг 4. Проверка аппаратных ключей защиты (HASP)

Если в системе ранее использовались аппаратные ключи USB или настроена комбинированная схема (HASP + программные лицензии), платформа при старте может тратить время на опрос локальных и сетевых портов. При отсутствии USB-ключей рекомендуется отключить поиск аппаратного ключа в параметрах запуска конкретной базы (кнопка Настройка в списке баз -> снять флаг Использовать аппаратную защиту), что предотвратит конфликты поиска лицензий.

← На главную