Простой и удобный интерфейс для сборки и проверки исходников 1С-решений человеком и AI-агентом.
v8-runner — это CLI-приложение на Rust и MCP-сервер для рутинных операций в разработке на 1С: загрузки исходников в информационную базу, запуска YaXUnit- и Vanessa Automation-тестов, выгрузки конфигурации обратно в файлы, сборки и загрузки релизных артефактов, синтаксических проверок и запуска инструментов 1С.
Инструмент закрывает сразу два типа сценариев:
- локальный цикл разработки из терминала;
- автоматизацию через ассистента по MCP.
- Главная цель — дать человеку и AI-агенту простой, предсказуемый интерфейс для локального цикла
build -> syntax/test -> diagnose. - Один инструмент для
config init,init,extensions,build,load,test,dump,make/artifacts,syntax,launchи доступа по MCP. - Инкрементальные сценарии вместо полной пересборки на каждое изменение.
- Удобная работа и с основной конфигурацией, и с расширениями.
- Структурированные результаты, понятные и человеку, и MCP-клиенту.
- Более узкая и удобная для автоматизации поверхность, чем прямой вызов утилит 1С.
build: загружать изменённые исходники в ИБ, выбирая частичное или полное выполнение в зависимости от формата исходников и бэкенда.config init: создаватьv8project.yamlв текущем каталоге и добавлять найденные исходники вsource-set.init: первично создавать файловую ИБ или пропускать создание для заранее созданной серверной ИБ; для EDT-проектов инициализировать workspace импортом всех настроенныхsource-set.extensions: обновлять свойства расширений в информационной базе по настроеннымsource-set.test yaxunit: сначала выполнятьbuild, затем запускать все YaXUnit-тесты или один модуль.test va: сначала выполнятьbuild, затем запускать Vanessa Automation по выбранному профилю.load: загружать готовые.cfи.cfeартефакты в ИБ через Designer в режимахloadиmerge.dump: выгружать состояние конфигурации или расширения обратно в файлы в режимахfull,incrementalиpartial.make/artifacts: экспортировать релизные.cfи.cfe, а также публиковать внешние обработки.epfи отчёты.erf.syntax: запускать проверки через Designer для Designer-исходников и1cedtcli validateдля EDT-проектов.launch: открывать Designer, тонкий клиент, толстый клиент или обычное приложение с типизированными и raw-параметрами запуска.mcp serve: отдавать те же сценарии MCP-клиентам по stdio или по протоколуstreamable HTTP.
Соберите бинарь:
cargo build --releaseСоздайте v8project.yaml автоматически:
./target/release/v8-runner config initКоманда сканирует текущий каталог, ищет Designer-исходники по Configuration.xml, EDT-проекты по .project, добавляет найденные источники в source-set и не перезаписывает существующий файл без --force.
Или создайте минимальный v8project.yaml вручную:
basePath: /path/to/project/sources
workPath: build
format: DESIGNER
builder: DESIGNER
connection: "File=build/ib"
source-set:
- name: main
type: CONFIGURATION
path: .
# - name: ext
# type: EXTENSION
# path: ext
# - name: tools
# type: EXTERNAL_DATA_PROCESSORS
# path: tools
tests:
yaxunit:
timeouts:
total_ms: 300000
va:
epf_path: /path/to/vanessa.epf
params_path: /path/to/va-params.json
profile: smoke
fail_fast: true
timeouts:
total_ms: 300000
profiles:
smoke:
feature_path: /path/to/featuresЗапустите первые команды:
./target/release/v8-runner config init
./target/release/v8-runner init
./target/release/v8-runner build
./target/release/v8-runner test yaxunit all
./target/release/v8-runner test va
./target/release/v8-runner make --output dist/main.cf
./target/release/v8-runner load --path dist/main.cf
./target/release/v8-runner mcp serve stdioЕсли конфиг валиден, но локальные утилиты 1С не установлены, вы должны получить ошибку поиска платформенной утилиты или ошибку времени выполнения, а не ошибку парсинга YAML или CLI. Это тоже полезная первая проверка: она означает, что связка настроена корректно, а не хватает только локального 1С-окружения.
| Сценарий | Текущая поддержка |
|---|---|
config init |
Создание v8project.yaml в текущем каталоге; автопоиск Designer/EDT source-set; --force для перезаписи |
init |
format=DESIGNER или format=EDT с builder=DESIGNER или IBCMD; для IBCMD только файловая ИБ |
extensions |
Обновление свойств расширений для EDT и Designer-проектов по настроенным extension source-set; только файловая ИБ |
build |
format=DESIGNER или format=EDT с builder=DESIGNER или IBCMD; EDT сначала экспортируется в Designer-файлы |
load |
.cf и .cfe артефакты; только format=DESIGNER с builder=DESIGNER; --mode load и --mode merge |
test yaxunit |
Следует матрице build и всегда сначала запускает build |
test va |
tests.va с выбранным профилем, epf_path и params_path; всегда сначала запускает build |
dump |
format=DESIGNER с builder=DESIGNER или IBCMD |
make / artifacts |
Экспорт .cf и .cfe через Designer; публикация .epf/.erf для внешних source-set; требуется builder=DESIGNER |
syntax |
Проверки через Designer для DESIGNER-исходников и валидация EDT для EDT |
launch |
Designer, тонкий клиент, толстый клиент, обычное приложение; поддерживает --c, --execute, --use-privileged-mode, --out, --raw-key |
| MCP | stdio и HTTP-транспорты с 8 опубликованными инструментами |
v8-runner load --path dist/main.cf
v8-runner load --path dist/sales.cfe --extension SalesAddon
v8-runner load --path dist/sales.cfe --mode merge --settings merge.xml --extension SalesAddonload работает через Designer и сейчас поддерживает только .cf и .cfe. Для .cfe обязательно указывается имя расширения, а режим merge требует файл настроек слияния. После загрузки команда выполняет обновление конфигурации базы данных.
v8-runner make --output dist/main.cf
v8-runner make --output dist/sales.cfe --source-set ext-sales --extension SalesAddon
v8-runner artifacts --output dist/tools --source-set toolsmake и видимый alias artifacts используют одну команду. Тип экспорта выводится из --output и выбранного source-set: .cf для основной конфигурации, .cfe для расширений, каталог публикации для внешних обработок и отчётов. Для внешних артефактов source-set должен иметь type=EXTERNAL_DATA_PROCESSORS или type=EXTERNAL_REPORTS.
v8-runner launch designer
v8-runner launch ordinary --execute tool.epf --c DoWork --use-privileged-mode
v8-runner launch thin --raw-key /WA- --raw-key /DisplayAllFunctionslaunch также принимает старый вариант --mode <designer|thin|thick|ordinary>. launch и test используют общий набор дополнительных параметров запуска: --c, --execute, --use-privileged-mode, --out и повторяемый --raw-key. Для команды test значения --c и --execute зарезервированы под внутренний runner payload и будут отклонены.
Текущий MCP-сервер публикует следующие инструменты:
run_all_testsrun_module_testsbuild_projectdump_configlaunch_appcheck_syntax_edtcheck_syntax_designer_configcheck_syntax_designer_modules
На стороне MCP запросы используют поля в camelCase, а CLI сохраняет обычный интерфейс с флагами.
- docs/CAPABILITIES.md: основной пользовательский справочник по командам, MCP-инструментам, матрицам поддержки и ограничениям.
- docs/CONFIGURATION.md: полный справочник по
v8project.yamlи всем поддержанным ключам конфигурации. - docs/DEEP_DIVE.md: объяснение внутренних эксплуатационных потоков без дублирования полного справочника команд.
- examples/v8project.yaml: полный пример конфига с опциональными секциями и значениями по умолчанию.
- ARCHITECTURE.md: карта модулей и внутренних границ для контрибьюторов.
- docs/decisions/0001-granitsy-podderzhki-ibcmd-kak-ogranichennogo-backend.md: текущая граница поддержки
IBCMDи целевой принцип взаимозаменяемости builder backend. - docs/decisions/0003-podderzhivat-servernye-ib-dlya-vseh-instrumentov.md: целевой контракт поддержки серверных ИБ для всех инструментов.
- docs/decisions/0004-avtoobnaruzhivat-komponenty-platformy-1s-po-versii-maske.md: автопоиск компонентов платформы 1С по точной версии или версии-маске.
Текущие ограничения и оговорки
IBCMDтребует файловое подключение к информационной базе.IBCMDподдерживается как ограниченный backend для сценариевinit,build,dump,extensions.- Builder-сценарии должны развиваться как взаимозаменяемые между
DESIGNER,IBCMDи будущим Designer agent mode; временные отличия фиксируются как явные gaps. - Все инструменты должны развиваться с поддержкой серверных ИБ; текущие ограничения на файловую ИБ считаются gaps, а не целевой архитектурной нормой.
loadне поддерживаетIBCMD, EDT-формат,.epfи.erf.load --mode updateзарезервирован CLI-интерфейсом, но текущая реализация его отклоняет; используйтеloadилиmerge.- MCP-поверхность намеренно уже CLI:
init,extensions,loadиmake/artifactsне опубликованы как MCP-инструменты. initсчитает файловую ИБ существующей только по наличию файла1Cv8.1CDв каталоге базы и не валидирует содержимое глубже.- Для серверной строки подключения
initпропускает создание ИБ; серверная база должна быть создана вручную заранее. EDT workspace при этом всё равно должен инициализироваться дляformat=EDT. initдля EDT считает workspace завершённым только после успешного полного импорта; незавершённый каталог без внутреннего marker-файла будет импортирован повторно.- Точечная частичная выгрузка по объектам нативно не реализована для
IBCMD; запросpartialдеградирует в инкрементальную выгрузку с предупреждением. - При деградации
partialдляIBCMDзапрошенный режимPARTIALсохраняется в результирующем payload. syntax designer-modulesтребует как минимум один флаг режима.- Интерактивный EDT теперь включается явно через
tools.edt_cli.interactive-mode; без него EDT работает в one-shot режиме. - Внутренние документы в
spec/*по-прежнему полезны как источник фактов, но публичный справочник теперь живёт вREADME.md,docs/CAPABILITIES.mdиdocs/DEEP_DIVE.md.