Работа в терминальном режиме (RDP) с программными лицензиями 1С:Предприятие часто сопровождается специфическими сложностями. Ошибка «Нет свободной лицензии» может возникать даже в тех случаях, когда количество купленных лицензий объективно превышает число работающих пользователей. В данной статье мы подробно разберем причины возникновения этой ситуации, проанализируем методы диагностики и изучим проверенные способы решения проблемы.
Первое, что необходимо сделать при возникновении ошибки — понять, «видит» ли программа файлы лицензий и почему она отказывается их принимать. Многие администраторы пытаются решить проблему методом перезагрузки или переустановки платформы, однако 1С предоставляет встроенный инструмент диагностики.
Проанализируем механизм получения информации. В момент возникновения ошибки на экране появляется окно, в котором можно нажать кнопку «Подробно», что особенно полезно, когда выполняется теневое подключение к RDP сессии пользователя. Там отображается Журнал поиска лицензий. Если по какой-то причине окно не открылось, можно воспользоваться «хитростью», упомянутой на практике: попробовать зайти в базу в режиме Конфигуратор и выбрать меню Сервис — Получение лицензии. Даже если вы нажмете «Отмена», система может инициализировать поиск и выдать лог.
Внимательно изучим содержимое журнала. Нас интересуют следующие формулировки:
Рассмотрим ситуацию, когда в журнале указано: «изменилось имя компьютера» или «изменились параметры компьютера». Программная лицензия 1С жестко привязывается к ключевым характеристикам системы. Если хотя бы один из параметров изменится, файл лицензии (.lic) становится недействительным.
Ключевые параметры привязки:
Выясним причину на конкретном примере. Если при активации сервер назывался DESKTOP-OLD, а затем системный администратор переименовал его в SERVER-1C, лицензия мгновенно «слетит». В этом случае решение одно — повторная активация лицензии с использованием резервного пин-кода. Если резервные коды закончились, необходимо написать запрос в центр лицензирования 1С (lic@1c.ru) с описанием причины изменения параметров.
Проанализируем работу 1С на виртуальных машинах (Hyper-V, VMware, VirtualBox). Здесь лицензии «слетают» чаще всего из-за динамического распределения ресурсов. Посмотрим, что нужно сделать для стабилизации:
Разберем важный нюанс управления лицензиями через консоль администрирования сервера 1С. Существует параметр «Разрешить выдачу лицензий сервером 1С Предприятия». Посмотрим, как он влияет на расход лицензий в режиме RDP:
1cv8.exe. В этом случае на терминальном сервере работает правило: одна терминальная сессия — одна лицензия, независимо от количества открытых баз.Проанализируем ситуацию: если у вас 10 лицензий и 10 пользователей, работающих через RDP, то при значении «Да» и открытии каждым пользователем по 2 базы, 1С выдаст ошибку о нехватке лицензий (в этом случае пригодится приложение для управления сеансами сервера). Поэтому в консоли сервера у всех баз (включая тестовые) рекомендуется установить «Нет» в поле выдачи лицензий.
Рассмотрим технический сбой, характерный для 32-битных платформ 1С на 64-битных ОС Windows. При печати документов активируется процесс SplWOW64.exe, который может удерживать лицензию даже после закрытия программы 1С. Если пользователь вышел из системы, а этот процесс «завис», лицензия не возвращается в пул свободных.
Для исправления этой ситуации выполним корректировку системного реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
Создадим параметр SplWOW64TimeOut (тип DWORD 32 бита) и установим значение 1.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\SysProcs
Создадим параметр SPLWOW64.EXE (тип DWORD 32 бита) со значением 0.Если визуальный лог не дает ответа, проанализируем ситуацию более глубоко с помощью Технологического журнала 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).
Выясним, как правильно организовать хранение файлов лицензий, чтобы избежать путаницы:
C:\ProgramData\1C\1Cv8\Conf или .../licenses не должно быть нерабочих файлов. Если вы активировали лицензию повторно с новым пин-кодом, старый файл .lic лучше переместить в архивную папку. 1С перебирает все файлы по очереди, и наличие «битых» привязок может вызывать задержки или конфликты..lic и каталоги 1С в исключения антивирусного сканера. Иногда блокировка файла антивирусом в момент проверки целостности приводит к временному «исчезновению» лицензии.Подводя итог, можно сказать, что большинство проблем с лицензиями в RDP решается либо фиксацией сетевых имен и параметров железа, либо правильной настройкой консоли сервера 1С для предотвращения избыточного расхода сеансов.