Skip to content

Исходники в формате 1С:EDT

Команды, работающие с каталогом исходников, понимают два формата:

  • XML-дамп Конфигуратора - выгрузка платформы (Configuration.xml в корне);
  • 1С:EDT - проект EDT (.project, каталог src/ с файлами *.mdo).

Платформа читает только XML, поэтому проект EDT экспортируется утилитой 1cedtcli (поставляется с 1С:EDT) во временный XML-каталог, а результат обычных операций при выгрузке в EDT импортируется ею обратно.

Поддержка по командам

КомандаВвод EDTВывод EDT
cf compile, cf load, infobase initда-
cf decompile-да
cfe compile, cfe loadда-
cfe decompile-да
epf compileда-
epf decompile-да
cf convert, cfe convert, epf convertдада
validate edtда-

Опции

--src-format входит в набор «Формат исходников», опции --edt-* подключаются вместе с ним; у команд convert есть только --edt-*.

ОпцияПеременная окруженияОписание
--src-format-Формат каталога: auto (по умолчанию), edt, xml
--edt-pathVRUNNER_EDT_PATHПуть к 1cedtcli (исполняемый файл или каталог установки EDT). Если задан, поиск не выполняется
--edt-versionVRUNNER_EDT_VERSIONВерсия установленной EDT (например 2024.1) для выбора среди нескольких. Не связана с --v8version
--edt-workspaceVRUNNER_EDT_WORKSPACEБазовый каталог рабочей области EDT (по умолчанию - временный)
--edt-timeoutVRUNNER_EDT_TIMEOUTТаймаут операций 1cedtcli в секундах. По умолчанию 1cedtcli использует свой (60 минут)
--edt-vmargsVRUNNER_EDT_VMARGSJVM-аргумент для 1cedtcli, можно указать несколько раз. Значение с ведущим дефисом - через =: --edt-vmargs=-Xmx8g

Определение формата

При --src-format auto формат определяется по маркерам каталога:

  1. EDT - есть .project и исходники src/*.mdo (или служебный каталог DT-INF);
  2. XML - есть Configuration.xml или ConfigDumpInfo.xml;
  3. ровно один вложенный EDT-проект - используется он; несколько - ошибка;
  4. иначе каталог считается XML.

Для выгрузки (decompile) формат auto определяется по существующему целевому каталогу; несуществующий или пустой каталог - XML. --src-format edt|xml отключает автоопределение.

Поиск 1cedtcli

  1. --edt-path (VRUNNER_EDT_PATH) - используется как есть;
  2. при заданной --edt-version - установленная EDT этой версии (библиотека edtfind); если не найдена - предупреждение и переход к следующему шагу;
  3. 1cedtcli в PATH;
  4. старшая установленная EDT - только если версия не задана.

Если ничего не найдено, команда завершается ошибкой.

Инкрементальная загрузка из EDT

1cedtcli умеет только полный экспорт, поэтому при cf load --increment и cfe load --increment для EDT-исходников изменения определяются по самому каталогу EDT-проекта: экспорт в XML выполняется полностью, а в базу выборочно грузятся только объекты, чьи файлы под src/ изменились. Полная загрузка выполняется при первом запуске (индекса ещё нет), при добавлении или удалении файлов под src/ и при изменении корня конфигурации или расширения (src/Configuration). Если изменений нет, загрузка пропускается.

Примеры

bash
# Сборка cf из EDT-проекта (формат определится автоматически)
vrunner cf compile -s ./edt-project ./build/App.cf

# Форсировать формат и выбрать версию EDT
vrunner cf compile -s ./edt-project --src-format edt --edt-version 2024.1 ./build/App.cf

# Разобрать cf в EDT-проект
vrunner cf decompile --cf-file ./build/App.cf --src-format edt ./edt-out

# Инкрементальная загрузка из EDT-проекта
vrunner cf load --ibconnection /F./ib --increment ./edt-project

# Большая конфигурация: таймаут 90 минут и больше памяти для JVM
vrunner cf convert -s ./edt-erp --edt-timeout 5400 --edt-vmargs=-Xmx8g ./build/xml