Как активировать Community-лицензию 1С на сервере Linux?

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

При развертывании бесплатной лицензии разработчика (Community) на сервере под управлением Linux системные администраторы часто сталкиваются с ситуацией, когда сервер сообщает об отсутствии лицензии. Попытка активировать ее с удаленного клиентского компьютера под Windows приводит к циклическому перезапуску: клиент пишет, что лицензия успешно получена, но сервер ее не видит, а поиск файлов *.lic на сервере ничего не дает.

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

Почему не удается активировать серверную комьюнити-лицензию с клиентского ПК?

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

Сервер Linux ничего не знает об этой операции. Консольная утилита ring license также не поможет, так как она рассчитана исключительно на коммерческие комплекты с пин-кодами. Таким образом, получение лицензии разработчика должно инициироваться непосредственно в среде самого сервера.

Особенности и системные ограничения лицензии Community

Перед настройкой сервера обязательно учтем ключевые технические условия лицензии разработчика:

  1. Постоянный доступ в интернет: Сервер должен иметь прямой исходящий доступ по протоколу HTTPS (порт 443) к сервисам авторизации разработчиков «1С». Без этого валидация и продление завершатся ошибкой.
  2. Срок действия: Лицензия выдается ровно на 7 дней. Если сервер включен и доступен интернет, платформа старается продлевать ее в фоновом режиме, но при любых сетевых сбоях процесс может потребоваться повторить.
  3. Лимит оборудования: Для одной учетной записи портала разработчиков действует лимит — не более трех одновременно активных рабочих мест или серверов.

Решение проблемы с графическим окружением и пакетом policykit-1

Для интерактивного запуска тонкого или толстого клиента на сервере Linux часто требуется запустить графический интерфейс. Однако при установке или старте клиента в современных дистрибутивах (например, Ubuntu или Debian) возникает системная ошибка: «Для пакета policykit-1 не найден кандидат на установку».

Выясним причину ошибки: в современных версиях дистрибутивов устаревший пакет policykit-1 удален из репозиториев и заменен системной службой polkitd и утилитой pkexec. Платформе 1С этот компонент требуется лишь для отображения графического диалога повышения привилегий sudo. Разберем шаги по устранению неполадки:

  1. Установим графический агент авторизации для среды GNOME, выполнив команду в терминале:
    
    sudo apt update
    sudo apt install policykit-1-gnome
    
  2. Если установщик жестко требует именно имя пакета policykit-1, создадим фиктивный мета-пакет с помощью утилиты equivs, настроив его зависимость от актуального пакета polkitd.
  3. Проверим наличие вспомогательных библиотек, без которых клиент «1С:Предприятия» аварийно закрывается: libcanberra-gtk-module, WebKitGTK и шрифты ttf-mscorefonts-installer.

Запуск интерфейса без локального GUI: X11 Forwarding и Xvfb

Устанавливать полноценный тяжелый рабочий стол (например, GNOME Desktop) на производственный сервер не требуется. Рассмотрим два более чистых решения:

  1. Проброс графики через SSH (X11 Forwarding): На сервере достаточно установить минимальный набор библиотек X11. В конфигурационном файле SSH-демона /etc/ssh/sshd_config активируем директиву X11Forwarding yes и перезапустим службу sshd. На стороне администратора под Windows запускаем X-сервер (например, VcXsrv или Xming) и подключаемся через терминал с флагом проброса: ssh -X user@server_ip. При вызове команды запуска клиента /opt/1cv8/x86_64/8.3.XX.XXXX/1cv8 окно мастера активации откроется на клиентском экране, но сам процесс и файл лицензии будут созданы в системе Linux.
  2. Использование виртуального кадрового буфера (Xvfb): Если необходимо запустить графический исполняемый файл в режиме «headless», установим пакет xvfb и выполним вызов через утилиту виртуального экрана: xvfb-run /opt/1cv8/x86_64/8.3.XX.XXXX/1cv8

Программная активация средствами встроенного языка 1С

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


ПараметрыЗапроса = Новый ПараметрыАктивацииЛицензии;
ПараметрыЗапроса.ИмяУчетнойЗаписи = "developer_login";
ПараметрыЗапроса.ПарольУчетнойЗаписи = "developer_password";
ПараметрыЗапроса.АдресАгента = "tcp://localhost:1540";

АктивироватьЛицензиюНаСервере(ПараметрыЗапроса);

В данном сценарии объект ЗапросНаПолучениеЛицензии и метод АктивироватьЛицензиюНаСервере передают данные учетной записи разработчика напрямую в службу кластера, исключая необходимость в графических оболочках.

Каталоги хранения лицензий и настройка прав доступа

После корректного завершения процедуры в файловой системе Linux создается файл с расширением .lic. Рассмотрим типовые пути, где платформа производит поиск лицензий:

  1. /var/1C/licenses (общесистемный каталог)
  2. /home/usr1cv8/.1cv8/1C/1cv8/conf/ (домашний каталог пользователя службы usr1cv8)
  3. /opt/1cv8/conf/ или /opt/1cv8/x86_64/8.3.XX.XXXX/conf/
  4. Каталог, явно переопределенный параметром в файле conf.cfg

Важное правило: Служба сервера (обычно работающая от имени системного пользователя usr1cv8 и группы grp1cv8) обязана иметь полные права на чтение и запись в каталог с лицензией, а также к самому файлу лицензии.

Настроим права доступа следующими командами в терминале:


sudo chown -R usr1cv8:grp1cv8 /var/1C/licenses
sudo chmod 775 /var/1C/licenses
sudo chmod 664 /var/1C/licenses/*.lic

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

← На главную