Как исправить ошибку отсутствия файла ring-commands.cfg при установке утилиты ring в 1С:Предприятие?

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

При настройке консольной утилиты ring для работы с лицензиями или инструментами разработки 1С:Предприятие пользователи часто сталкиваются со следующей ситуацией: сама утилита установлена из MSI-пакета, среда Java 8 настроена, переменные окружения JAVA_HOME и PATH прописаны, однако при попытке выполнения команд система выдает ошибку о том, что отсутствует файл ring-commands.cfg.

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

Выясним причину возникновения ошибки

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

Все команды предоставляются отдельными плагинами (модулями), такими как модуль license или edt. Информация о зарегистрированных в системе модулях хранится в специальном реестре — файле ring-commands.cfg. Если установлена только базовая оболочка ring, а сам модуль (например, пакет работы с лицензиями) еще не инсталлирован, этот файл отсутствует или не содержит сведений о необходимых командах, из-за чего утилита завершает работу с ошибкой.

Структура и расположение файла ring-commands.cfg

Посмотрим, как устроена регистрация модулей. Файл ring-commands.cfg создается и обновляется автоматически при установке соответствующих компонентов 1С. Он представляет собой текстовый файл в кодировке UTF-8 (без BOM) с синтаксисом YAML.

Штатные пути к файлу реестра в операционных системах:

  1. Для ОС Windows: %ALLUSERSPROFILE%\1C\1CE (или C:\ProgramData\1C\1CE).
  2. Для ОС Linux: /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

В этой структуре:

  1. license — наименование модуля, используемое в командной строке при вызове утилиты.
  2. file — полный путь к исполняемому JAR-файлу модуля.
  3. arch — архитектура модуля (например, x86_64 или x86).
  4. 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 настроена правильно для взаимодействия с модулем:

  1. Совпадение разрядности: разрядность Java (32-bit или 64-bit) должна строго соответствовать разрядности установленной утилиты ring и модуля.
  2. Переменная окружения: системная переменная JAVA_HOME должна указывать на корневую папку корректной версии JDK/JRE (например, C:\Program Files\Java\jre1.8.0_311).
  3. Настройки криптографии: если используется сборка Java 8 ниже обновления 151 (update 151), необходимо установить файлы неограниченной стойкости криптографии (JCE Unlimited Strength Jurisdiction Policy Files). Для более свежих версий Java убедимся, что в файле java.security параметр crypto.policy установлен в значение unlimited.

Шаг 3. Зависимости операционной системы

Проверим системные компоненты:

  1. В Windows: убедимся, что включен и функционирует компонент Windows Script Host (WSH), необходимый для работы модуля лицензирования.
  2. В Linux: проверим наличие установленной утилиты GNU Awk (gawk), которая требуется для внутренней обработки данных.

Особенности использования утилиты ring в командных скриптах

Рассмотрим важную деталь запуска ring в среде ОС Windows. Утилита представляет собой пакетный файл ring.cmd. Если запуск производится из другого командного файла (.bat или .cmd) напрямую, выполнение родительского скрипта прервется сразу после завершения работы ring.

Чтобы этого избежать, всегда вызываем утилиту с помощью оператора call:

call ring license list

Если требуется организовать автономный (Portable) режим работы, создаем локальный каталог профиля, помещаем туда ring-commands.cfg и перед вызовом утилиты переопределяем переменную ProgramData, указывая путь к текущей папке.

← На главную