Исходники в формате 1С:EDT
Команды, работающие с каталогом исходников, понимают два формата:
- XML-дамп Конфигуратора - классическая выгрузка (
Configuration.xmlв корне); - 1С:EDT - проект 1С:EDT (
.project, каталогsrc/с файлами*.mdo).
Платформа 1С не умеет читать формат EDT напрямую, поэтому vanessa-runner конвертирует EDT ⇄ XML утилитой 1cedtcli (поставляется с 1С:EDT), а затем подаёт XML в обычный конвейер. Конвертация прозрачна: каталог EDT определяется автоматически, временный XML создаётся и удаляется самостоятельно.
Поддержка по командам
| Команда | Ввод EDT | Вывод EDT |
|---|---|---|
cf compile, cf load, infobase init | ✅ | - |
cf decompile | - | ✅ |
cfe compile, cfe load | ✅ | - |
cfe decompile | - | ✅ |
epf compile, epf decompile | ❌ | ❌ |
Внешние обработки (
epf) не являются EDT-проектом, поэтому формат EDT для них не поддерживается - при обнаружении EDT (или--src-format edt) команда завершится ошибкой.
Опции
| Опция | Переменная окружения | Описание |
|---|---|---|
--src-format | - | Формат каталога: auto (по умолчанию), edt, xml |
--edt-version | VRUNNER_EDT_VERSION | Версия установленной EDT (например 2024.1) для выбора среди нескольких. Из неё определяется путь к 1cedtcli |
--edt-workspace | VRUNNER_EDT_WORKSPACE | Базовый каталог рабочей области EDT (по умолчанию - временный) |
--edt-timeout | VRUNNER_EDT_TIMEOUT | Таймаут операций 1cedtcli (export/import/validate) в секундах. По умолчанию 1cedtcli использует свой (60 с) - на больших конфигурациях его может не хватать |
Таймаут на больших конфигурациях. Конвертация и проверка через
1cedtcliпо умолчанию ограничены таймаутом в 60 секунд. Для тяжёлых конфигураций (1С:ERP и т. п.) экспорт/импорт не успевает завершиться - увеличьте таймаут опцией--edt-timeout(например--edt-timeout 5400) или переменной окруженияVRUNNER_EDT_TIMEOUT.
Определение формата
При --src-format auto (по умолчанию) формат определяется по маркерам на диске:
- EDT - если в каталоге есть
.projectи исходники*.mdo(или служебный каталогDT-INF); - XML - если есть
Configuration.xml/ConfigDumpInfo.xml; - если в каталоге лежит ровно один вложенный EDT-проект - используется он;
- иначе каталог считается XML.
--src-format edt|xml отключает автоопределение и форсирует формат.
Поиск 1cedtcli
Путь к 1cedtcli определяется в порядке приоритета:
- поиск установленной EDT по версии
--edt-version(через библиотекуedtfind; без версии - берётся максимальная); - поиск в
PATH.
--edt-version- это версия 1С:EDT (например2024.1), она не связана с версией платформы 1С (--v8version, например8.3.24).
Инкрементальная загрузка из EDT
1cedtcli умеет только полный экспорт EDT → XML (нет частичной/инкрементальной выгрузки), а платформа не читает EDT напрямую. Поэтому при cf load --increment для EDT-исходников vanessa-runner:
- индексирует изменения по каталогу EDT-исходников (
.mdo/.bsl/.form- стабильные файлы), а не по временному XML-дампу, который пересоздаётся при каждом экспорте; - по диффу определяет изменённые объекты конфигурации (
<Вид>/<Имя>, напримерCatalogs/Справочник1); - выполняет полный экспорт EDT → XML, после чего грузит в базу только XML-файлы изменённых объектов.
Когда выполняется полная загрузка (а не выборочная):
- при первом запуске (индекс ещё не построен);
- при добавлении или удалении объектов/файлов под
src/; - при изменении корня конфигурации (
src/Configuration- состав метаданных, языки, общие настройки).
Если изменений в EDT-исходниках нет - загрузка пропускается целиком.
Выборочная загрузка применяется при модификации существующих объектов (правка модулей, форм, свойств) - это основной сценарий итеративной разработки.
vrunner cf load ./edt-project --ibconnection /F./ib --increment --src-format edtПримеры
# Сборка cf из EDT-проекта (формат определится автоматически)
vrunner cf compile ./build/App.cf --s ./edt-project
# Форсировать формат EDT и выбрать конкретную версию EDT
vrunner cf compile ./build/App.cf --s ./edt-project \
--src-format edt \
--edt-version 2024.1
# Разобрать cf в EDT-проект (вывод в формате EDT)
vrunner cf decompile ./edt-out --cf-file ./build/App.cf --src-format edt
# Инициализация ИБ из EDT-проекта
vrunner infobase init --source ./edt-project --edt-version 2024.1
# Расширение из EDT-проекта
vrunner cfe compile ./build/Ext.cfe --s ./edt-ext --extension-name MyExt