hub.1cdevelopers.ru
hub.1cdevelopers.ru

edtfindпакет

с апстрима
скачиваний: 8

Пакет лежит в основном пуле хаба, а opm знает этот хаб по умолчанию: короткой формы достаточно.

opm install edtfind

Скачанный файл ставится командой opm install -f <файл> — сеть для этого уже не нужна.

Описание

EDTfind

Библиотека OneScript для поиска каталога исполняемого файла EDT (1C:Enterprise Development Tools).

Назначение

Модуль EDTfind находит установки EDT (офлайн-установки и установки через стартер, в том числе Lite-версию), определяет их версии по файлам установки и возвращает информацию о выбранной установке: каталог, версию, путь к 1cedtcli и признак Lite-версии.

При ошибках модуль выдаёт диагностику с указанием каталогов поиска и доступных версий.

Поддерживаемые ОС

  • Windows
  • Linux

Установка

opm install edtfind

Использование

Как библиотека (API)

#Использовать edtfind

Поиск = Новый ПоискEDT();

// Найти максимальную установленную версию EDT
Результат = Поиск.НайтиИнформациюОEDT();
// Результат.КаталогEDT    — каталог установки EDT
// Результат.ВерсияEDT     — полная версия EDT (например "2024.1.2")
// Результат.ПутьКcli      — путь к 1cedtcli (пустая строка, если файл не найден)
// Результат.ЭтоLite       — Истина, если выбрана Lite-версия EDT

// Найти конкретную версию EDT
Результат = Поиск.НайтиИнформациюОEDT("2024.1.2");

// Найти максимальную версию EDT в линейке 2024.1
Результат = Поиск.НайтиИнформациюОEDT("2024.1");

// Если обычная и Lite-версия установлены с одинаковым номером - выбрать Lite
// (по умолчанию выбирается обычная; на выбор номера версии параметр не влияет)
Результат = Поиск.НайтиИнформациюОEDT("2026.1.3", Истина);

Как CLI-приложение

Команда find возвращает одну строку в формате <КаталогEDT>|<ВерсияEDT>|<ПутьКcli>:

# Найти максимальную установленную версию
edtfind find
# Пример вывода: C:\Users\user\AppData\Local\1C\1cedtstart\installations\1C_EDT 2026.1\1cedt|2026.1.3|C:\...\1cedtcli.exe

# Найти конкретную версию
edtfind find --edt-version 2024.1.2

# Найти максимальную версию в линейке 2024.1
edtfind find --edt-version 2024.1

# При совпадении номеров обычной и Lite-версии выбрать Lite
edtfind find --edt-version 2026.1.3 --prefer-lite

# Подробный вывод (отладка)
edtfind find -v

# Версия утилиты
edtfind --version

Алгоритм работы

  1. Сбор кандидатов — сканирование стандартных каталогов установки EDT по файлу-маркеру 1cedt.ini.
  2. Проверка установки — каталог считается рабочей установкой EDT, если в нём есть 1cedt.ini, 1cedt (1cedt.exe в Windows), .eclipseproduct и configuration/config.ini — так же проверяет установки стартер EDT.
  3. Определение версии — версия берётся из configuration/config.ini, параметр product.version (например, 2026.1.3). Установка без product.version пропускается с предупреждением в логе.
  4. Признак Lite-версии — установка считается Lite-версией, если в configuration/org.eclipse.oomph.setup/installation.setup указан код продукта epp.package.1cedt.light. У офлайн-установок этого файла нет — они считаются обычными.
  5. Выбор версии — если задана полная версия (YYYY.M.P), выбирается точное совпадение; если задана укороченная (YYYY.M), выбирается максимальная установленная YYYY.M.*; если версия не задана — максимальная найденная (в том числе Lite-версия, если она новее обычной).
  6. Выбор установки при совпадении номеров — если выбранной версии соответствует несколько установок, обычная версия выбирается раньше Lite-версии (параметр ПредпочитатьLite / флаг --prefer-lite меняет этот порядок), а офлайн-установка — раньше установки через стартер.
  7. Определение пути к 1cedtcli — в каталоге установки ищется исполняемый файл 1cedtcli. Если найден — возвращается полный путь, если нет — пустая строка.
  8. Возврат результата — возвращается структура с каталогом установки, версией EDT, путём к 1cedtcli и признаком Lite-версии.

Каталоги поиска по умолчанию

Windows

  • %LOCALAPPDATA%\1C\1cedtstart\installations
  • C:\Program Files\1C\1CE\components

Linux

  • ~/.local/share/1C/1cedtstart/installations
  • /opt/1C/1CE/components

Ограничения

  • Поиск выполняется только в каталогах по умолчанию: установки стартера в каталоге, изменённом в настройках стартера, не находятся.
  • Каталог установок стартера берётся из профиля пользователя, под которым запущен поиск. Если сборка выполняется под другой учётной записью, установки стартера других пользователей не видны — для серверов сборки рекомендуется офлайн-установка.

Диагностика ошибок

При невозможности найти EDT модуль выбрасывает исключение с сообщением:

  • Не найдено ни одной установленной версии EDT — с указанием проверенных каталогов.
  • Не найдено ни одной рабочей установки EDT — файлы-маркеры есть, но ни один каталог не прошёл проверку установки или не содержит product.version.
  • Запрошенная версия EDT не найдена — с перечислением доступных версий.

Зависимости

  • logos — логирование
  • cli — парсинг аргументов командной строки
  • fs — работа с файловой системой
  • semver — сравнение и сортировка версий

Лицензия

MPL-2.0