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

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

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

Выясняем причину через журнал поиска лицензий

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

Проанализируем механизм получения информации. В момент возникновения ошибки на экране появляется окно, в котором можно нажать кнопку «Подробно», что особенно полезно, когда выполняется теневое подключение к RDP сессии пользователя. Там отображается Журнал поиска лицензий. Если по какой-то причине окно не открылось, можно воспользоваться «хитростью», упомянутой на практике: попробовать зайти в базу в режиме Конфигуратор и выбрать меню Сервис — Получение лицензии. Даже если вы нажмете «Отмена», система может инициализировать поиск и выдать лог.

Внимательно изучим содержимое журнала. Нас интересуют следующие формулировки:

Анализируем проблему привязки к железу и имени ПК

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

Ключевые параметры привязки:

  1. Наименование компьютера (Host Name).
  2. Версия и серийный номер операционной системы.
  3. Серийный номер материнской платы.
  4. Объем оперативной памяти (ОЗУ).
  5. Тип и количество процессоров.
  6. Параметры сетевых адаптеров и их MAC-адреса.
  7. Параметры жестких дисков.

Выясним причину на конкретном примере. Если при активации сервер назывался DESKTOP-OLD, а затем системный администратор переименовал его в SERVER-1C, лицензия мгновенно «слетит». В этом случае решение одно — повторная активация лицензии с использованием резервного пин-кода. Если резервные коды закончились, необходимо написать запрос в центр лицензирования 1С (lic@1c.ru) с описанием причины изменения параметров.

Особенности работы в виртуальной среде

Проанализируем работу 1С на виртуальных машинах (Hyper-V, VMware, VirtualBox). Здесь лицензии «слетают» чаще всего из-за динамического распределения ресурсов. Посмотрим, что нужно сделать для стабилизации:

Настройка выдачи лицензий сервером 1С

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

  1. Если установлено «Да»: Сервер 1С сам раздает лицензии из своей папки. При этом работает правило: 1 сеанс = 1 лицензия. Если пользователь в одной терминальной сессии откроет три разные базы (или три окна одной базы), он займет три лицензии.
  2. Если установлено «Нет» (Рекомендуется для RDP): Лицензию захватывает само клиентское приложение 1cv8.exe. В этом случае на терминальном сервере работает правило: одна терминальная сессия — одна лицензия, независимо от количества открытых баз.

Проанализируем ситуацию: если у вас 10 лицензий и 10 пользователей, работающих через RDP, то при значении «Да» и открытии каждым пользователем по 2 базы, 1С выдаст ошибку о нехватке лицензий (в этом случае пригодится приложение для управления сеансами сервера). Поэтому в консоли сервера у всех баз (включая тестовые) рекомендуется установить «Нет» в поле выдачи лицензий.

Решение проблемы зависших сессий (SplWOW64)

Рассмотрим технический сбой, характерный для 32-битных платформ 1С на 64-битных ОС Windows. При печати документов активируется процесс SplWOW64.exe, который может удерживать лицензию даже после закрытия программы 1С. Если пользователь вышел из системы, а этот процесс «завис», лицензия не возвращается в пул свободных.

Для исправления этой ситуации выполним корректировку системного реестра:

  1. Уменьшим тайм-аут завершения процесса. Перейдем в ветку: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print Создадим параметр SplWOW64TimeOut (тип DWORD 32 бита) и установим значение 1.
  2. Добавим процесс в список завершаемых при выходе из терминала. Ветка: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\SysProcs Создадим параметр SPLWOW64.EXE (тип DWORD 32 бита) со значением 0.

Диагностика через Технологический журнал (событие LIC)

Если визуальный лог не дает ответа, проанализируем ситуацию более глубоко с помощью Технологического журнала 1С. Нам нужно создать файл logcfg.xml в папке conf и добавить в него отслеживание события LIC. Рассмотрим пример настройки:


<config xmlns="http://v8.1c.ru/7.4/get/logcfg">
  <log location="C:\LOGS\LIC" history="24">
    <event>
      <eq property="Name" value="LIC"/>
    </event>
    <property name="all"/>
  </log>
</config>

После этого 1С начнет записывать в файлы логов каждую попытку обращения к лицензии. Там будет указан точный путь к файлу лицензии, который был прочитан, и конкретная причина отказа (например, несовпадение конкретного параметра железа — Memory changed или Netbios name changed).

Практические советы по обслуживанию файлов лицензий

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

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

← На главную