При настройке консольной утилиты ring для работы с лицензиями или инструментами разработки 1С:Предприятие пользователи часто сталкиваются со следующей ситуацией: сама утилита установлена из MSI-пакета, среда Java 8 настроена, переменные окружения JAVA_HOME и PATH прописаны, однако при попытке выполнения команд система выдает ошибку о том, что отсутствует файл ring-commands.cfg.
Рассмотрим подробно причину возникновения данной ошибки, архитектуру работы утилиты ring и пошаговый порядок её корректной развертки и настройки.
Проанализируем устройство утилиты ring. По своей сути ring представляет собой модульную консольную оболочку. Сама по себе базовая оболочка не содержит встроенных команд и логики выполнения конкретных операций (например, активирования или проверки программных лицензий 1С).
Все команды предоставляются отдельными плагинами (модулями), такими как модуль license или edt. Информация о зарегистрированных в системе модулях хранится в специальном реестре — файле ring-commands.cfg. Если установлена только базовая оболочка ring, а сам модуль (например, пакет работы с лицензиями) еще не инсталлирован, этот файл отсутствует или не содержит сведений о необходимых командах, из-за чего утилита завершает работу с ошибкой.
Посмотрим, как устроена регистрация модулей. Файл ring-commands.cfg создается и обновляется автоматически при установке соответствующих компонентов 1С. Он представляет собой текстовый файл в кодировке UTF-8 (без BOM) с синтаксисом YAML.
Штатные пути к файлу реестра в операционных системах:
%ALLUSERSPROFILE%\1C\1CE (или C:\ProgramData\1C\1CE)./etc/1C/1CE.Пример содержимого файла ring-commands.cfg при зарегистрированном модуле лицензирования:
license:
-
file: C:\Program Files\1C\1CE\license-tools\lib\com._1c.license.activator.ring-0.1.0-12.jar
arch: x86_64
version: 0.1.0
В этой структуре:
license — наименование модуля, используемое в командной строке при вызове утилиты.file — полный путь к исполняемому JAR-файлу модуля.arch — архитектура модуля (например, x86_64 или x86).version — версия установленного модуля.Разберем по шагам, как привести систему в рабочее состояние и устранить ошибку отсутствия конфигурационного файла.
Шаг 1. Установка пакета утилит лицензирования
Поскольку сама утилита ring является лишь оболочкой, необходимо установить соответствующий модуль. Для работы с лицензиями нужно выполнить запуск дистрибутива утилит работы с лицензиями (например, 1c-enterprise-license-tools-0.1.0-22.x86.msi или аналогичного из поставки 1С:Предприятие).
Обычно этот файл можно найти в дистрибутиве платформы по пути:
C:\Program Files (x86)\1cv8\ExtDst\1c-enterprise-license-tools-*.msi
После запуска инсталлятора соответствующий модуль (файлы .jar) скопируется в рабочую директорию, а реестр ring-commands.cfg сформируется автоматически в каталоге %ProgramData%\1C\1CE.
Шаг 2. Проверка требований к среде Java
Убедимся, что среда исполнения Java настроена правильно для взаимодействия с модулем:
ring и модуля.JAVA_HOME должна указывать на корневую папку корректной версии JDK/JRE (например, C:\Program Files\Java\jre1.8.0_311).java.security параметр crypto.policy установлен в значение unlimited.Шаг 3. Зависимости операционной системы
Проверим системные компоненты:
GNU Awk (gawk), которая требуется для внутренней обработки данных.Рассмотрим важную деталь запуска ring в среде ОС Windows. Утилита представляет собой пакетный файл ring.cmd. Если запуск производится из другого командного файла (.bat или .cmd) напрямую, выполнение родительского скрипта прервется сразу после завершения работы ring.
Чтобы этого избежать, всегда вызываем утилиту с помощью оператора call:
call ring license list
Если требуется организовать автономный (Portable) режим работы, создаем локальный каталог профиля, помещаем туда ring-commands.cfg и перед вызовом утилиты переопределяем переменную ProgramData, указывая путь к текущей папке.