При развертывании клиент-серверной инфраструктуры (например, связки Windows Server, MS SQL Server и платформы «1С:Предприятие 8.3») начинающие администраторы и разработчики нередко сталкиваются с ситуацией: клиентские лицензии успешно приобретены и активированы, консоль администрирования кластера работает, однако при попытке запустить Конфигуратор или клиентский сеанс платформа выдает ошибку о том, что лицензия не найдена, либо сообщает: «Файл программной лицензии не предусматривает возможность запуска сервера 1С:Предприятия».
Разберем детально архитектуру лицензирования платформы, выясним первопричину такого поведения и пошагово рассмотрим все способы решения возникшей проблемы.
Проанализируем архитектуру лицензирования «1С:Предприятия». В отличие от файлового режима, где для запуска программы достаточно исключительно клиентских лицензий, работа в клиент-серверном варианте (с использованием СУБД MS SQL Server, PostgreSQL, IBM DB2 или Oracle) требует раздельного лицензирования двух уровней:
ragent, rmngr, rphost). Без нее серверная служба не имеет права обслуживать подключения к информационным базам, даже если у вас есть сотни рабочих мест.Когда вы приобретаете только комплект клиентских лицензий, вы получаете право на подключение пользователей, но не получаете права на эксплуатацию кластера серверов 1С. Попытка вручную скопировать файл клиентской лицензии (с расширением .lic) в системные папки платформы (например, в каталог bin/conf) приводит к тому, что рабочий процесс сервера rphost считывает данный файл, видит внутри параметры только клиентских мест и блокирует запуск с диагностическим сообщением: «Файл программной лицензии не предусматривает возможность запуска сервера 1С:Предприятия».
Для штатной работы в клиент-серверном режиме необходимо докупить и активировать серверную лицензию. Разберем доступные варианты:
rphost, что критически важно для работы с MS SQL Server.rphost сможет адресовать не более 4 ГБ виртуального адресного пространства, что на нагруженных базах приводит к регулярным нехваткам памяти.Конфигуратор. Обратите внимание: расширить такой сервер нельзя, при увеличении штата его придется менять на полноценную серверную лицензию.Активация серверной лицензии выполняется через утилиту запуска платформы или мастер активации от имени учетной записи с правами локального администратора.
Рассмотрим, куда платформа 1С сохраняет и где ищет файлы программных лицензий. Крайне не рекомендуется вручную перемещать файлы лицензий в каталоги установки платформы (в частности, в C:\Program Files\1cv8\8.3.X.XXXX\bin\conf\). При обновлении версии платформы файлы в подкаталогах версии могут потеряться, а рабочие процессы начнут считывать клиентские лицензии вместо серверных.
Штатные общесистемные пути для программных лицензий под управлением ОС Windows:
C:\ProgramData\1C\licenses — стандартный каталог для всех пользователей и системных служб. Именно сюда рекомендуется сохранять файлы лицензий при регистрации, выбирая в мастере пункт «Всем пользователям данного компьютера».C:\Users\<ИмяПользователя>\AppData\Local\1C\1Cv8\ExtCompT — каталог лицензий текущего пользователя (используется, если лицензия получается без прав администратора).Если вы ранее скопировали клиентский файл лицензии в папку bin\conf, обязательно удалите его оттуда, чтобы исключить ложные срабатывания проверки сервера.
Разберем два возможных сценария раздачи клиентских лицензий, когда пользователи работают через Remote Desktop Services (RDP):
В этом случае файл многопользовательской лицензии активируется на сервере, где запущена служба ragent. В консоли «Администрирование серверов 1С:Предприятия» открываем свойства нужной информационной базы и устанавливаем параметр «Разрешить выдачу лицензий сервером 1С:Предприятия» = «Да». Сервер самостоятельно распределяет лицензии подключившимся клиентам. Важная особенность: при таком способе лицензия списывается на каждый открытый сеанс. Если один терминальный пользователь запустит базу дважды, будут израсходованы две клиентские лицензии.
Если сервер терминалов и сервер 1С разнесены на разные машины, лицензии можно активировать непосредственно на терминальном сервере в каталог C:\ProgramData\1C\licenses. Клиентское приложение 1С берет лицензию локально прямо в терминальной сессии. В свойствах базы в кластере раздачу сервером можно отключить («Разрешить выдачу лицензий сервером 1С:Предприятия» = «Нет»). Если на терминальном сервере активирован набор однопользовательских пин-кодов, подсчет лицензий ведется на терминальную сессию: пользователь может запустить несколько баз в рамках одного RDP-сеанса, потратив всего одну лицензию.
Проанализируем факторы риска, связанные с привязкой программных лицензий. Программная лицензия 1С при формировании файла привязывается к аппаратно-программным характеристикам сервера:
Если Windows Server функционирует внутри гипервизора (Hyper-V, VMware ESXi, Proxmox), любое динамическое изменение параметров виртуальной машины (динамическое выделение оперативной памяти, смена хоста виртуализации vMotion, генерация нового MAC-адреса или добавление виртуального ядра CPU) приведет к повреждению привязки. Лицензия станет недействительной, и потребуется вводить резервный пин-код с обязательным сохранением точных регистрационных данных предприятия.
Если работа пользователей остановлена, а покупка и получение лицензии на сервер «1С:Предприятия» займет время, рассмотрим временное обходное решение:
.dt..dt в созданную файловую базу.C:\ProgramData\1C\licenses на терминальном сервере.В таком режиме пользователи смогут продолжить работу через терминальные сессии без участия служб кластера 1С и СУБД. После приобретения и регистрации серверной лицензии базу можно вернуть обратно в MS SQL Server обратной операцией выгрузки и загрузки .dt.