edtfindпакет
Пакет лежит в основном пуле хаба: короткой формы достаточно, если хаб прописан сервером пакетов в opm.cfg.
opm install edtfindУстановка на opm младше 1.7.0
Легаси-флоу. Клиент младше 1.7.0 адрес пула в аргументе не разбирает: пул сначала прописывают сервером пакетов, и только потом ставят через него. На 1.7.0 и новее этот раздел не нужен — хватает команды из шапки страницы.
Добавьте пул сервером пакетов в opm.cfg. Порт продублирован в «Сервер»: у opm push поле «Порт» не читается.
{
"СервераПакетов": [
{
"Имя": "default",
"Сервер": "https://hub.1cdevelopers.ru",
"Порт": 443,
"ПутьНаСервере": "/api/v1/pools/default/download/",
"РесурсПубликацииПакетов": "/api/v1/pools/default/push",
"Приоритет": 1
}
]
}И ставьте пакет, указывая сервер:
opm install -m default edtfindОписание
EDTfind
Библиотека OneScript для поиска каталога исполняемого файла EDT (1C:Enterprise Development Tools).
Назначение
Модуль EDTfind определяет установленные версии EDT по файлам-маркерам (1cedt.ini, 1cedt) и возвращает информацию о выбранной установке: каталог, версию и путь к 1cedtcli.
При ошибках модуль выдаёт диагностику с указанием каталогов поиска и доступных версий.
Поддерживаемые ОС
- Windows
- Linux
Установка
opm install edtfind
Использование
Как библиотека (API)
#Использовать edtfind
Поиск = Новый ПоискEDT();
// Найти максимальную установленную версию EDT
Результат = Поиск.НайтиИнформациюОEDT();
// Результат.КаталогEDT — каталог установки EDT
// Результат.ВерсияEDT — полная версия EDT (например "2024.1.2")
// Результат.ПутьКcli — путь к 1cedtcli (пустая строка, если файл не найден)
// Найти конкретную версию EDT
Результат = Поиск.НайтиИнформациюОEDT("2024.1.2");
// Найти максимальную версию EDT в линейке 2024.1
Результат = Поиск.НайтиИнформациюОEDT("2024.1");
Как CLI-приложение
Команда find возвращает одну строку в формате <КаталогEDT>|<ВерсияEDT>|<ПутьКcli>:
# Найти максимальную установленную версию
edtfind find
# Пример вывода: C:\Users\user\AppData\Local\1C\1cedtstart\installations\1c_edt_2024.1.2|2024.1.2|C:\...\1cedtcli.exe
# Найти конкретную версию
edtfind find --edt-version 2024.1.2
# Найти максимальную версию в линейке 2024.1
edtfind find --edt-version 2024.1
# Подробный вывод (отладка)
edtfind find -v
# Версия утилиты
edtfind --version
Алгоритм работы
- Сбор кандидатов — сканирование стандартных каталогов установки EDT по файлам-маркерам (
1cedt.ini,1cedt). - Извлечение версий — из имён каталогов установки извлекается номер версии (например,
1c_edt_2024.1.2→2024.1.2). - Выбор версии — если задана полная версия (
YYYY.M.P), выбирается точное совпадение; если задана укороченная (YYYY.M), выбирается максимальная установленнаяYYYY.M.*; если версия не задана — максимальная найденная. - Определение пути к 1cedtcli — в каталоге установки ищется исполняемый файл
1cedtcli. Если найден — возвращается полный путь, если нет — пустая строка. - Возврат результата — возвращается структура с каталогом установки, версией EDT и путём к
1cedtcli.
Каталоги поиска по умолчанию
Windows
%LOCALAPPDATA%\1C\1cedtstart\installationsC:\Program Files\1C\1CE\components
Linux
~/.local/share/1C/1cedtstart/installations/opt/1C/1CE/components
Диагностика ошибок
При невозможности найти EDT модуль выбрасывает исключение с сообщением:
- Не найдено ни одной установленной версии EDT — с указанием проверенных каталогов.
- Запрошенная версия EDT не найдена — с перечислением доступных версий.
Зависимости
- logos — логирование
- cli — парсинг аргументов командной строки
- fs — работа с файловой системой
- semver — сравнение и сортировка версий