Skip to content

Интеграция с ИИ-ассистентами (MCP)

vanessa-runner умеет работать как MCP-сервер (Model Context Protocol) и выставлять свои команды как инструменты для ИИ-ассистентов: Claude Code, Cursor, VS Code, Windsurf, Claude Desktop и других. Ассистент видит команды с описанием и параметрами и вызывает vrunner сам - собирает конфигурации, запускает тесты, обслуживает информационные базы.

Сервер - отдельная программа vrunner-mcp, работает по stdio. Запускает её и общается с ней сам клиент: достаточно прописать сервер в его конфигурации.

Требования

  • установленный vanessa-runner (opm install vanessa-runner) - вместе с ним ставится vrunner-mcp, он должен быть доступен в PATH;
  • установленная платформа 1С:Предприятие, как и для обычной работы vrunner.

Подключение в IDE

Во всех клиентах принцип один: добавить MCP-сервер с командой запуска vrunner-mcp. Отличается только файл и формат конфигурации. Рабочий каталог сервера - корень проекта: из него читается autumn-properties.json и относительно него разрешаются пути.

json
{
  "mcpServers": {
    "vrunner": {
      "command": "vrunner-mcp"
    }
  }
}
json
{
  "mcpServers": {
    "vrunner": {
      "command": "vrunner-mcp"
    }
  }
}
json
{
  "servers": {
    "vrunner": {
      "type": "stdio",
      "command": "vrunner-mcp"
    }
  }
}
json
{
  "mcpServers": {
    "vrunner": {
      "command": "vrunner-mcp"
    }
  }
}
json
{
  "mcpServers": {
    "vrunner": {
      "command": "vrunner-mcp"
    }
  }
}
  • Claude Code - файл .mcp.json в корне проекта (общий для команды) либо claude mcp add vrunner -- vrunner-mcp.
  • Cursor - .cursor/mcp.json в проекте или ~/.cursor/mcp.json глобально.
  • VS Code - .vscode/mcp.json в проекте (ключ servers и поле type, в отличие от остальных клиентов).
  • Windsurf - раздел «MCP Servers» в настройках Cascade или ~/.codeium/windsurf/mcp_config.json.
  • Claude Desktop - claude_desktop_config.json (Settings → Developer).

Запуск из исходников

Если vanessa-runner используется из репозитория, укажите oscript и точку входа src/mcp.os; рабочим каталогом должен быть корень проекта:

json
{
  "mcpServers": {
    "vrunner": {
      "command": "oscript",
      "args": ["src/mcp.os"]
    }
  }
}

Инструменты

После перезапуска клиента в списке инструментов появляются команды vrunner. Имя инструмента - группа и подкоманда через _, дефисы заменены на _: cf_compile, cf_make_dist, infobase_init, test_yaxunit, validate_syntax_check. У подкоманд третьего уровня в имя входят только два последних звена: extensions_list, scheduled_job_disable, session_kill, jobs_lock. Параметры инструмента - опции и аргументы команды под теми же именами, поведение совпадает с запуском в терминале.

Не выставляются интерактивные команды run enterprise и run designer.

Кроме команд, сервер даёт служебные инструменты:

ИнструментНазначение
task_status, task_result, task_cancelсостояние, лог и результат фоновой задачи по taskId, её отмена
cache_show, cache_clearпросмотр и сброс сессионного кэша опций (cache_clear принимает option - имя одной опции)

Попросите ассистента, например: «собери конфигурацию из src в build/1cv8.cf» - он подберёт cf_compile и подставит параметры.

Общие параметры запоминаются

Переданные в вызове опции (строка подключения, версия платформы, параметры СУБД и т.п.) запоминаются на сессию по имени и подставляются во все последующие команды, где есть такая же опция, пока не заданы заново. Позиционные аргументы не запоминаются. Параметр nocache: true у вызова отключает кэш для этого вызова - для независимых или параллельных запусков.

Длительные команды

Долгие команды - сборка и загрузка конфигураций, инициализация и обновление ИБ, тесты, проверки, операции с хранилищем - выполняются в фоне: инструмент сразу возвращает taskId, а ход и результат ассистент забирает через task_status / task_result (лог доступен и пока задача идёт) и может отменить через task_cancel. Параметр background: false выполняет такую команду синхронно с потоковым логом. Остальные команды выполняются синхронно, лог передаётся клиенту по мере выполнения.

Отладка вызова

У каждого инструмента есть параметр debug. При debug: true команда выполняется синхронно с уровнем логирования «Отладка», и собранный лог возвращается в ответе - удобно, когда обычного результата недостаточно для диагностики.

Безопасность

Сервер только выставляет команды и не даёт новых прав: поведение совпадает с ручным запуском vrunner от того же пользователя. Разрушающие операции (загрузка в ИБ, операции с хранилищем и кластером) тоже доступны ассистенту; в описании инструментов они помечены подсказками протокола (destructiveHint, readOnlyHint), по которым клиент решает, спрашивать ли подтверждение. Большинство клиентов по умолчанию запрашивают подтверждение перед каждым вызовом, пока инструмент не внесён в список разрешённых.

Обновление vanessa-runner при запущенном MCP-сервере на Windows завершается ошибкой - см. Установка.


Общие опции

Наборы опций, которые повторяются у многих команд, описаны здесь один раз. На странице команды под таблицей её собственных опций перечислены наборы, которые у неё есть, со ссылками на разделы этой страницы.

Подключение к информационной базе

ОпцияПеременная окруженияОписание
--ibconnectionVRUNNER_IBCONNECTIONСтрока подключения: /F<путь> - файловая ИБ, /S<сервер>\<база> - серверная
--db-userVRUNNER_DBUSERПользователь информационной базы (не ОС и не СУБД)
--db-pwdVRUNNER_DBPWDПароль пользователя ИБ

Примеры: --ibconnection /F./ib, --ibconnection /FD:/bases/MyProject, --ibconnection "/SMyServer\MyInfobase". Если база не требует аутентификации, --db-user и --db-pwd можно не указывать.

Когда база необязательна

КомандыПоведение без --ibconnection
cf compile, cf decompile, cfe compile, cfe decompile, epf compile, epf decompile; cf compare, cfe compare при сравнении двух файловСоздаётся временная файловая ИБ, после операции удаляется
infobase initСоздаётся файловая ИБ build/ib (не удаляется)
infobase update, infobase create-user, infobase lock-resources, infobase extensions *, infobase scheduled-job *, cfe load, cfe unloadИспользуется файловая ИБ build/ib - та, которую создаёт infobase init
Остальные командыБаза обязательна: укажите --ibconnection

Конфигуратор или ibcmd

ОпцияПеременная окруженияОписание
--ibcmd-Использовать утилиту ibcmd вместо Конфигуратора

По умолчанию операции с конфигурацией выполняет Конфигуратор (1cv8 DESIGNER). ibcmd работает с базой напрямую, без запуска клиента и кластера серверов. Опция есть только у команд, которые умеют работать обоими способами.

Конфигураторibcmd
Кластер серверов для серверной ИБНуженНе нужен
Опции СУБД для серверной ИБНе нужныНужны
--rtype, --dynamicПоддерживаютсяИгнорируются

Опции СУБД

ОпцияПеременная окруженияОписание
--dbms-typeVRUNNER_DBMS_TYPEТип СУБД: MSSQLServer, PostgreSQL, IBMDB2, OracleDatabase
--dbms-serverVRUNNER_DBMS_SERVERАдрес сервера СУБД
--dbms-baseVRUNNER_DBMS_BASEИмя базы данных СУБД
--dbms-userVRUNNER_DBMS_USERПользователь СУБД
--dbms-pwdVRUNNER_DBMS_PWDПароль СУБД

Нужны в одном случае: --ibcmd + серверная ИБ - ibcmd подключается к СУБД напрямую, минуя сервер 1С. Опции применяются только при заданном --dbms-type. Для файловых баз и при работе через Конфигуратор не нужны.

Платформа

ОпцияПеременная окруженияОписание
--v8versionVRUNNER_V8VERSIONВерсия платформы 1С (по умолчанию - старшая установленная)
--uccodeVRUNNER_UCCODEКод разрешения для входа в заблокированную базу (/UC)
--languageVRUNNER_LANGUAGEЯзык интерфейса платформы (/L)
--localeVRUNNER_LOCALEЯзык сеанса, локаль (/VL)

Обновление конфигурации БД

Есть у команд, которые после загрузки обновляют конфигурацию базы данных: cf load, cfe load, cf vendor-update, infobase update. Действуют только при работе через Конфигуратор; ibcmd выполняет config apply без этих ключей.

ОпцияПеременная окруженияОписание
--rtype-Режим реструктуризации: v1 (обычный) или v2 (оптимизированный)
--dynamic-Разрешить динамическое обновление (-Dynamic+); без флага - -Dynamic-

Формат исходников

ОпцияПеременная окруженияОписание
--src-format-Формат каталога исходников: auto (по умолчанию), edt, xml

При auto формат определяется по маркерам каталога: для ввода - что лежит в каталоге, для вывода - формат существующего целевого каталога (несуществующий или пустой - XML). Вместе с набором подключаются опции --edt-*. Подробнее: Исходники в формате 1С:EDT.

Запуск клиента

Есть у run enterprise и test *.

ОпцияПеременная окруженияОписание
--ordinaryappVRUNNER_ORDINARYAPPЗапускать толстый клиент (/RunModeOrdinaryApplication); без ключа - тонкий
--additionalVRUNNER_ADDITIONALДополнительные параметры командной строки 1С:Предприятия
--ibsrvVRUNNER_IBSRVЗапустить клиент через автономный сервер ibsrv (только файловые ИБ; с --no-wait игнорируется)
--ibsrv-directVRUNNER_IBSRV_DIRECTПодключаться к ibsrv прямым соединением (/S) вместо веб-сервиса (/WS)
--ibsrv-debugVRUNNER_IBSRV_DEBUGВключить порт отладки на запущенном ibsrv
--ibsrv-attachVRUNNER_IBSRV_ATTACHНе запускать свой ibsrv, а подключиться к уже работающему на localhost:<--ibsrv-port>; по завершении сервер не останавливается
--ibsrv-portVRUNNER_IBSRV_PORTПорт ibsrv: при --ibsrv-attach - порт подключения (обязателен), иначе - порт запуска (занят - ошибка). Без опции порт подбирается автоматически

Кластер серверов

Есть у команд cluster *, которые адресуют базу не строкой подключения, а именем в кластере.

ОпцияПеременная окруженияОписание
--rasVRUNNER_RASАдрес сервера администрирования RAS (по умолчанию localhost:1545)
--racVRUNNER_RACПуть к утилите rac
--db-nameVRUNNER_IBNAMEИмя информационной базы в кластере
--cluster-Идентификатор кластера
--cluster-name-Имя кластера
--cluster-adminVRUNNER_CLUSTERADMIN_USERАдминистратор кластера
--cluster-pwdVRUNNER_CLUSTERADMIN_PWDПароль администратора кластера
--db-userVRUNNER_DBUSERПользователь информационной базы
--db-pwdVRUNNER_DBPWDПароль пользователя ИБ

Если ни --cluster, ни --cluster-name не заданы, берётся первый кластер сервера.

Хранилище конфигурации

ОпцияПеременная окруженияОписание
--storage-nameVRUNNER_STORAGE_NAMEАдрес хранилища: каталог или tcp://сервер/имя
--storage-userVRUNNER_STORAGE_USERПользователь хранилища
--storage-pwdVRUNNER_STORAGE_PWDПароль пользователя хранилища
--storage-verVRUNNER_STORAGE_VERНомер версии хранилища

Файл настроек

ОпцияПеременная окруженияОписание
--settingsVRUNNER_SETTINGSПуть к дополнительному файлу настроек (JSON), накладывается поверх autumn-properties.json

Подробнее: Файл настроек.

Примеры

bash
# Файловая ИБ через Конфигуратор
vrunner cf load --ibconnection /F./ib --db-user Admin --db-pwd secret ./src

# Серверная ИБ через ibcmd: нужны опции СУБД
vrunner cf load \
  --ibcmd \
  --ibconnection "/SMyServer\MyIB" \
  --dbms-type PostgreSQL \
  --dbms-server db.example.com \
  --dbms-base my_db \
  --dbms-user postgres \
  --dbms-pwd db_password \
  ./src

# Без базы: сборка cf во временной ИБ
vrunner cf compile --ibcmd -s ./src ./build/App.cf

# Тесты толстым клиентом через ibsrv
vrunner test xunit --ibconnection /F./ib --ordinaryapp --ibsrv ./tests

Исходники в формате 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

Отчёты о результатах

Команды, которые проверяют или прогоняют тесты (validate syntax-check, validate edt, test xunit, test yaxunit, test vanessa), выгружают результат одной парой опций:

ОпцияПеременная окруженияОписание
--report-format-Формат отчёта; можно указать несколько раз. Список форматов зависит от команды
--report-pathVRUNNER_REPORT_PATHКуда выгрузить отчёт: файл - если формат один, каталог - если форматов несколько

Если не задана ни одна из них, отчёт не формируется (кроме test yaxunit, где отчёт всегда пишется во временный файл ради сводки в консоли). Если задан только --report-path, подставляется формат по умолчанию - у всех команд junit.

Как разрешается путь

Один формат - --report-path берётся как есть: для junit это файл, для allure - каталог.

bash
vrunner validate syntax-check --report-format junit --report-path ./build/syntax.xml

Несколько форматов - --report-path становится каталогом, имена внутри него берутся по соглашению (см. таблицу ниже):

bash
vrunner validate syntax-check \
  --report-format junit \
  --report-format allure \
  --report-path ./build/reports
# → ./build/reports/junit.xml
# → ./build/reports/allure/

Недостающие каталоги создаются до начала проверки.

Форматы по командам

КомандаФорматыНесколько за прогонИмя внутри каталога
validate syntax-checkjunit, allureдаjunit.xml, allure/
validate edtjunit, allure, edtдаjunit.xml, allure/, edt-validate.tsv
test xunitjunit, allure, json, mxl, genericexecution или имя генератора Vanessa-ADDдаjunit.xml, allure/, report.json, report.mxl, generic.xml; для генератора - его имя
test yaxunitjunit, json, allureнет, ровно один-
test vanessajunit, allure, cucumberjsonдаjunit/, allure/, cucumber/

Регистр значений не важен (junit, jUnit, JUNIT). Исключение - имена генераторов Vanessa-ADD в test xunit: они регистрозависимы и передаются как написаны.

Особенности команд

  • validate edt: формат edt - сырой файл результатов 1cedtcli validate (текст, по замечанию на строку, поля через табуляцию); его понимает, например, edt-ripper. Форматы junit и allure формирует сам vrunner.
  • test yaxunit: отчёт пишет YAxUnit, у него один формат за прогон - два --report-format дают ошибку.
  • test xunit: кроме перечисленных алиасов принимается полное имя генератора Vanessa-ADD, в том числе генератора-плагина (ГенераторОтчетаJUnitXML, GenerateReportJUnitXML). Разные пути для каждого генератора задаёт только устаревшая --reportsxunit.
  • test vanessa: у bddRunner.epf нет ключей запуска для отчётов, поэтому vrunner накладывает каталоги отчётов на файл из --vanessasettings и передаёт в 1С временную копию; опции командной строки перекрывают одноимённые настройки. Путь у test vanessa всегда каталог.
  • Allure: каталог результатов не очищается - Allure собирает отчёт из нескольких прогонов. Нужен чистый каталог - чистите средствами сборки (у test xunit есть флаг --clear-reports).

Устаревшие опции

Продолжают работать; для большинства в лог выводится предупреждение с заменой.

Устаревшая опцияКомандаЗамена
--junitpath <файл>validate syntax-check, validate edt--report-format junit --report-path <файл>
--allure-results <каталог>validate syntax-check, validate edt--report-format allure --report-path <каталог>
--reportsxunit "junit{путь}"test xunit--report-format junit --report-path <путь>
--reportxunit <каталог>test xunit--report-format junit --report-path <каталог>
--report <путь>test yaxunit--report-path <путь>
--report <файл>validate edt--report-format edt --report-path <файл>

Старые и новые опции складываются; при совпадении формата побеждает --report-format/--report-path.

Сбор покрытия тестами настраивается отдельно: Сбор покрытия тестами.


cf - Операции с конфигурацией

Сборка конфигурации из исходников и разборка в исходники, загрузка в базу и выгрузка, объединение, обновление на поддержке, сравнение, файл поставки, конвертация между форматами XML и 1С:EDT.

bash
vrunner cf <подкоманда> [опции] [аргументы]

Каталог исходников везде может быть как XML-дампом Конфигуратора, так и проектом 1С:EDT - формат определяется автоматически, см. Исходники в формате 1С:EDT. Общие опции описаны на странице Общие опции.

compile

Собирает конфигурацию из исходников в файл .cf. Без --ibconnection используется временная ИБ.

bash
vrunner cf compile [опции] <OUT>
АргументПеременная окруженияОписание
OUTVRUNNER_CF_OUTПуть к создаваемому файлу .cf (обязателен; в файле настроек - ключ out)
ОпцияПеременная окруженияОписание
-s, --srcVRUNNER_SRCКаталог исходников (по умолчанию - текущий)
--list-Файл со списком файлов для выборочной загрузки (по одному пути на строку)

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, формат исходников, --settings.

bash
# Сборка через ibcmd во временной базе
vrunner cf compile --ibcmd -s ./src ./build/MyApp.cf

# Сборка через Конфигуратор в указанной базе
vrunner cf compile -s ./src --ibconnection /FD:/bases/MyProject --v8version 8.3.24 ./build/MyApp.cf

decompile

Разбирает конфигурацию в исходники: из файла .cf (он загружается во временную или указанную ИБ) либо напрямую из базы, если --cf-file не задан. Без --cf-file и без --ibconnection команда завершается ошибкой.

bash
vrunner cf decompile [опции] <OUT>
АргументПеременная окруженияОписание
OUT-Каталог для выгрузки исходников (обязателен; в файле настроек - ключ out)
ОпцияПеременная окруженияОписание
--cf-fileVRUNNER_CF_FILEПуть к файлу .cf. Если не задан - исходники выгружаются из базы --ibconnection

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, формат исходников, --settings.

bash
# Разобрать cf в XML-исходники
vrunner cf decompile --ibcmd --cf-file ./build/MyApp.cf ./src

# Выгрузить исходники из существующей базы в формате EDT
vrunner cf decompile --ibconnection /FD:/bases/work --src-format edt ./edt-project

load

Загружает конфигурацию в базу из каталога исходников или файла .cf (источник с расширением .cf считается файлом, иначе - каталогом). После загрузки конфигурация БД обновляется (UpdateDBCfg / config apply); флаг --no-update-db отключает обновление.

bash
vrunner cf load [опции] [SRC]
АргументПеременная окруженияОписание
SRC-Каталог исходников или файл .cf (по умолчанию - текущий каталог; в файле настроек - ключ src)
ОпцияПеременная окруженияОписание
--list-Файл со списком файлов для выборочной загрузки (только для каталога исходников)
--increment-Инкрементальная загрузка: грузятся только файлы, изменённые с прошлого запуска (только для каталога исходников)
--no-update-db-Не обновлять конфигурацию БД после загрузки

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, обновление БД, формат исходников, --settings.

--increment ведёт индекс изменений каталога исходников (по умолчанию в <temp>/vanessa-runner/cache, настройка increment.cache-dir). Первый запуск, удаление файлов и изменения, требующие полной загрузки, выполняются полной загрузкой; если изменений нет, загрузка пропускается. Особенности для EDT-исходников: Инкрементальная загрузка из EDT.

bash
# Загрузить исходники и обновить конфигурацию БД
vrunner cf load --ibconnection /F./ib ./src

# Загрузить cf-файл без обновления конфигурации БД
vrunner cf load --ibconnection /F./ib --no-update-db ./build/MyApp.cf

# Инкрементальная загрузка через ibcmd
vrunner cf load --ibcmd --ibconnection /F./ib --increment ./src

unload

Выгружает конфигурацию базы в файл .cf.

bash
vrunner cf unload [опции] <OUT>
АргументПеременная окруженияОписание
OUT-Путь к создаваемому файлу .cf (обязателен; в файле настроек - ключ out)

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, --settings.

bash
vrunner cf unload --ibconnection /F./ib ./backup/MyApp.cf

make-dist

Создаёт полный файл поставки из конфигурации базы (/CreateDistributionFiles). Только Конфигуратор; --ibconnection обязательна.

bash
vrunner cf make-dist [опции] <OUT>
АргументПеременная окруженияОписание
OUT-Путь к файлу поставки .cf (обязателен; в файле настроек - ключ out)

Общие опции: подключение к ИБ, платформа, СУБД, --settings.

bash
vrunner cf make-dist --ibconnection /F./ib ./build/1Cv8-dist.cf

merge

Объединяет конфигурацию базы с файлом .cf по файлу настроек объединения (/MergeCfg). Только Конфигуратор; --ibconnection обязательна.

bash
vrunner cf merge [опции]
ОпцияПеременная окруженияОписание
-s, --src-Файл .cf для объединения (обязательна)
--merge-settings-Файл настроек объединения (обязательна)
--enable-support-Поставить конфигурацию на поддержку
--disable-support-Снять конфигурацию с поддержки
--IncludeObjectsByUnresolvedRefs-Включить в объединение объекты с неразрешёнными ссылками
--ClearUnresolvedRefs-Очищать неразрешённые ссылки
--force-Объединять при наличии предупреждений

Общие опции: подключение к ИБ, платформа, СУБД, --settings.

bash
# Первичная постановка на поддержку дистрибутивом поставщика
vrunner cf merge -s ./vendor/BSP.cf --merge-settings ./merge-settings.xml --enable-support --ibconnection /F./ib

vendor-update

Обновляет конфигурацию, находящуюся на поддержке, файлом обновления .cfu или полным дистрибутивом .cf поставщика (/UpdateCfg) с сохранением доработок по правилам поддержки. После обновления конфигурация БД обновляется (UpdateDBCfg); флаг --no-update-db отключает обновление. Только Конфигуратор; --ibconnection обязательна.

Конфигурация базы должна уже быть на поддержке, а файл - содержать другую версию поставщика, иначе Конфигуратор откажет с ошибкой «Файл не содержит доступных обновлений». Первичная постановка на поддержку - cf merge --enable-support.

bash
vrunner cf vendor-update [опции]
ОпцияПеременная окруженияОписание
-s, --src-Файл .cfu или .cf поставщика (обязательна). В имени файла допустим шаблон $version: из подходящих файлов берётся старшая версия
--update-settings-Файл настроек объединения
--IncludeObjectsByUnresolvedRefs-Включить в объединение объекты с неразрешёнными ссылками
--ClearUnresolvedRefs-Очищать неразрешённые ссылки
--DumpListOfTwiceChangedProperties-Вывести список дважды изменённых свойств в файл служебных сообщений
--force-Обновлять при наличии предупреждений
--no-update-db-Не обновлять конфигурацию БД после обновления

Общие опции: подключение к ИБ, платформа, СУБД, обновление БД, --settings.

bash
# Обновить файлом поставщика
vrunner cf vendor-update -s ./updates/1cv8.cfu --ibconnection /F./ib --force

# Шаблон $version: из 1cv8_8.3.24.100.cfu и 1cv8_8.3.25.50.cfu будет выбран 1cv8_8.3.25.50.cfu
vrunner cf vendor-update -s './updates/1cv8_$version.cfu' --ibconnection /F./ib --force

compare

Сравнивает два файла .cf или файл .cf с конфигурацией базы и сохраняет отчёт compare_report_<тип>_<дата_время>.<формат> в каталог --report-dir. Только Конфигуратор. Без --first-cf сравнивается конфигурация базы - --ibconnection обязательна; при сравнении двух файлов без --ibconnection используется временная ИБ.

bash
vrunner cf compare [опции]
ОпцияПеременная окруженияОписание
--second-cf-Второй файл .cf - с чем сравниваем (обязательна)
--first-cf-Первый файл .cf; если не задан - конфигурация базы
--report-dir-Каталог отчёта (по умолчанию - текущий)
--report-type-Full (по умолчанию) или Brief
--report-format-txt (по умолчанию) или mxl

Общие опции: подключение к ИБ, платформа, СУБД, --settings.

bash
# Сравнить два файла
vrunner cf compare --first-cf ./old/App.cf --second-cf ./new/App.cf --report-dir ./reports

# Сравнить конфигурацию базы с файлом, краткий отчёт
vrunner cf compare --second-cf ./vendor/BSP.cf --ibconnection /F./ib --report-type Brief

convert

Конвертирует каталог исходников между форматами 1С:EDT и XML-дампа Конфигуратора утилитой 1cedtcli. Формат источника определяется автоматически, результат пишется в противоположном формате. Если в каталоге нет маркеров ни одного формата или найдено несколько вложенных EDT-проектов - ошибка.

bash
vrunner cf convert [опции] <OUT>
АргументПеременная окруженияОписание
OUT-Каталог результата (обязателен; в файле настроек - ключ out)
ОпцияПеременная окруженияОписание
-s, --srcVRUNNER_SRCКаталог исходников (по умолчанию - текущий)

Общие опции: EDT, --settings.

bash
# EDT-проект → XML-дамп
vrunner cf convert -s ./edt-project ./build/xml

# XML-дамп → EDT-проект, увеличенный таймаут 1cedtcli
vrunner cf convert -s ./build/xml --edt-timeout 5400 ./edt-project

cfe - Операции с расширениями

Сборка расширения из исходников в .cfe и разборка в исходники, загрузка в базу и выгрузка, сравнение, конвертация между форматами XML и 1С:EDT.

bash
vrunner cfe <подкоманда> [опции] [аргументы]

Каталог исходников может быть как XML-дампом Конфигуратора, так и проектом 1С:EDT - формат определяется автоматически, см. Исходники в формате 1С:EDT. Общие опции описаны на странице Общие опции.

Имя расширения - одно слово из букв, цифр и _, начинается с буквы или _. Проверка применимости установленных расширений и изменение их параметров - команды infobase extensions check и set-options.

compile

Собирает расширение из исходников в файл .cfe. Без --ibconnection используется временная ИБ.

bash
vrunner cfe compile [опции] <OUT>
АргументПеременная окруженияОписание
OUTVRUNNER_CFE_OUTПуть к создаваемому файлу .cfe (обязателен; в файле настроек - ключ out)
ОпцияПеременная окруженияОписание
-s, --srcVRUNNER_SRCКаталог исходников расширения (по умолчанию - текущий)
--extension-nameVRUNNER_EXTENSION_NAMEИмя расширения (по умолчанию - имя каталога исходников)

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, формат исходников, --settings.

bash
# Имя расширения задано явно
vrunner cfe compile --ibcmd -s ./extensions/MyExtension/src --extension-name MyExtension ./build/MyExtension.cfe

# Имя расширения - из имени каталога (MyExtension)
vrunner cfe compile -s ./extensions/MyExtension ./build/MyExtension.cfe

decompile

Разбирает расширение в исходники: из файла .cfe (он загружается во временную или указанную ИБ) либо напрямую из базы, если --cfe-file не задан - тогда расширение с именем --extension-name должно быть установлено в базе. Без --cfe-file и без --ibconnection команда завершается ошибкой.

bash
vrunner cfe decompile [опции] <OUT>
АргументПеременная окруженияОписание
OUT-Каталог для выгрузки исходников (обязателен; в файле настроек - ключ out)
ОпцияПеременная окруженияОписание
--cfe-fileVRUNNER_CFE_FILEПуть к файлу .cfe. Если не задан - исходники выгружаются из базы --ibconnection
--extension-nameVRUNNER_EXTENSION_NAMEИмя расширения (обязательна)

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, формат исходников, --settings.

bash
# Разобрать cfe в XML-исходники
vrunner cfe decompile --ibcmd --cfe-file ./build/MyExtension.cfe --extension-name MyExtension ./extensions/MyExtension/src

# Выгрузить исходники установленного расширения из базы
vrunner cfe decompile --extension-name MyExtension --ibconnection /FD:/bases/work ./extensions/MyExtension/src

load

Загружает расширение в базу из каталога исходников или файла .cfe (источник с расширением .cfe считается файлом, иначе - каталогом) напрямую движком - без сборки .cfe во временной базе, поэтому работает и для расширений, которые компилируются только поверх основной конфигурации. Без --ibconnection используется файловая ИБ build/ib.

После загрузки конфигурация БД расширения обновляется (UpdateDBCfg / config apply), затем применяются свойства расширения. Флаг --no-update-db отключает обновление; свойства при этом не изменяются.

bash
vrunner cfe load [опции] [SRC]
АргументПеременная окруженияОписание
SRC-Каталог исходников или файл .cfe (по умолчанию - текущий каталог; в файле настроек - ключ src)
ОпцияПеременная окруженияОписание
--extension-nameVRUNNER_EXTENSION_NAMEИмя расширения в базе (по умолчанию - имя каталога или файла источника)
--safe-mode-Включить безопасный режим
--active-Сделать расширение активным
--unsafe-action-protection-Включить защиту от опасных действий
--used-in-rib-Используется в РИБ (только --ibcmd)
--scope-infobase-Область действия - информационная база, а не разделитель данных (только --ibcmd)
--increment-Инкрементальная загрузка: грузятся только файлы, изменённые с прошлого запуска (только для каталога исходников)
--no-update-db-Не обновлять конфигурацию БД после загрузки

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, обновление БД, формат исходников, --settings.

--increment ведёт индекс изменений каталога исходников так же, как cf load; для EDT-исходников - см. Инкрементальная загрузка из EDT.

Свойства расширения устанавливаются по-разному:

  • Конфигуратор - обработкой в 1С:Предприятии при каждой загрузке: безопасный режим и защита от опасных действий выключены, если флаги не переданы; активность меняется только при --active. --used-in-rib и --scope-infobase не поддерживаются (предупреждение).
  • ibcmd - средствами ibcmd, только если передан хотя бы один флаг свойств; не переданные свойства получают значения по умолчанию (активно, без безопасного режима и защиты, не в РИБ, область - ИБ).
bash
# Загрузить из исходников через ibcmd
vrunner cfe load --ibcmd --ibconnection /F./ib --extension-name MyExtension ./extensions/MyExtension/src

# Загрузить cfe-файл с безопасным режимом
vrunner cfe load --ibconnection /F./ib --safe-mode ./MyExtension.cfe

unload

Выгружает расширение из базы в файл .cfe. Без --ibconnection используется файловая ИБ build/ib.

bash
vrunner cfe unload [опции] <OUT>
АргументПеременная окруженияОписание
OUT-Путь к создаваемому файлу .cfe (обязателен; в файле настроек - ключ out)
ОпцияПеременная окруженияОписание
--extension-nameVRUNNER_EXTENSION_NAMEИмя расширения в базе (обязательна)

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, --settings.

bash
vrunner cfe unload --ibconnection /F./ib --extension-name MyExtension ./backup/MyExtension.cfe

compare

Сравнивает два файла .cfe или файл .cfe с расширением в базе и сохраняет отчёт compare_report_<тип>_<дата_время>.<формат> в каталог --report-dir. Только Конфигуратор. Без --first-cfe сравнивается расширение из базы - --ibconnection обязательна; при сравнении двух файлов без --ibconnection используется временная ИБ.

bash
vrunner cfe compare [опции]
ОпцияПеременная окруженияОписание
--extension-name-Имя расширения (обязательна)
--second-cfe-Второй файл .cfe - с чем сравниваем (обязательна)
--first-cfe-Первый файл .cfe; если не задан - расширение из базы
--report-dir-Каталог отчёта (по умолчанию - текущий)
--report-type-Full (по умолчанию) или Brief
--report-format-txt (по умолчанию) или mxl

Общие опции: подключение к ИБ, платформа, СУБД, --settings.

bash
vrunner cfe compare --extension-name MyExtension --first-cfe ./old/MyExtension.cfe --second-cfe ./new/MyExtension.cfe --report-dir ./reports

convert

Конвертирует каталог исходников расширения между форматами 1С:EDT и XML-дампа Конфигуратора утилитой 1cedtcli. Формат источника определяется автоматически, результат пишется в противоположном формате. Если в каталоге нет маркеров ни одного формата или найдено несколько вложенных EDT-проектов - ошибка.

bash
vrunner cfe convert [опции] <OUT>
АргументПеременная окруженияОписание
OUT-Каталог результата (обязателен; в файле настроек - ключ out)
ОпцияПеременная окруженияОписание
-s, --srcVRUNNER_SRCКаталог исходников (по умолчанию - текущий)

Общие опции: EDT, --settings.

bash
# EDT-проект расширения → XML-дамп
vrunner cfe convert -s ./edt-extension ./build/xml

# XML-дамп → EDT-проект
vrunner cfe convert -s ./build/xml ./edt-extension

epf - Операции с внешними обработками

Команды epf собирают, разбирают и конвертируют внешние обработки (.epf) и внешние отчёты (.erf).

bash
vrunner epf <подкоманда> [опции] [аргументы]

compile и decompile выполняются Конфигуратором. Если --ibconnection не указана, создаётся временная файловая ИБ; флаг --ibcmd влияет только на способ её создания. Исходники принимаются и выгружаются как в XML-дампе Конфигуратора, так и в формате 1С:EDT (опция --src-format, см. Исходники в формате 1С:EDT).

compile

Собирает внешние обработки и отчёты из исходников. Тип объекта и расширение результата определяются по корневому тегу XML: ExternalDataProcessor.epf, ExternalReport.erf.

bash
vrunner epf compile [опции] [SRC]

Без --recursive SRC - каталог одного объекта с корневым <Имя>.xml; с --recursive собираются все объекты, найденные в подкаталогах. Из проекта внешних объектов 1С:EDT собираются все его объекты. По умолчанию результат сохраняется рядом с исходниками.

Аргументы

АргументПеременная окруженияОписание
SRC-Каталог исходников (по умолчанию - текущий; в файле настроек - ключ src)

Опции

ОпцияПеременная окруженияОписание
-R, --recursive-Рекурсивный поиск обработок и отчётов в подкаталогах
--out-Каталог для собранных файлов

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, формат исходников, файл настроек.

Примеры

bash
# Собрать одну обработку (результат - ./src/epf/МояОбработка.epf)
vrunner epf compile --ibcmd ./src/epf/МояОбработка

# Рекурсивно собрать все обработки и отчёты в каталог build/epf
vrunner epf compile -R --out ./build/epf --ibcmd ./src/epf

# Собрать в существующей базе через Конфигуратор
vrunner epf compile --ibconnection /F./ib --v8version 8.3.24 ./src/epf/МояОбработка

# Собрать все объекты проекта 1С:EDT
vrunner epf compile --src-format edt --out ./build/epf ./edt/ВнешниеОбработки

decompile

Разбирает файл .epf/.erf или каталог с такими файлами в исходники. Для каждого файла создаётся подкаталог с его именем: по умолчанию рядом с файлом, с --out - в указанном каталоге. С --src-format edt (или если --out - существующий EDT-проект) исходники импортируются в проект внешних объектов 1С:EDT.

bash
vrunner epf decompile [опции] <SRC>

Аргументы

АргументПеременная окруженияОписание
SRC-Файл .epf/.erf или каталог с ними (обязательный; в файле настроек - ключ src)

Опции

ОпцияПеременная окруженияОписание
-R, --recursive-Рекурсивный поиск файлов .epf/.erf в подкаталогах (если SRC - каталог)
--out-Каталог для разобранных исходников

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, формат исходников, файл настроек.

Примеры

bash
# Разобрать один файл (исходники - в ./build/МойОтчёт/)
vrunner epf decompile --ibcmd ./build/МойОтчёт.erf

# Разобрать все файлы каталога рекурсивно в src/epf
vrunner epf decompile -R --out ./src/epf --ibcmd ./build/epf

# Разобрать в проект 1С:EDT
vrunner epf decompile --src-format edt --out ./edt/ВнешниеОбработки ./build/МояОбработка.epf

convert

Конвертирует внешние обработки и отчёты между форматами 1С:EDT и XML Конфигуратора утилитой 1cedtcli - без сборки .epf и без информационной базы. Направление определяется по каталогу --src: EDT-проект выгружается в XML (OUT/ExternalDataProcessors/, OUT/ExternalReports/, по одному <Имя>.xml на объект), XML-дампы импортируются в EDT-проект.

bash
vrunner epf convert [опции] <OUT>

Аргументы

АргументПеременная окруженияОписание
OUT-Каталог результата в противоположном формате (обязательный; в файле настроек - ключ out)

Опции

ОпцияПеременная окруженияОписание
-s, --srcVRUNNER_SRCКаталог источника: EDT-проект или XML-дампы (по умолчанию - текущий каталог)

Общие опции: EDT, файл настроек.

Примеры

bash
# EDT → XML
vrunner epf convert --src ./edt/ВнешниеОбработки --edt-version 2025.2 ./build/xml

# XML → EDT (обратно)
vrunner epf convert --src ./build/xml ./edt/ВнешниеОбработки

infobase - Управление информационными базами

Команды infobase создают и обновляют информационные базы, выгружают и восстанавливают .dt, а также управляют пользователями, расширениями и регламентными заданиями развёрнутой базы.

bash
vrunner infobase <подкоманда> [опции] [аргументы]

Команды create-user, lock-resources, scheduled-job и extensions (кроме create) выполняются в режиме 1С:Предприятие внешними обработками из каталога epf/ пакета vanessa-runner. Если --ibconnection у них не указана, используется файловая ИБ build/ib.

init

Создаёт информационную базу и загружает в неё конфигурацию и расширения.

bash
vrunner infobase init [опции]

Порядок работы:

  1. Без опций СУБД создаётся файловая ИБ: по пути из --ibconnection /F<путь> или, если строка подключения не задана, в build/ib. Существующий каталог базы удаляется.
  2. С --dbms-type или строкой подключения /S<сервер>\<база> база считается серверной и не создаётся - используется существующая ИБ.
  3. Из --src загружается конфигурация: каталог исходников (XML или EDT) и .cf - с обновлением конфигурации БД, .dt - восстановлением базы целиком.
  4. Из --ext загружаются расширения и применяются к БД одним обновлением; у загруженных расширений выключены безопасный режим и защита от опасных действий.

Опции

ОпцияПеременная окруженияОписание
--srcVRUNNER_SOURCEИсточник конфигурации: каталог исходников, .cf или .dt. Синоним --source
--ext-Расширение: .cfe-файл или каталог исходников; можно указать несколько раз. Имя расширения - из имени файла или каталога
--recursive-Искать источники рекурсивно: в --src - конфигурацию (не более одной) и расширения, в --ext - только расширения

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, формат исходников, файл настроек.

Примеры

bash
# Пустая файловая ИБ в build/ib
vrunner infobase init

# ИБ по указанному пути из CF-файла
vrunner infobase init --src ./build/MyApp.cf --ibconnection /F./tmp-ib --ibcmd

# ИБ из исходников с двумя расширениями (.cfe и каталог исходников)
vrunner infobase init \
  --src ./src \
  --ext ./build/МоёРасширение.cfe \
  --ext ./src-ext/Интеграция \
  --ibconnection /F./tmp-ib

# Конфигурация и расширения найдены рекурсивно в каталоге проекта
vrunner infobase init --src ./project --recursive

# Загрузка в существующую серверную ИБ через ibcmd
vrunner infobase init \
  --src ./build/MyApp.cf \
  --ibconnection "/SMyServer\MyIB" \
  --ibcmd \
  --dbms-type PostgreSQL \
  --dbms-server localhost \
  --dbms-base my_db \
  --dbms-user postgres \
  --dbms-pwd secret

update

Обновляет конфигурацию БД. С --src перед обновлением загружает конфигурацию из каталога XML-исходников или .cf-файла. Без --ibconnection используется файловая ИБ build/ib, которая должна уже существовать.

bash
vrunner infobase update [опции]

Опции

ОпцияПеременная окруженияОписание
--srcVRUNNER_SOURCEИсточник конфигурации: каталог XML-исходников или .cf. Синоним --source
--target-Что обновлять: main - основная конфигурация, <имя> - расширение, пусто - основная конфигурация и все расширения
--increment-Инкрементальная загрузка исходников по индексу изменений

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, обновление конфигурации БД, файл настроек.

Примеры

bash
# Обновить конфигурацию БД и все расширения
vrunner infobase update --ibconnection /F./ib

# Загрузить CF и обновить БД с оптимизированной реструктуризацией
vrunner infobase update --src ./build/MyApp.cf --rtype v2 --ibconnection /F./ib

# Обновить только расширение
vrunner infobase update --target МоёРасширение --ibconnection /F./ib

dump-dt

Выгружает информационную базу в файл .dt. Опция --ibconnection обязательна.

bash
vrunner infobase dump-dt [опции] <OUT>

Аргументы

АргументПеременная окруженияОписание
OUT-Путь к создаваемому файлу .dt (обязательный; в файле настроек - ключ out)

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, файл настроек.

Примеры

bash
vrunner infobase dump-dt --ibconnection /F./ib --v8version 8.3.24 ./backup/MyProject.dt

restore-dt

Загружает информационную базу из файла .dt. Опция --ibconnection обязательна.

bash
vrunner infobase restore-dt [опции] <IN>

Аргументы

АргументПеременная окруженияОписание
IN-Путь к файлу .dt (обязательный; в файле настроек - ключ in)

Общие опции: подключение к ИБ, ibcmd, платформа, СУБД, файл настроек.

Примеры

bash
vrunner infobase restore-dt --ibconnection /F./ib ./backup/MyProject.dt

create-user

Создаёт пользователя информационной базы без пароля. Пользователь создаётся только если в ИБ ещё нет ни одного пользователя, иначе команда ничего не делает. Роли, которых нет в конфигурации, пропускаются с предупреждением; если не найдена ни одна - ошибка.

bash
vrunner infobase create-user [опции] <NAME>

Аргументы

АргументПеременная окруженияОписание
NAME-Имя создаваемого пользователя (обязательный)

Опции

ОпцияПеременная окруженияОписание
--role-Роль пользователя; можно указать несколько раз. По умолчанию ПолныеПрава, АдминистраторСистемы и, если есть, ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок

Общие опции: подключение к ИБ, платформа, СУБД.

Примеры

bash
# Администратор с ролями по умолчанию
vrunner infobase create-user --ibconnection /F./ib Администратор

# Пользователь с заданным набором ролей
vrunner infobase create-user --role ЧтениеДанных --role РаботаСЗаказами --ibconnection /F./ib Оператор

lock-resources

Разрешает или запрещает работу с внешними ресурсами (механизм БСП). Укажите ровно один из флагов --allow или --deny.

bash
vrunner infobase lock-resources (--allow | --deny) [опции]

Опции

ОпцияПеременная окруженияОписание
--allow-Разрешить работу с внешними ресурсами
--deny-Запретить работу с внешними ресурсами

Общие опции: подключение к ИБ, платформа, СУБД.

Примеры

bash
# Запретить внешние ресурсы на копии базы, чтобы она не слала письма и обмены
vrunner infobase lock-resources --deny --ibconnection /F./ib

# Снова разрешить
vrunner infobase lock-resources --allow --ibconnection /F./ib

scheduled-job

Включает или отключает регламентное задание по имени метаданных (механизм БСП).

bash
vrunner infobase scheduled-job <enable | disable> [опции] <JOB>

Аргументы

АргументПеременная окруженияОписание
JOB-Имя метаданных регламентного задания (обязательный)

Общие опции: подключение к ИБ, платформа, СУБД.

Примеры

bash
vrunner infobase scheduled-job disable --ibconnection /F./ib ИзвлечениеТекста
vrunner infobase scheduled-job enable --ibconnection /F./ib ИзвлечениеТекста

extensions

Работа с расширениями, уже установленными в базе.

bash
vrunner infobase extensions <list | check | create | delete | set-options> [опции] [NAME]

Общие опции всех подкоманд: подключение к ИБ, платформа, СУБД.

list

Выводит список установленных расширений в stdout: по умолчанию только имена, с --verbose - таблицу, с --json - массив JSON.

bash
vrunner infobase extensions list [опции]
ОпцияПеременная окруженияОписание
-v, --verbose-Таблица: имя, синоним, версия и параметры расширений
--json-JSON: имя, синоним, версия, хэш, параметры. Имеет приоритет над --verbose

Чтобы в stdout не попадали строки лога, переведите лог в stderr ключом log-output (см. Потоки вывода).

check

Проверяет применимость установленных расширений без их загрузки. Без NAME проверяются все расширения. Если найдены проблемы применимости - код возврата 1.

bash
vrunner infobase extensions check [опции] [NAME]
АргументПеременная окруженияОписание
NAME-Имя расширения (по умолчанию проверяются все)

create

Создаёт пустое расширение с заданным именем через Конфигуратор. Если расширение уже существует - ошибка; --overwrite пересоздаёт его. Конфигурация БД не обновляется - примените расширение командой infobase update --target <NAME>.

bash
vrunner infobase extensions create [опции] <NAME>
АргументПеременная окруженияОписание
NAME-Имя создаваемого расширения (обязательный)
ОпцияПеременная окруженияОписание
--overwrite-Пересоздать расширение, если оно уже существует

delete

Удаляет установленное расширение по имени. Если расширение не найдено - ошибка.

bash
vrunner infobase extensions delete [опции] <NAME>
АргументПеременная окруженияОписание
NAME-Имя удаляемого расширения (обязательный)

set-options

Изменяет параметры установленного расширения без его перезагрузки. Меняются только переданные параметры; хотя бы один обязателен. Значения - true или false.

bash
vrunner infobase extensions set-options [опции] <NAME>
АргументПеременная окруженияОписание
NAME-Имя расширения (обязательный)
ОпцияПеременная окруженияОписание
--active-Активность расширения
--safe-mode-Безопасный режим
--unsafe-action-protection-Защита от опасных действий
--main-roles-for-all-Использовать основные роли для всех пользователей (платформа 8.3.15+)

Примеры

bash
# Список установленных расширений
vrunner infobase extensions list --ibconnection /F./ib

# JSON для скриптов (лог - в stderr)
VRUNNER_LOG_OUTPUT=stderr vrunner infobase extensions list --json --ibconnection /F./ib | jq '.[].имя'

# Проверить применимость всех расширений
vrunner infobase extensions check --ibconnection /F./ib

# Создать пустое расширение и применить его к БД
vrunner infobase extensions create --ibconnection /F./ib МоёРасширение
vrunner infobase update --target МоёРасширение --ibconnection /F./ib

# Удалить расширение
vrunner infobase extensions delete --ibconnection /F./ib МоёРасширение

# Включить безопасный режим и снять защиту от опасных действий
vrunner infobase extensions set-options --safe-mode true --unsafe-action-protection false --ibconnection /F./ib МоёРасширение

repo - Работа с хранилищем конфигурации

Команды repo работают с хранилищем конфигурации 1С через Конфигуратор: создание хранилища, подключение базы, получение и помещение изменений, захват объектов, пользователи хранилища.

bash
vrunner repo <подкоманда> [опции] [аргументы]

Адрес хранилища, пользователь, пароль и номер версии задаются общими опциями --storage-name, --storage-user, --storage-pwd, --storage-ver - см. Хранилище конфигурации. Командам create, create-user, copy-user и save-cf информационная база не нужна: без --ibconnection создаётся временная файловая ИБ. Остальные команды работают с базой из --ibconnection.

create

Создаёт хранилище конфигурации по адресу --storage-name; --storage-user и --storage-pwd становятся его администратором.

bash
vrunner repo create [опции]

Общие опции: подключение к ИБ, платформа, СУБД, хранилище, файл настроек.

Примеры

bash
vrunner repo create \
  --storage-name D:/repos/MyProject \
  --storage-user Администратор \
  --storage-pwd secret

bind

Подключает информационную базу к хранилищу. По умолчанию конфигурация базы заменяется конфигурацией хранилища.

bash
vrunner repo bind [опции]

Опции

ОпцияПеременная окруженияОписание
--ignore-already-bound-Не считать ошибкой, что пользователь уже подключён к хранилищу
--do-not-replace-cfg-Не заменять конфигурацию базы конфигурацией хранилища

Общие опции: подключение к ИБ, платформа, СУБД, хранилище, файл настроек.

Примеры

bash
vrunner repo bind \
  --storage-name D:/repos/MyProject \
  --storage-user DevUser \
  --storage-pwd secret \
  --ignore-already-bound \
  --ibconnection /F./ib

unbind

Отключает информационную базу от хранилища. Опции хранилища не нужны.

bash
vrunner repo unbind [опции]

Общие опции: подключение к ИБ, платформа, СУБД, файл настроек.

Примеры

bash
vrunner repo unbind --ibconnection /F./ib

load

Обновляет конфигурацию базы из хранилища: до версии --storage-ver или до последней. Конфигурация БД при этом не обновляется - выполните infobase update.

bash
vrunner repo load [опции]

Общие опции: подключение к ИБ, платформа, СУБД, хранилище, файл настроек.

Примеры

bash
# Последняя версия хранилища
vrunner repo load \
  --storage-name D:/repos/MyProject \
  --storage-user DevUser \
  --storage-pwd secret \
  --ibconnection /F./ib

# Конкретная версия
vrunner repo load --storage-name D:/repos/MyProject --storage-user DevUser --storage-pwd secret --storage-ver 42 --ibconnection /F./ib

lock

Захватывает объекты в хранилище: все или перечисленные в XML-файле --objects.

bash
vrunner repo lock [опции]

Опции

ОпцияПеременная окруженияОписание
--objects-Путь к XML-файлу со списком объектов
--revised-Получить захваченные объекты из хранилища (-revised)

Общие опции: подключение к ИБ, платформа, СУБД, хранилище, файл настроек.

Примеры

bash
vrunner repo lock \
  --objects ./objects.xml \
  --storage-name D:/repos/MyProject \
  --storage-user DevUser \
  --storage-pwd secret \
  --ibconnection /F./ib

unlock

Отменяет захват объектов: всех или перечисленных в XML-файле --objects.

bash
vrunner repo unlock [опции]

Опции

ОпцияПеременная окруженияОписание
--objects-Путь к XML-файлу со списком объектов
--force-Отменить захват, даже если объекты изменены локально

Общие опции: подключение к ИБ, платформа, СУБД, хранилище, файл настроек.

Примеры

bash
vrunner repo unlock \
  --force \
  --storage-name D:/repos/MyProject \
  --storage-user DevUser \
  --storage-pwd secret \
  --ibconnection /F./ib

commit

Помещает изменения захваченных объектов в хранилище: всех или перечисленных в XML-файле --objects.

bash
vrunner repo commit [опции]

Опции

ОпцияПеременная окруженияОписание
--objects-Путь к XML-файлу со списком объектов
--comment-Комментарий к помещаемым объектам
--keep-locked-Оставить объекты захваченными после помещения
--force-Игнорировать удалённые объекты

Общие опции: подключение к ИБ, платформа, СУБД, хранилище, файл настроек.

Примеры

bash
vrunner repo commit \
  --comment "Задача #123: добавлены новые справочники" \
  --storage-name D:/repos/MyProject \
  --storage-user DevUser \
  --storage-pwd secret \
  --ibconnection /F./ib

save-cf

Сохраняет конфигурацию из хранилища в файл .cf: версию --storage-ver или последнюю.

bash
vrunner repo save-cf [опции] <OUT>

Аргументы

АргументПеременная окруженияОписание
OUT-Путь к создаваемому файлу .cf (обязательный; в файле настроек - ключ out)

Общие опции: подключение к ИБ, платформа, СУБД, хранилище, файл настроек.

Примеры

bash
vrunner repo save-cf \
  --storage-name D:/repos/MyProject \
  --storage-user DevUser \
  --storage-pwd secret \
  --storage-ver 100 \
  ./build/MyApp.cf

create-user

Создаёт пользователя хранилища; у --storage-user должны быть права администрирования хранилища.

bash
vrunner repo create-user [опции]

Опции

ОпцияПеременная окруженияОписание
--new-user-name-Логин нового пользователя (обязательная)
--new-user-pwd-Пароль нового пользователя
--new-user-role-Роль: ReadOnly (по умолчанию), LockObjects, ManageConfigurationVersions, Administration

Общие опции: подключение к ИБ, платформа, СУБД, хранилище, файл настроек.

Примеры

bash
vrunner repo create-user \
  --new-user-name DevUser \
  --new-user-pwd secret \
  --new-user-role LockObjects \
  --storage-name D:/repos/MyProject \
  --storage-user Администратор \
  --storage-pwd secret

copy-user

Копирует пользователей из другого хранилища (--source-storage-*) в хранилище --storage-name.

bash
vrunner repo copy-user [опции]

Опции

ОпцияПеременная окруженияОписание
--source-storage-name-Адрес хранилища-источника (обязательная)
--source-storage-user-Пользователь хранилища-источника
--source-storage-pwd-Пароль хранилища-источника
--restore-deleted-Восстановить удалённых пользователей

Общие опции: подключение к ИБ, платформа, СУБД, хранилище, файл настроек.

Примеры

bash
vrunner repo copy-user \
  --source-storage-name D:/repos/OldProject \
  --source-storage-user Администратор \
  --source-storage-pwd secret \
  --storage-name D:/repos/MyProject \
  --storage-user Администратор \
  --storage-pwd secret

cluster - Управление кластером серверов

Команды cluster управляют информационной базой в кластере серверов 1С через RAS: создание и удаление ИБ, сведения о ней, сеансы и регламентные задания.

bash
vrunner cluster <подкоманда> [опции]

Все команды принимают общие опции кластера: --ras (по умолчанию localhost:1545), --db-name, --cluster или --cluster-name (без них берётся первый кластер в списке), --cluster-admin/--cluster-pwd, а также --db-user/--db-pwd администратора ИБ - см. Кластер серверов. Версия платформы для поиска rac - опция --v8version из раздела Платформа.

create

Создаёт информационную базу в кластере. По умолчанию создаётся и база данных в СУБД по опциям --dbms-*.

bash
vrunner cluster create [опции]

Опции

ОпцияПеременная окруженияОписание
--ib-locale-Локализация ИБ (по умолчанию ru_RU)
--no-create-db-Не создавать базу данных в СУБД
--lock-jobs-Сразу заблокировать регламентные задания

Общие опции: кластер серверов, платформа, СУБД, файл настроек.

Примеры

bash
vrunner cluster create \
  --ras localhost:1545 \
  --cluster-admin ClusterAdmin \
  --cluster-pwd secret \
  --db-name MyInfobase \
  --dbms-type PostgreSQL \
  --dbms-server localhost \
  --dbms-base my_db \
  --dbms-user postgres \
  --dbms-pwd secret

info

Выводит сведения об ИБ в кластере: имя, идентификатор, СУБД, сервер и имя базы данных, блокировки сеансов и регламентных заданий, выдачу лицензий.

bash
vrunner cluster info [опции]

Общие опции: кластер серверов, платформа, файл настроек.

Примеры

bash
vrunner cluster info --ras localhost:1545 --db-name MyInfobase --cluster-admin ClusterAdmin --cluster-pwd secret

remove

Удаляет информационную базу из кластера. Без флагов база данных в СУБД остаётся нетронутой.

bash
vrunner cluster remove [опции]

Опции

ОпцияПеременная окруженияОписание
--drop-db-Удалить базу данных в СУБД
--clear-db-Очистить базу данных в СУБД

Общие опции: кластер серверов, платформа, файл настроек.

Примеры

bash
vrunner cluster remove --drop-db --ras localhost:1545 --db-name MyInfobase --cluster-admin ClusterAdmin --cluster-pwd secret

session

Управление сеансами информационной базы.

bash
vrunner cluster session <lock | unlock | list | kill | closed> [опции]

Команды list, kill и closed принимают отбор сеансов:

ОпцияПеременная окруженияОписание
--filter-app-Отбор по приложению сеанса; можно указать несколько раз или списком через ;
--filter-name-Отбор по имени пользователя ИБ; можно указать несколько раз или списком через ;
--filter-except-Инвертировать отбор: все сеансы, кроме подходящих под --filter-app/--filter-name

Условия объединяются по ИЛИ: сеанс подходит, если совпало приложение или пользователь. Сравнение регистронезависимое, без масок. Допустимые значения --filter-app: Designer, 1CV8, 1CV8C, WebClient, WSConnection, HTTPServiceConnection, COMConnection, WebServerExtension, BackgroundJob, JobScheduler, SrvrConsole, RAS, AgentStandardCall.

Общие опции всех подкоманд: кластер серверов, платформа, файл настроек.

session lock

Блокирует начало новых сеансов. Код разрешения задаётся опцией --uccode.

bash
vrunner cluster session lock [опции]
ОпцияПеременная окруженияОписание
--denied-message-Сообщение при попытке начать сеанс

Примеры

bash
vrunner cluster session lock \
  --ras localhost:1545 \
  --db-name MyInfobase \
  --cluster-admin ClusterAdmin \
  --cluster-pwd secret \
  --uccode MySecretCode \
  --denied-message "База закрыта на обслуживание"

session unlock

Снимает блокировку начала сеансов.

bash
vrunner cluster session unlock [опции]

Примеры

bash
vrunner cluster session unlock --ras localhost:1545 --db-name MyInfobase --cluster-admin ClusterAdmin --cluster-pwd secret

session list

Выводит в stdout сеансы ИБ: номер, приложение, пользователь, компьютер, время начала и последней активности.

bash
vrunner cluster session list [опции]
ОпцияПеременная окруженияОписание
--connections-Дополнительно вывести соединения ИБ (номер, приложение, компьютер, номер сеанса, время установки) - в том числе соединения без сеанса

Примеры

bash
# Все сеансы базы
vrunner cluster session list --db-name MyInfobase

# Только фоновые задания
vrunner cluster session list --db-name MyInfobase --filter-app BackgroundJob

# Сеансы вместе с соединениями
vrunner cluster session list --db-name MyInfobase --connections

session kill

Завершает сеансы ИБ, предварительно блокируя начало новых (отключается --no-lock). После каждой попытки команда выдерживает паузу 3 секунды, перечитывает список и завершает оставшиеся сеансы повторно. Если по исчерпании попыток или таймаута сеансы остались - код возврата 1.

bash
vrunner cluster session kill [опции]
ОпцияПеременная окруженияОписание
--no-lock-Не блокировать новые сеансы перед завершением
--retry-Количество попыток завершения (по умолчанию 3); игнорируется при --timeout
--timeout-Максимальное время завершения, сек: попытки повторяются до успеха или таймаута

Примеры

bash
# Завершить все сеансы
vrunner cluster session kill --ras localhost:1545 --db-name MyInfobase --cluster-admin ClusterAdmin --cluster-pwd secret

# Только сеансы Конфигуратора и указанных пользователей
vrunner cluster session kill --db-name MyInfobase --filter-app Designer --filter-name "регламент;администратор"

# Все сеансы, кроме фоновых заданий
vrunner cluster session kill --db-name MyInfobase --filter-app BackgroundJob --filter-except

# Завершать зависшие сеансы до 2 минут вместо 3 попыток
vrunner cluster session kill --db-name MyInfobase --timeout 120

session closed

Проверяет отсутствие сеансов ИБ, а с --timeout - дожидается их завершения. Если сеансы остались, выводит их и завершается с кодом возврата 1 - удобно как шаг пайплайна перед обновлением.

bash
vrunner cluster session closed [опции]
ОпцияПеременная окруженияОписание
--timeout-Время ожидания, сек: проверка повторяется каждые 3 секунды. По умолчанию 0 - одна проверка

Примеры

bash
# Убедиться, что сеансов нет
vrunner cluster session closed --db-name MyInfobase

# Дождаться (до 5 минут), пока фоновые задания завершатся сами
vrunner cluster session closed --db-name MyInfobase --filter-app BackgroundJob --timeout 300

jobs

Управление регламентными заданиями информационной базы.

bash
vrunner cluster jobs <lock | unlock> [опции]

Общие опции: кластер серверов, платформа, файл настроек.

jobs lock

Блокирует выполнение регламентных заданий.

bash
vrunner cluster jobs lock [опции]

jobs unlock

Снимает блокировку регламентных заданий.

bash
vrunner cluster jobs unlock [опции]

Типичный сценарий: обновление под нагрузкой

bash
# 1. Заблокировать новые сеансы и регламентные задания
vrunner cluster session lock --ras localhost:1545 --db-name MyIB --cluster-admin admin --cluster-pwd pwd --uccode UPDATE2026
vrunner cluster jobs lock --ras localhost:1545 --db-name MyIB --cluster-admin admin --cluster-pwd pwd

# 2. Дождаться (до 10 минут), пока запущенные фоновые задания доработают
vrunner cluster session closed --ras localhost:1545 --db-name MyIB --cluster-admin admin --cluster-pwd pwd --filter-app BackgroundJob --timeout 600

# 3. Завершить оставшиеся сеансы (зависшие добиваются до 2 минут)
vrunner cluster session kill --ras localhost:1545 --db-name MyIB --cluster-admin admin --cluster-pwd pwd --timeout 120

# 4. ... обновление ИБ ...

# 5. Разблокировать задания и сеансы
vrunner cluster jobs unlock --ras localhost:1545 --db-name MyIB --cluster-admin admin --cluster-pwd pwd
vrunner cluster session unlock --ras localhost:1545 --db-name MyIB --cluster-admin admin --cluster-pwd pwd

run - Запуск 1С

Запуск 1С:Предприятия или Конфигуратора с нужными параметрами из командной строки. Это интерактивные команды, в MCP они не выставляются.

bash
vrunner run <подкоманда> [опции]

enterprise

Запускает 1С:Предприятие (тонкий клиент, толстый - при --ordinaryapp) и по умолчанию ждёт его завершения.

bash
vrunner run enterprise [опции]

Опции

ОпцияПеременная окруженияОписание
--commandVRUNNER_COMMANDСтрока, передаваемая в параметр запуска /C
--executeVRUNNER_EXECUTEПуть к внешней обработке для запуска (/Execute); поддерживается макрос $runnerRoot
--url-Навигационная ссылка для перехода после старта (/URL)
--no-wait-Не ожидать завершения 1С:Предприятия
--exitCodePath-Путь к файлу статуса выполнения: 0 - успех, 1 - ошибка, 2 - предупреждение

Общие опции: подключение к ИБ, платформа, запуск клиента, файл настроек.

Запуск через автономный сервер (--ibsrv) работает только с файловой ИБ и несовместим с --no-wait - в обоих случаях режим ibsrv игнорируется с предупреждением.

Файл статуса (--exitCodePath)

Путь передаётся обработке в строке /C как exitCodePath=<путь> (через ; после значения --command; если в --command уже есть exitCodePath= или xddExitCodePath, повторно не добавляется). После завершения 1С:Предприятия vrunner читает файл: 0 - успех, 2 - предупреждение в логе, 1 и любое другое значение - команда завершается ошибкой. Если обработка файл не создала, выводится предупреждение, команда считается успешной. С --no-wait файл не читается.

Макрос $runnerRoot

В --execute макрос $runnerRoot раскрывается в каталог установки vanessa-runner - так запускаются обработки из его поставки (каталог epf). Файл обработки должен существовать, иначе команда завершается ошибкой.

Примеры

bash
# Запустить обработку и проверить результат по файлу статуса
vrunner run enterprise \
  --ibconnection /F./ib \
  --execute ./tools/InitIB.epf \
  --exitCodePath ./build/result.txt

# Передать параметр запуска /C
vrunner run enterprise \
  --ibconnection /F./ib \
  --command "StartFilling" \
  --v8version 8.3.24

# Обработка из поставки vanessa-runner
vrunner run enterprise \
  --ibconnection /F./ib \
  --execute '$runnerRoot/epf/ЗакрытьПредприятие.epf'

# Открыть навигационную ссылку и не ждать закрытия клиента
vrunner run enterprise \
  --ibconnection /F./ib \
  --url "e1cib/list/Catalog.Контрагенты" \
  --no-wait

designer

Запускает Конфигуратор и по умолчанию ждёт его закрытия. Если задан --storage-name, Конфигуратор открывается с подключением к хранилищу (--storage-user, --storage-pwd; --storage-ver не используется).

bash
vrunner run designer [опции]

Опции

ОпцияПеременная окруженияОписание
--additionalVRUNNER_ADDITIONALДополнительные параметры запуска Конфигуратора
--no-wait-Не ожидать закрытия Конфигуратора

Общие опции: подключение к ИБ, платформа, хранилище конфигурации, файл настроек.

Примеры

bash
# Запустить Конфигуратор с дополнительными ключами
vrunner run designer \
  --ibconnection /F./ib \
  --additional "/DumpConfigToFiles ./src"

# Открыть Конфигуратор с подключением к хранилищу и не ждать закрытия
vrunner run designer \
  --ibconnection /F./ib \
  --storage-name D:/repos/MyProject \
  --storage-user Администратор \
  --no-wait

test - Запуск тестов

Запуск тестов 1С: модульных через Vanessa-ADD (xUnit) и YAxUnit, функциональных (BDD) через Vanessa-ADD.

bash
vrunner test <подкоманда> [опции] [аргументы]

Отчёты о прогоне у всех подкоманд задаются общей парой --report-format / --report-path (Отчёты о результатах), покрытие кода - опциями --coverage-* (Сбор покрытия тестами).

xunit

Запускает тесты через обработку xddTestRunner.epf (xUnit for 1C) из vanessa-add и ждёт завершения 1С:Предприятия.

bash
vrunner test xunit [опции] TESTSPATH

Аргументы

АргументПеременная окруженияОписание
TESTSPATHVRUNNER_TESTSPATHКаталог или файл с тестами; с --config-tests - имя расширения с тестами (значение с точкой передаётся загрузчику тестов из подсистем конфигурации). Поддерживается макрос $addRoot (каталог установки vanessa-add). Обязателен; в файле настроек - ключ testspath

Опции

ОпцияПеременная окруженияОписание
--workspaceVRUNNER_WORKSPACEПапка проекта (workspaceRoot для макросов $workspace), по умолчанию - текущий каталог
--pathxunitVRUNNER_PATHXUNITПуть к xddTestRunner.epf (по умолчанию из vanessa-add)
--reportsxunitVRUNNER_REPORTSXUNIT(устарела) Отчёты в виде Формат{Путь};Формат{Путь}
--reportxunit-(устарела) Путь к отчёту jUnit
--xddExitCodePath-Путь к файлу статуса тестирования: 0 - пройдены, 1 - не пройдены
--xddConfig-Путь к конфигурационному файлу xUnitFor1C
--testclient-Тест-клиент: Пользователь:Пароль:Порт; :: или ::Порт - подставить --db-user/--db-pwd
--testclient-additional-Дополнительные параметры запуска тест-клиента
--config-testsVRUNNER_CONFIG_TESTSЗагружать тесты, встроенные в конфигурацию
--no-wait-Не ожидать завершения 1С:Предприятия
--xdddebug-Выводить отладочные сообщения при прогоне
--no-shutdown-Не завершать 1С:Предприятие после тестов
--clear-reports-Очищать каталоги отчётов перед запуском

Общие опции: подключение к ИБ, платформа, запуск клиента, отчёты, покрытие, файл настроек.

Форматы --report-format: junit, allure, json, mxl, genericexecution либо полное имя генератора Vanessa-ADD (ГенераторОтчетаJUnitXML, GenerateReportJUnitXML, в том числе генератор-плагин). Если задан только --report-path, формат - junit. Те же форматы принимает устаревшая --reportsxunit: junit{./build/junit.xml};allure{./build/allure} - её оставили для случая, когда каждому генератору нужен свой путь.

Код возврата vrunner зависит от результата тестов только при заданном --xddExitCodePath: после прогона файл читается, значение 1 завершает команду ошибкой. Клиент запускается с ключом /TESTMANAGER.

Примеры

bash
# Запустить тесты и сформировать JUnit-отчёт
vrunner test xunit \
  --ibconnection /F./ib \
  --report-format junit \
  --report-path ./build/reports/junit.xml \
  --xddExitCodePath ./build/status.txt \
  ./tests

# Два формата за прогон - путь становится каталогом
vrunner test xunit \
  --ibconnection /F./ib \
  --report-format junit \
  --report-format allure \
  --report-path ./build/reports \
  ./tests

# Тесты из расширения, загруженного в базу
vrunner test xunit \
  --ibconnection /F./ib \
  --config-tests \
  --report-format junit \
  --report-path ./build/reports/junit.xml \
  ТестыКонфигурации

# Встроенные дымовые тесты vanessa-add (макрос $addRoot)
vrunner test xunit \
  --ibconnection /F./ib \
  '$addRoot/tests/smoke'

# С тест-клиентом (клиент-серверный режим)
vrunner test xunit \
  --ibconnection "/SMyServer\MyIB" \
  --testclient "Тест:password:1538" \
  --report-format junit \
  --report-path ./build/reports/junit.xml \
  ./tests

yaxunit

Запускает модульные тесты YAxUnit. Внешняя обработка не нужна: движок и тесты работают как расширения конфигурации, vrunner формирует файл запуска yaxunit.json и запускает 1С:Предприятие с ключом /C RunUnitTests=<файл>.

bash
vrunner test yaxunit [опции]

Подготовка ИБ

Перед запуском в базу должны быть загружены через cfe load расширение-движок YAxUnit и расширения с тестовыми модулями, а конфигурация БД - обновлена (не указывайте --no-update-db). Безопасный режим у расширений должен быть выключен, иначе движок не прочитает файл запуска.

Опции

ОпцияПеременная окруженияОписание
--yaxunit-configVRUNNER_YAXUNIT_CONFIGГотовый yaxunit.json - используется как есть, остальные опции фильтра и отчёта игнорируются
--extVRUNNER_YAXUNIT_EXTИмена расширений с тестами через запятую (filter.extensions)
--modules-Имена модулей с тестами через запятую (filter.modules)
--tests-Полные имена тестов через запятую: Модуль.Тест (filter.tests)
--tags-Теги тестов через запятую (filter.tags)
--suites-Имена наборов тестов через запятую (filter.suites)
--reportVRUNNER_YAXUNIT_REPORT(устарела) То же, что --report-path
--exitcodeVRUNNER_YAXUNIT_EXITCODEФайл кода возврата, который пишет YAxUnit (exitCode): 0 - пройдены, 1 - есть ошибки
--project-pathVRUNNER_PROJECT_PATHКаталог проекта для зависимостей ФайлыПроекта (projectPath), по умолчанию - текущий
--workspaceVRUNNER_WORKSPACEКаталог рабочего пространства YAxUnit (workspacePath)
--show-report-Открывать форму отчёта после тестов
--no-close-Не закрывать 1С:Предприятие после тестов
--no-wait-Не ожидать завершения 1С:Предприятия

Общие опции: подключение к ИБ, платформа, запуск клиента, отчёты, покрытие, файл настроек.

Форматы --report-format: junit (по умолчанию), json, allure - ровно один за прогон.

Опции фильтра комбинируются по «И»: --ext МоиТесты --tags smoke запустит тесты с тегом smoke только из расширения МоиТесты. Без фильтра выполняются все найденные тесты.

Результат и код возврата

Если --report-path не задан, отчёт jUnit формируется во временном файле. По отчёту jUnit vrunner печатает саммари и выставляет код возврата: 0 - все тесты пройдены, ошибка - есть провалы или ошибки либо отчёт не сформирован (не загружены движок или расширения с тестами). Для форматов json и allure выводится только путь к отчёту, код возврата от результата не зависит; то же при --yaxunit-config без reportPath.

YAxUnit: всего 12, успешно 11, провалено 1, ошибок 0, пропущено 0
  [x] МойМодуль.ПроверкаСложения - ожидали 4, получили 5

Примеры

bash
# Минимальный запуск: отчёт во временный файл, саммари в консоль
vrunner test yaxunit --ibconnection /F./ib

# Тесты из расширения с JUnit-отчётом для CI
vrunner test yaxunit \
  --ibconnection /F./ib \
  --ext МоиТесты \
  --report-format junit \
  --report-path ./build/reports/yaxunit.xml

# Только тесты с заданными тегами из конкретных модулей
vrunner test yaxunit \
  --ibconnection /F./ib \
  --modules МодульТестовКаталога,МодульТестовДокумента \
  --tags "smoke,critical"

# Готовый файл запуска
vrunner test yaxunit \
  --ibconnection /F./ib \
  --yaxunit-config ./yaxunit.json

Формат yaxunit.json описан в документации YAxUnit.

vanessa

Запускает сценарии в формате Gherkin через обработку bddRunner.epf (Vanessa-ADD) и ждёт завершения 1С:Предприятия.

bash
vrunner test vanessa [опции]

Опции

ОпцияПеременная окруженияОписание
--feature-pathVRUNNER_FEATUREPATHКаталог с фичами или файл .feature; поддерживается макрос $addRoot. Несовместим с --ordinaryapp
--bddrunner-pathVRUNNER_PATHVANESSAПуть к bddRunner.epf (по умолчанию из vanessa-add)
--vanessasettingsVRUNNER_VANESSASETTINGSФайл настроек Vanessa-ADD (VBParams); относительный путь и макросы $workspaceRoot/$workspace разрешаются от --workspace
--workspaceVRUNNER_WORKSPACEПапка проекта (workspaceRoot), по умолчанию - текущий каталог
--tags-ignore-Теги игнорирования фич (TagsIgnore)
--tags-filter-Теги фильтрации фич (TagsFilter)
--additional-keys-Дополнительные параметры, передаваемые в /C
--no-wait-Не ожидать завершения 1С:Предприятия

Общие опции: подключение к ИБ, платформа, запуск клиента, отчёты, покрытие, файл настроек.

Путь к фичам передаётся в Vanessa-ADD переменной окружения VANESSA_FEATUREPATH и переопределяет КаталогФич из файла настроек. Форматы --report-format: junit, allure, cucumberjson; для всех путь - каталог, поэтому --report-path обязателен. У bddRunner.epf нет ключей запуска для отчётов, поэтому vrunner накладывает их на настройки из --vanessasettings (исходный файл не меняется, опции командной строки перекрывают одноимённые настройки). Клиент запускается с ключом /TESTMANAGER.

Примеры

bash
# Запустить все фичи с настройками проекта
vrunner test vanessa \
  --ibconnection /F./ib \
  --feature-path ./features \
  --vanessasettings ./tools/vanessa/vb-params.json

# Фильтр по тегам
vrunner test vanessa \
  --ibconnection /F./ib \
  --feature-path ./features \
  --tags-filter "@smoke" \
  --tags-ignore "@wip"

# Одна фича и отчёты JUnit + Allure в каталог
vrunner test vanessa \
  --ibconnection /F./ib \
  --feature-path ./features/Catalog.feature \
  --report-format junit \
  --report-format allure \
  --report-path ./build/reports

Формат файла настроек Vanessa-ADD описан в репозитории vanessa-add.

Покрытие тестами

Все три подкоманды умеют собирать покрытие кода конфигурации и расширений: достаточно указать --coverage-report - путь к XML-отчёту (generic для SonarQube, cobertura, clover). Опции --coverage-*, сервер отладки и ограничения описаны на странице Сбор покрытия тестами.

bash
vrunner test yaxunit --ibconnection /F./ib --coverage-report ./build/coverage.xml

Сбор покрытия тестами

Команды test xunit, test yaxunit, test vanessa умеют собирать покрытие кода тестами: какие строки модулей конфигурации и расширений выполнились во время прогона. Результат - XML-отчёт в формате genericCoverage (SonarQube), Cobertura или Clover.

Сбор включается одной опцией --coverage-report - путём к файлу отчёта. Остальное работает по умолчанию: сервер отладки dbgs поднимается сам, исходники ищутся в ./src, процент покрытия считается автоматически.

bash
vrunner test yaxunit --ibconnection /F./ib --coverage-report ./build/coverage.xml

Пример вывода в консоль:

Включён сбор покрытия, отчёт: build/coverage.xml
...
Покрытие строк: 78% (покрыто 39 из 50)
Отчёт покрытия сформирован: build/coverage.xml

Опции

Опции покрытия одинаковы для всех трёх подкоманд test.

ОпцияПеременная окруженияОписание
--coverage-reportVRUNNER_COVERAGE_REPORTПуть к файлу отчёта. Если задан - покрытие собирается
--coverage-formatVRUNNER_COVERAGE_FORMATФормат отчёта: generic (по умолчанию), cobertura, clover
--coverage-srcVRUNNER_COVERAGE_SRCКаталог исходников конфигурации (по умолчанию ./src, поиск рекурсивный)
--coverage-ext-Каталог исходников расширения; можно указать несколько раз
--coverage-serverVRUNNER_COVERAGE_SERVERСервер отладки [хост:]порт: пусто или порт - поднять свой; хост:порт - подключиться к запущенному
--coverage-dbgsVRUNNER_COVERAGE_DBGSПуть к исполняемому файлу dbgs (по умолчанию - из установленной платформы)
--coverage-aliasVRUNNER_COVERAGE_ALIASИмя (алиас) ИБ для сеанса отладки (по умолчанию - из строки подключения)
--coverage-debug-pwdVRUNNER_COVERAGE_DEBUG_PWDПароль сервера отладки
--coverage-skip-linesVRUNNER_COVERAGE_SKIP_LINESНе рассчитывать покрываемые строки и процент покрытия

Покрытие несовместимо с --no-wait: клиент 1С должен завершиться до сбора данных, иначе команда завершается ошибкой.

Форматы отчёта

--coverage-formatФорматНазначение
generic (по умолчанию)genericCoverage XMLSonarQube: свойство sonar.coverageReportPaths
coberturaCobertura XMLJenkins, GitLab CI и др.
cloverClover XML

Каталог для файла отчёта создаётся автоматически.

Сервер отладки

Покрытие снимается через сервер отладки dbgs из поставки платформы 1С. Опция --coverage-server [хост:]порт задаёт, какой сервер использовать:

  • не задана или указан только порт (1550, :9000) - vrunner поднимает свой dbgs локально и останавливает его после прогона. Без порта берётся 1550, занятый порт подбирается автоматически; явно указанный занятый порт - ошибка;
  • указан хост (server:1550, server) - vrunner подключается к уже запущенному серверу отладки, в том числе на другой машине, и не останавливает его.

Путь к dbgs определяется по версии платформы (--v8version); переопределить его можно опцией --coverage-dbgs. При запуске через автономный сервер (--ibsrv) он подключается к тому же серверу отладки, и серверный код попадает в покрытие.

Клиент-серверные базы

Для серверной ИБ код тестов исполняется в процессе кластера (rphost). Чтобы собрать покрытие серверного кода, сервер отладки должен быть доступен кластеру, а на кластере должна быть разрешена отладка. Обычно dbgs поднимают на машине кластера и подключаются к нему через --coverage-server <хост>:<порт>.

Сопоставление с исходниками

Чтобы перевести исполненные строки модулей в строки файлов, нужны исходники в формате XML-выгрузки Конфигуратора или 1С:EDT (формат определяется автоматически):

  • конфигурация - каталог --coverage-src (по умолчанию ./src, поиск рекурсивный);
  • расширения - находятся в том же каталоге, а также задаются явно через --coverage-ext.

Если исходники не найдены, отчёт не формируется, а в лог выводится предупреждение с подсказкой проверить --coverage-src. Если ни один исполненный модуль не сопоставлен с файлом, отчёт формируется пустым, также с предупреждением.

Процент покрытия

Сервер отладки отдаёт только исполненные строки. Знаменатель - все покрываемые строки модулей - считает утилита lines-to-cover: самодостаточный бандл со своей JRE, устанавливать Java не нужно. При первом запуске покрытия утилита скачивается с GitHub в кеш и переиспользуется дальше; расчёт идёт в фоне параллельно с тестами. Непокрытые строки попадают в отчёт, в консоль выводится Покрытие строк: N% (покрыто X из Y).

Флаг --coverage-skip-lines отключает расчёт: отчёт содержит только исполненные строки, без процента и без загрузки утилиты.

Установка lines-to-cover вручную

Если автозагрузка недоступна (нет доступа в интернет), скачайте релиз утилиты, распакуйте в каталог с подпапками bin/ и lib/ и укажите его в autumn-properties.json (секция coverage верхнего уровня, вне vrunner):

json
{
  "coverage": {
    "lines-tool": {
      "home": "D:/tools/lines-to-cover"
    }
  }
}
КлючПо умолчаниюОписание
coverage.lines-tool.home-Каталог установленной утилиты (bin/, lib/); задан - загрузка не выполняется
coverage.lines-tool.version0.1.0Версия утилиты для автозагрузки
coverage.lines-tool.base-urlGitHub ReleasesБазовый URL загрузки релиза
coverage.lines-tool.tools-dir<temp>/vanessa-runner/toolsКаталог кеша загруженных утилит

Примеры

bash
# Покрытие конфигурации из ./src
vrunner test yaxunit \
  --ibconnection /F./ib \
  --coverage-report ./build/coverage.xml

# Конфигурация и расширение с тестами, формат Cobertura
vrunner test yaxunit \
  --ibconnection /F./ib \
  --ext МоиТесты \
  --coverage-report ./build/coverage.xml \
  --coverage-format cobertura \
  --coverage-src ./src \
  --coverage-ext ./tests-ext/src

# Только исполненные строки, без процента и загрузки lines-to-cover
vrunner test xunit \
  --ibconnection /F./ib \
  --coverage-report ./build/coverage.xml \
  --coverage-skip-lines \
  ./tests

# Клиент-серверная ИБ: сервер отладки на машине кластера
vrunner test yaxunit \
  --ibconnection "/S1c-server\MyBase" \
  --coverage-report ./build/coverage.xml \
  --coverage-server 1c-server:1550

validate - Проверка конфигурации

Статическая проверка: синтаксический контроль конфигурации через Конфигуратор и проверка проекта средствами 1С:EDT. Обе команды печатают замечания в лог, выгружают их в отчёт для CI (Отчёты о результатах) и завершаются с ошибкой при наличии замечаний.

bash
vrunner validate <подкоманда> [опции]

syntax-check

Выполняет проверку конфигурации Конфигуратором (/CheckConfig) в указанных режимах и по указанным целям. Без --ibconnection проверка выполняется во временной файловой базе - это имеет смысл вместе с --storage-name: конфигурация берётся из хранилища.

bash
vrunner validate syntax-check [опции]

Опции

ОпцияПеременная окруженияОписание
--mode-Режим проверки; можно указать несколько раз. По умолчанию: ThinClient, WebClient, Server, ExternalConnection, ThickClientOrdinaryApplication
--target-Что проверять: main, AllExtensions или имя расширения; можно указать несколько раз. По умолчанию - всё
--junitpathVRUNNER_JUNITPATH(устарела) Путь к файлу отчёта JUnit XML
--allure-resultsVRUNNER_ALLURE_RESULTS(устарела) Каталог результатов Allure 2
--exception-file-Файл исключений: UTF-8, по одной подстроке замечания на строку
--groupbymetadata-Группировать замечания в отчётах по объектам метаданных
--testsuitename-Имя тестового набора в отчёте (по умолчанию syntax-check)

Общие опции: подключение к ИБ, платформа, СУБД, хранилище конфигурации, отчёты, файл настроек.

Форматы --report-format: junit (по умолчанию), allure. Код возврата 1, если после фильтрации исключениями остались замечания.

Что проверять (--target)

Область проверки у платформы взаимоисключающая: за один запуск Конфигуратор проверяет либо основную конфигурацию, либо расширения. Поэтому каждая цель --target - отдельный запуск Конфигуратора и отдельная полная проверка.

ЗначениеЧто проверяется
не указаноосновная конфигурация и все расширения (два запуска)
mainтолько основная конфигурация
AllExtensionsвсе расширения базы одним запуском
<имя расширения>только это расширение; имя - как в базе (vrunner infobase extensions list)
  • AllExtensions поглощает перечисленные поимённо расширения: --target Расш1 --target AllExtensions даст один запуск по всем расширениям.
  • Порядок запусков: сначала основная конфигурация, затем расширения в порядке перечисления.
  • Если расширения с таким именем в базе нет, команда завершается ошибкой.
  • Значение AllExtensions в --mode (способ 2.x) равносильно --target AllExtensions.

Режимы проверки (--mode)

РежимОписание
ThinClientТонкий клиент
WebClientВеб-клиент
ServerСервер
ExternalConnectionВнешнее соединение
ExternalConnectionServerВнешнее соединение (клиент-серверный)
MobileClientМобильный клиент
MobileClientStandaloneМобильный клиент (автономный)
MobileAppClientМобильное приложение (клиент)
MobileAppServerМобильное приложение (сервер)
ThickClientManagedApplicationТолстый клиент (управляемое приложение)
ThickClientServerManagedApplicationТолстый клиент (управляемое, клиент-серверный)
ThickClientOrdinaryApplicationТолстый клиент (обычное приложение)
ThickClientServerOrdinaryApplicationТолстый клиент (обычное, клиент-серверный)
ConfigLogIntegrityПроверка логической целостности конфигурации
IncorrectReferencesПоиск некорректных ссылок
DistributiveModulesПоставка модулей без исходных текстов
UnreferenceProceduresПоиск неиспользуемых процедур и функций
HandlersExistenceПроверка существования назначенных обработчиков
EmptyHandlersПоиск пустых обработчиков
ExtendedModulesCheckРасширенная проверка модулей
CheckUseModalityПоиск использования модальности
CheckUseSynchronousCallsПоиск использования синхронных вызовов
UnsupportedFunctionalПоиск неподдерживаемой функциональности
AllExtensionsПроверка всех расширений (то же, что --target AllExtensions)

Файл исключений

Каждая строка файла --exception-file - подстрока замечания, которое нужно пропустить (регистр не важен). Многострочные замечания Конфигуратора склеиваются в одну строку, так что подстрока может быть и из фрагмента кода. Всегда пропускаются сообщения об обработчиках Подключаемый_ (нет ссылок на процедуру, пустой обработчик). Если файл не найден, выводится предупреждение и проверка идёт без него.

Структура отчёта

По умолчанию каждое замечание - отдельный тест-кейс с текстом замечания в имени. С --groupbymetadata тест-кейс создаётся на объект метаданных, а все его замечания попадают в failure по строке на каждое; у объектов расширения в имя входит имя расширения (ТестРасширения ОбщийМодуль.Расш1_Модуль1.Модуль). Замечания без привязки к объекту собираются в тест-кейс Синтаксическая проверка конфигурации. Успешная проверка тоже даёт один тест-кейс - пустой отчёт неотличим от прогона, который до отчёта не дошёл.

В результатах Allure у кейса проставляются метки suite (значение --testsuitename), package (объект метаданных) и severity.

Примеры

bash
# Несколько режимов, отчёт JUnit
vrunner validate syntax-check \
  --ibconnection /F./ib \
  --mode ThinClient \
  --mode Server \
  --mode WebClient \
  --report-format junit \
  --report-path ./build/reports/syntax.xml

# Только основная конфигурация, группировка по метаданным, файл исключений
vrunner validate syntax-check \
  --ibconnection /F./ib \
  --target main \
  --groupbymetadata \
  --exception-file ./syntax-check-exceptions.txt \
  --testsuitename "MyProject syntax check" \
  --report-format junit \
  --report-path ./build/reports/syntax.xml

# Конкретные расширения - по запуску на каждое
vrunner validate syntax-check --ibconnection /F./ib --target Расш1 --target Расш2

# JUnit и Allure за один прогон - путь становится каталогом
vrunner validate syntax-check \
  --ibconnection /F./ib \
  --report-format junit \
  --report-format allure \
  --report-path ./build/reports

edt

Выполняет штатную проверку EDT-проекта (1cedtcli validate), разбирает замечания и завершается с ошибкой, если есть замечания не ниже уровня --min-severity.

bash
vrunner validate edt [опции]

Опции

ОпцияПеременная окруженияОписание
--src, -sVRUNNER_SRCКаталог EDT-проекта (по умолчанию - текущий)
--min-severity-Уровень замечаний, начиная с которого команда завершается с ошибкой: critical, major (по умолчанию), minor, none
--reportVRUNNER_EDT_REPORT(устарела) Файл результатов в исходном формате 1С:EDT
--junitpathVRUNNER_JUNITPATH(устарела) Путь к файлу отчёта JUnit XML
--allure-resultsVRUNNER_ALLURE_RESULTS(устарела) Каталог результатов Allure 2
--testsuitename-Имя тестового набора в отчёте (по умолчанию edt)

Общие опции: формат исходников, EDT (--edt-*), отчёты, файл настроек.

Форматы --report-format: junit (по умолчанию), allure, edt. Формат edt - сырой файл результатов 1cedtcli validate (текст, по замечанию на строку, поля через табуляцию), который принимает, например, edt-ripper для загрузки в SonarQube.

Уровни важности (--min-severity)

ЗначениеКоманда завершается с ошибкой
criticalтолько при критических замечаниях
majorпри значительных и критических (по умолчанию)
minorпри любых замечаниях
noneникогда - только отчёт

В отчётах все замечания присутствуют независимо от порога: в JUnit блокирующие помечены как failure, в Allure - статус failed, остальные - broken. Метка package кейса Allure - категория замечания EDT, severity - его уровень (critical, normal, minor). Если 1cedtcli не создал файл результатов, команда завершается ошибкой с его выводом.

Примеры

bash
# Проверить EDT-проект в текущем каталоге (порог по умолчанию - major)
vrunner validate edt

# Конкретный проект и версия EDT, отчёт JUnit для CI
vrunner validate edt \
  --src ./edt-project \
  --edt-version 2024.1 \
  --report-format junit \
  --report-path ./build/reports/edt.xml

# Не падать на замечаниях, только собрать отчёт
vrunner validate edt --src ./edt-project --min-severity none --report-format junit --report-path ./build/reports/edt.xml

# Исходный отчёт EDT для SonarQube через edt-ripper
vrunner validate edt --src ./edt-project --min-severity none --report-format edt --report-path ./build/reports/edt-validate.tsv

# Несколько форматов за один прогон - путь становится каталогом
vrunner validate edt --src ./edt-project --report-format junit --report-format edt --report-path ./build/reports

vrunner compile / vrunner compileconf

Сборка конфигурации из XML-исходников в .cf. В 3.0 — vrunner cf compile <OUT>: документация.

Соответствие

2.x3.0
vrunner compile, vrunner compileconfvrunner cf compile [опции] <OUT>
--out ./build/1Cv8.cfпозиционный аргумент OUT (в командной строке, VRUNNER_CF_OUT или ключ out в файле настроек)
--src ./cf--src ./cf (-s), по умолчанию — текущий каталог
--ibconnectionнеобязательна: без неё создаётся временная файловая база
--ibcmd: сборка утилитой ibcmd вместо конфигуратора
Секции настроек compile, compileconfvrunner.cf.compile (ключи src, out)

Пример

Было (2.x):

bash
vrunner compile \
  --src ./cf \
  --out ./build/1Cv8.cf \
  --ibconnection /F./build/tmp-ib \
  --v8version 8.3.24

Стало (3.0):

bash
# Через ibcmd, без явной базы
vrunner cf compile --src ./cf --ibcmd ./build/1Cv8.cf

# Через конфигуратор с явной базой
vrunner cf compile \
  --src ./cf \
  --ibconnection /F./build/tmp-ib \
  --v8version 8.3.24 \
  ./build/1Cv8.cf

Файл настроек — было (vrunner.json):

json
{
  "compile": {
    "--src": "./cf",
    "--out": "./build/1Cv8.cf"
  }
}

Стало (autumn-properties.json):

json
{
  "vrunner": {
    "cf": {
      "compile": {
        "src": "./cf",
        "out": "./build/1Cv8.cf"
      }
    }
  }
}

vrunner compileepf

Сборка внешних обработок и отчётов .epf/.erf из XML-исходников. В 3.0 — vrunner epf compile [SRC]: документация.

Соответствие

2.x3.0
vrunner compileepf <inputPath> <outputPath>vrunner epf compile [опции] [SRC]
Позиционный inputPathпозиционный SRC (по умолчанию — текущий каталог)
Позиционный outputPathопция --out <каталог>
--recursive (-R): поиск обработок по подкаталогам
--ibcmd: сборка утилитой ibcmd; без --ibconnection создаётся временная база
Секция настроек compileepf, ключи inputPath, outputPathvrunner.epf.compile, ключи src, out (скрипт конвертации переименовывает)

Пример

Было (2.x):

bash
vrunner compileepf src/epf build/epf \
  --ibconnection /F./build/ib \
  --v8version 8.3.24

Стало (3.0):

bash
# Через ibcmd, рекурсивно по подкаталогам
vrunner epf compile --out ./build/epf --ibcmd -R ./src/epf

# Через конфигуратор
vrunner epf compile \
  --out ./build/epf \
  --ibconnection /F./build/ib \
  --v8version 8.3.24 \
  ./src/epf

Файл настроек — было (vrunner.json):

json
{
  "compileepf": {
    "inputPath": "./src/epf",
    "outputPath": "./build/epf"
  }
}

Стало (autumn-properties.json):

json
{
  "vrunner": {
    "epf": {
      "compile": {
        "src": "./src/epf",
        "out": "./build/epf"
      }
    }
  }
}

vrunner compileext

Сборка расширения конфигурации из XML-исходников в .cfe. В 3.0 — vrunner cfe compile <OUT>: документация.

Соответствие

2.x3.0
vrunner compileext <inputPath>vrunner cfe compile [опции] <OUT>
Позиционный inputPath--src <каталог> (-s), по умолчанию — текущий каталог
Выходной файл определялся автоматическипозиционный OUT — путь к .cfe (в командной строке, VRUNNER_CFE_OUT или ключ out в файле настроек)
--extensionName--extension-name (VRUNNER_EXTENSION_NAME); если не задано — имя каталога исходников
--ibcmd: сборка утилитой ibcmd; без --ibconnection создаётся временная база
Секция настроек compileext, ключи inputPath, extensionNamevrunner.cfe.compile, ключи src, extension-name (скрипт конвертации переименовывает); ключ out добавьте вручную

Пример

Было (2.x):

bash
vrunner compileext ./cfe/Доработки \
  --extensionName Доработки \
  --ibconnection /F./build/ib

Стало (3.0):

bash
# Через ibcmd
vrunner cfe compile --src ./cfe/Доработки --ibcmd ./build/Доработки.cfe

# Через конфигуратор с явной базой
vrunner cfe compile \
  --src ./cfe/Доработки \
  --extension-name Доработки \
  --ibconnection /F./build/ib \
  ./build/Доработки.cfe

Файл настроек — было (vrunner.json):

json
{
  "compileext": {
    "inputPath": "./cfe/Доработки",
    "extensionName": "Доработки"
  }
}

Стало (autumn-properties.json):

json
{
  "vrunner": {
    "cfe": {
      "compile": {
        "src": "./cfe/Доработки",
        "extension-name": "Доработки",
        "out": "./build/Доработки.cfe"
      }
    }
  }
}

vrunner decompile / vrunner decompileconf

Разборка .cf в XML-исходники. В 3.0 — vrunner cf decompile <OUT>: документация.

Соответствие

2.x3.0
vrunner decompile, vrunner decompileconfvrunner cf decompile [опции] <OUT>
--out ./cfпозиционный аргумент OUT (в командной строке или ключ out в файле настроек)
--in ./build/1Cv8.cf--cf-file ./build/1Cv8.cf (VRUNNER_CF_FILE); без неё выгружается конфигурация базы из --ibconnection
--ibcmd: разборка утилитой ibcmd вместо конфигуратора
Секции настроек decompile, decompileconfvrunner.cf.decompile; ключ incf-file переименуйте вручную

Пример

Было (2.x):

bash
vrunner decompile \
  --in ./build/1Cv8.cf \
  --out ./cf \
  --ibconnection /F./build/tmp-ib

Стало (3.0):

bash
# Из файла cf через ibcmd
vrunner cf decompile --cf-file ./build/1Cv8.cf --ibcmd ./cf

# Конфигурация базы через конфигуратор
vrunner cf decompile --ibconnection /F./build/ib ./cf

Файл настроек — было (vrunner.json):

json
{
  "decompile": {
    "--in": "./build/1Cv8.cf",
    "--out": "./cf"
  }
}

Стало (autumn-properties.json):

json
{
  "vrunner": {
    "cf": {
      "decompile": {
        "cf-file": "./build/1Cv8.cf",
        "out": "./cf"
      }
    }
  }
}

vrunner decompileepf

Разборка внешних обработок и отчётов .epf/.erf в XML-исходники. В 3.0 — vrunner epf decompile <SRC>: документация.

Соответствие

2.x3.0
vrunner decompileepf <inputPath> <outputPath>vrunner epf decompile [опции] <SRC>
Позиционный inputPathпозиционный SRC: файл .epf/.erf или каталог с ними (в командной строке или ключ src в файле настроек)
Позиционный outputPathопция --out <каталог>
--recursive (-R): поиск файлов по подкаталогам
--ibcmd: разборка утилитой ibcmd; без --ibconnection создаётся временная база
Секция настроек decompileepf, ключи inputPath, outputPathvrunner.epf.decompile, ключи src, out (скрипт конвертации переименовывает)

Пример

Было (2.x):

bash
vrunner decompileepf build/epf src/epf \
  --ibconnection /F./build/ib \
  --v8version 8.3.24

Стало (3.0):

bash
# Каталог с обработками через ibcmd
vrunner epf decompile --out ./src/epf --ibcmd ./build/epf

# Один файл через конфигуратор
vrunner epf decompile \
  --out ./src/epf/MyReport \
  --ibconnection /F./build/ib \
  --v8version 8.3.24 \
  ./build/epf/MyReport.epf

vrunner decompileext

Разборка расширения конфигурации в XML-исходники. В 3.0 — vrunner cfe decompile <OUT>: документация.

Соответствие

2.x3.0
vrunner decompileextvrunner cfe decompile [опции] <OUT>
--outputPath <каталог>позиционный OUT (в командной строке или ключ out в файле настроек)
--extensionName--extension-name (VRUNNER_EXTENSION_NAME), обязательна
Источник — расширение из базы --ibconnectionбез изменений; дополнительно --cfe-file <файл> (VRUNNER_CFE_FILE) разбирает файл .cfe — тогда база не нужна, создаётся временная
--ibcmd: разборка утилитой ibcmd
Секция настроек decompileext, ключи outputPath, extensionNamevrunner.cfe.decompile, ключи out, extension-name (скрипт конвертации переименовывает)

Пример

Было (2.x):

bash
vrunner decompileext \
  --extensionName Доработки \
  --outputPath ./cfe/Доработки \
  --ibconnection /F./build/ib

Стало (3.0):

bash
# Расширение из базы
vrunner cfe decompile \
  --extension-name Доработки \
  --ibconnection /F./build/ib \
  ./cfe/Доработки

# Файл cfe через ibcmd
vrunner cfe decompile \
  --cfe-file ./build/Доработки.cfe \
  --extension-name Доработки \
  --ibcmd \
  ./cfe/Доработки

Файл настроек — было (vrunner.json):

json
{
  "decompileext": {
    "extensionName": "Доработки",
    "outputPath": "./cfe/Доработки"
  }
}

Стало (autumn-properties.json):

json
{
  "vrunner": {
    "cfe": {
      "decompile": {
        "extension-name": "Доработки",
        "out": "./cfe/Доработки"
      }
    }
  }
}

vrunner designer

Запуск конфигуратора с параметрами подключения к базе и хранилищу. В 3.0 — vrunner run designer: документация.

Соответствие

2.x3.0
vrunner designervrunner run designer
--ibconnection, --db-user, --db-pwd, --v8version, --uccodeбез изменений
--storage-name, --storage-user, --storage-pwdбез изменений
Секция настроек designervrunner.run.designer

Пример

Было (2.x):

bash
vrunner designer \
  --ibconnection /Sserver1c/devib \
  --storage-name tcp://serverstorage/erp \
  --storage-user bot \
  --storage-pwd 123

Стало (3.0):

bash
vrunner run designer \
  --ibconnection /Sserver1c/devib \
  --storage-name tcp://serverstorage/erp \
  --storage-user bot \
  --storage-pwd 123

vrunner init-dev / vrunner update-dev

init-dev создавал информационную базу (с --storage — с загрузкой конфигурации из хранилища), update-dev обновлял конфигурацию БД. В 3.0 — vrunner infobase init и vrunner infobase update: документация.

Соответствие

2.x3.0
vrunner init-devvrunner infobase init
vrunner update-devvrunner infobase update
vrunner init-dev --storage --storage-name …три команды: infobase init, repo bind, infobase update (пример ниже)
--v1 / --v2--rtype v1 / --rtype v2 у infobase update; без опции режим реструктуризации не передаётся платформе
Секции настроек init-dev, update-devvrunner.infobase.init, vrunner.infobase.update; скрипт конвертации их не переносит

infobase init может сразу загрузить конфигурацию (--src: каталог исходников, .cf или .dt) и расширения (--ext, с --recursive — поиском по каталогам).

Пример

Было (2.x):

bash
vrunner init-dev \
  --ibconnection /F./build/ib \
  --storage \
  --storage-name tcp://serverstorage/erp \
  --storage-user bot \
  --storage-pwd 123

Стало (3.0):

bash
# 1. Создать пустую базу
vrunner infobase init --ibconnection /F./build/ib

# 2. Подключить к хранилищу: конфигурация базы заменяется конфигурацией хранилища
vrunner repo bind \
  --ibconnection /F./build/ib \
  --storage-name tcp://serverstorage/erp \
  --storage-user bot \
  --storage-pwd 123

# 3. Обновить конфигурацию БД
vrunner infobase update --ibconnection /F./build/ib

Обновление (update-dev) — было:

bash
vrunner update-dev --ibconnection /F./build/ib --v2

Стало:

bash
vrunner infobase update --ibconnection /F./build/ib --rtype v2

vrunner init-project

Создавала структуру нового проекта по шаблону: клонировала Git-репозиторий и предлагала установить пакеты gitsync, gitrules, precommit1c.

В 3.0 аналога нет. Секция init-project файла настроек скриптом конвертации не переносится.

Вместо команды клонируйте шаблон и установите пакеты вручную:

bash
git clone https://github.com/vanessa-opensource/vanessa-bootstrap.git my-project
cd my-project
opm install vanessa-runner
opm install gitsync

vrunner loadrepo

Обновление конфигурации информационной базы из хранилища. В 3.0 — vrunner repo load: документация.

Соответствие

2.x3.0
vrunner loadrepovrunner repo load
--storage-name, --storage-user, --storage-pwd, --storage-verбез изменений
RUNNER_storage_name, RUNNER_storage_user, RUNNER_storage_pwdVRUNNER_STORAGE_NAME, VRUNNER_STORAGE_USER, VRUNNER_STORAGE_PWD
Секция настроек loadrepovrunner.repo.load

repo load обновляет только конфигурацию; конфигурацию БД после этого обновляет vrunner infobase update.

Пример

Было (2.x):

bash
vrunner loadrepo \
  --ibconnection /F./build/ib \
  --storage-name tcp://serverstorage/erp \
  --storage-user bot \
  --storage-pwd 123

Стало (3.0):

bash
vrunner repo load \
  --ibconnection /F./build/ib \
  --storage-name tcp://serverstorage/erp \
  --storage-user bot \
  --storage-pwd 123

vrunner infobase update --ibconnection /F./build/ib

vrunner run

Запуск 1С:Предприятия с параметрами /C и /Execute. В 3.0 — vrunner run enterprise: документация.

Соответствие

2.x3.0
vrunner runvrunner run enterprise
--command, --execute, --uccode, --additionalбез изменений
--nocacheuseудалена: в 3.0 кеш списка баз не используется
--ordinaryapp 1--ordinaryapp (флаг без значения); --ordinaryapp 0 и -1 - просто не указывать. В настройках и VRUNNER_ORDINARYAPP значение 1 по-прежнему означает толстый клиент
RUNNER_*VRUNNER_* (VRUNNER_COMMAND, VRUNNER_EXECUTE, VRUNNER_ADDITIONAL)
Секция настроек runvrunner.run.enterprise

Пример

Было (2.x):

bash
vrunner run \
  --ibconnection /F./build/ib \
  --uccode godModeOFF \
  --nocacheuse \
  --command "ЗапуститьОбновлениеИБ;РежимОтладки;" \
  --execute "$runnerRoot/epf/ЗакрытьПредприятие.epf"

Стало (3.0):

bash
vrunner run enterprise \
  --ibconnection /F./build/ib \
  --uccode godModeOFF \
  --command "ЗапуститьОбновлениеИБ;РежимОтладки;" \
  --execute "$runnerRoot/epf/ЗакрытьПредприятие.epf"

Файл настроек — было (vrunner.json):

json
{
  "run": {
    "--uccode": "godModeOFF",
    "--command": "ЗапуститьОбновлениеИБ;РежимОтладки;"
  }
}

Стало (autumn-properties.json):

json
{
  "vrunner": {
    "run": {
      "enterprise": {
        "uccode": "godModeOFF",
        "command": "ЗапуститьОбновлениеИБ;РежимОтладки;"
      }
    }
  }
}

vrunner scheduledjobs lock / unlock

Блокировка и разблокировка регламентных заданий информационной базы через rac/ras. В 3.0 — vrunner cluster jobs lock / unlock: документация.

Соответствие

2.x3.0
vrunner scheduledjobs lockvrunner cluster jobs lock
vrunner scheduledjobs unlockvrunner cluster jobs unlock
--db <имя базы>--db-name <имя> (VRUNNER_IBNAME)
--ras, --rac, --db-user, --db-pwdбез изменений
Секции настроек не былообщие ключи в vrunner.cluster (ras, rac, db-name, cluster-admin, cluster-pwd)

Администратор кластера задаётся --cluster-admin/--cluster-pwd: Общие опции. Отключение отдельного регламентного задания по имени метаданных (БСП) — vrunner infobase scheduled-job disable <JOB>: документация.

Пример

Было (2.x):

bash
vrunner scheduledjobs lock \
  --ras localhost:1545 \
  --rac "C:\Program Files\1cv8\8.3.24\bin\rac.exe" \
  --db MyInfobase \
  --db-user Администратор \
  --db-pwd secret

Стало (3.0):

bash
vrunner cluster jobs lock \
  --ras localhost:1545 \
  --rac "C:\Program Files\1cv8\8.3.24\bin\rac.exe" \
  --db-name MyInfobase \
  --db-user Администратор \
  --db-pwd secret

Типичный цикл обслуживания в 3.0 (jobs locksession locksession kill → обновление → session unlockjobs unlock): cluster.


vrunner session lock / unlock / kill / closed

Управление сеансами информационной базы через rac/ras. В 3.0 — vrunner cluster session …: документация.

Соответствие

2.x3.0
vrunner session lockvrunner cluster session lock
vrunner session unlockvrunner cluster session unlock
vrunner session killvrunner cluster session kill
vrunner session closedvrunner cluster session closed
vrunner cluster session list [--connections] — список сеансов
--db <имя базы>--db-name <имя> (VRUNNER_IBNAME)
--ras, --rac, --db-user, --db-pwd, --uccodeбез изменений
--lockmessage <текст>--denied-message <текст>
--lockstartat <сек>, --lockendclearубраны: блокировка применяется сразу
--filter "appid=Designer;1CV8" (kill, closed)--filter-app "Designer;1CV8" — несколько раз или списком через ;
--filter "name=рег1;рег2" (kill, closed)--filter-name "рег1;рег2"
--mode EXCEPT--filter-except (флаг)
--mode ONLY, OFF, DEFAULT, ALLубраны: ONLY — поведение по умолчанию, OFF — запуск без отбора
--with-nolock (kill)--no-lock
kill: результат не проверялсяkill повторяет завершение зависших сеансов (по умолчанию 3 попытки с паузой 3 секунды; --retry <n> или --timeout <сек>) и завершается с кодом 1, если сеансы остались
closed: разовая проверка--timeout <сек> — ждать завершения, проверяя каждые 3 секунды; код возврата 1, если сеансы остались
Секции настроек не былообщие ключи в vrunner.cluster (ras, rac, db-name, cluster-admin, cluster-pwd) действуют для всех команд группы

Администратор кластера задаётся --cluster-admin/--cluster-pwd (VRUNNER_CLUSTERADMIN_USER/VRUNNER_CLUSTERADMIN_PWD), кластер — --cluster или --cluster-name: Общие опции.

Пример

Было (2.x):

bash
vrunner session lock \
  --ras localhost:1545 \
  --db MyInfobase \
  --db-user Администратор \
  --db-pwd secret \
  --uccode MySecretCode \
  --lockmessage "База закрыта на обслуживание"

vrunner session kill \
  --ras localhost:1545 \
  --db MyInfobase \
  --db-user Администратор \
  --db-pwd secret \
  --filter "appid=Designer|name=регламент" \
  --mode EXCEPT

Стало (3.0):

bash
vrunner cluster session lock \
  --ras localhost:1545 \
  --db-name MyInfobase \
  --db-user Администратор \
  --db-pwd secret \
  --uccode MySecretCode \
  --denied-message "База закрыта на обслуживание"

vrunner cluster session kill \
  --ras localhost:1545 \
  --db-name MyInfobase \
  --db-user Администратор \
  --db-pwd secret \
  --filter-app Designer \
  --filter-name регламент \
  --filter-except

Общие параметры кластера в autumn-properties.json:

json
{
  "vrunner": {
    "cluster": {
      "ras": "localhost:1545",
      "db-name": "MyInfobase",
      "cluster-admin": "ClusterAdmin",
      "cluster-pwd": "adminpwd"
    }
  }
}

Файл настроек и переменные окружения

В 3.0 изменились имя и формат файла настроек и префикс переменных окружения. Формат 3.0 описан на странице Файл настроек.

Скрипт конвертации

Скрипт tools/migrate26to30.os входит в пакет vanessa-runner (в установленном пакете: <каталог библиотек OneScript>/vanessa-runner/tools/migrate26to30.os):

bash
oscript tools/migrate26to30.os --input vrunner.json --output autumn-properties.json

Без параметров читает vrunner.json и пишет autumn-properties.json в текущем каталоге. Что делает:

  • убирает префикс -- у ключей и раскладывает секции команд по иерархии 3.0 (таблица ниже);
  • переименовывает ключи inputPathsrc, outputPathout, extensionNameextension-name, pathvanessabddrunner-path, testsPathtestspath;
  • у значений mode в syntax-check убирает ведущий дефис (-ThinClientThinClient);
  • в updatedb заменяет флаги --v1/--v2 ключом rtype;
  • предупреждает об устаревшем ключе --reportxunit.

Секции init-dev, update-dev, init-project и неизвестные секции не конвертируются: скрипт выводит предупреждение и завершается с кодом 1. Остальные ключи переносятся как есть, поэтому опции, переименованные в 3.0 (pathfeature-path у vanessa, incf-file у decompile), правятся вручную — см. страницы команд.

Формат

2.x3.0
Имя файлаvrunner.jsonautumn-properties.json
Ключ опции"--ibconnection""ibconnection"
Общие настройкисекция defaultкорень vrunner
Настройки командысекция xunitвложенный объект vrunner.test.xunit
Позиционный аргументtestsPath, --outимя аргумента в нижнем регистре: testspath, out

Ключ в корне vrunner действует для всех команд, ключ в объекте команды — только для неё и её подкоманд.

Маппинг секций

Секция 2.xПуть 3.0
defaultvrunner
xunitvrunner.test.xunit
vanessavrunner.test.vanessa
syntax-checkvrunner.validate.syntax-check
compile, compileconfvrunner.cf.compile
decompile, decompileconfvrunner.cf.decompile
compileepfvrunner.epf.compile
decompileepfvrunner.epf.decompile
compileextvrunner.cfe.compile
decompileextvrunner.cfe.decompile
updatedbvrunner.infobase.update
updatevrunner.cf.vendor-update
runvrunner.run.enterprise
loadrepovrunner.repo.load
designervrunner.run.designer
init-dev, update-dev, init-projectне конвертируются: init-dev, init-project

Пример

Было (vrunner.json):

json
{
  "default": {
    "--ibconnection": "/F./build/ib",
    "--v8version": "8.3.24"
  },
  "xunit": {
    "testsPath": "./tests",
    "--reportsxunit": "ГенераторОтчетаJUnitXML{build/junit.xml}"
  },
  "syntax-check": {
    "--groupbymetadata": true,
    "--mode": ["-ThinClient", "-Server"]
  },
  "updatedb": {
    "--uccode": "godModeOn",
    "--v2": true
  }
}

Стало (autumn-properties.json):

json
{
  "vrunner": {
    "ibconnection": "/F./build/ib",
    "v8version": "8.3.24",
    "test": {
      "xunit": {
        "testspath": "./tests",
        "reportsxunit": "ГенераторОтчетаJUnitXML{build/junit.xml}"
      }
    },
    "validate": {
      "syntax-check": {
        "groupbymetadata": true,
        "mode": ["ThinClient", "Server"]
      }
    },
    "infobase": {
      "update": {
        "uccode": "godModeOn",
        "rtype": "v2"
      }
    }
  }
}

Переменные окружения

Префикс RUNNER_ заменён на VRUNNER_. Обновите переменные в CI-файлах и скриптах сборки. Полный список переменных 3.0 — Переменные окружения.

2.x3.0
RUNNER_IBNAME (строка подключения)VRUNNER_IBCONNECTION
RUNNER_DBUSERVRUNNER_DBUSER
RUNNER_DBPWDVRUNNER_DBPWD
RUNNER_uccodeVRUNNER_UCCODE
RUNNER_v8versionVRUNNER_V8VERSION
RUNNER_VANESSASETTINGSVRUNNER_VANESSASETTINGS
RUNNER_PATHVANESSAVRUNNER_PATHVANESSA
RUNNER_WORKSPACEVRUNNER_WORKSPACE
RUNNER_TESTSPATHVRUNNER_TESTSPATH
RUNNER_PATHXUNITVRUNNER_PATHXUNIT
RUNNER_CONFIG_TESTSVRUNNER_CONFIG_TESTS
RUNNER_storage_nameVRUNNER_STORAGE_NAME
RUNNER_storage_userVRUNNER_STORAGE_USER
RUNNER_storage_pwdVRUNNER_STORAGE_PWD

VRUNNER_IBNAME в 3.0 — имя базы в кластере (--db-name) для команд cluster, а не строка подключения.

Опция --settings

--settings <файл> (VRUNNER_SETTINGS) сохранена, но файл читается в формате autumn-properties.json. Порядок применения файлов, переменных окружения и командной строки — Каскад приоритетов. Аналог env.json — локальный файл, на который проектный autumn-properties.json ссылается ключом settings: Опция settings.


vrunner syntax-check

Синтаксическая проверка конфигурации конфигуратором. В 3.0 — vrunner validate syntax-check: документация.

Соответствие

2.x3.0
vrunner syntax-checkvrunner validate syntax-check
--mode "-ThinClient" "-Server" (значения с дефисом)--mode ThinClient --mode Server (без дефиса, опция повторяется)
--groupbymetadata true--groupbymetadata (флаг)
--exception-file <файл>без изменений
--junitpath <файл>устарела; --report-format junit --report-path <файл>Отчёты
--allure-results <каталог> (Allure 1, XML)--report-format allure --report-path <каталог> (Allure 2, JSON); --allure-results работает, но устарела и пишет Allure 2
--allure-results2 <каталог>убрана; --report-format allure --report-path <каталог>
Область проверки: основная конфигурация; расширения — режимом -AllExtensionsПо умолчанию конфигурация и все расширения; --target main, --target AllExtensions или --target <имя> сужают область
Секция настроек syntax-checkvrunner.validate.syntax-check; дефисы в mode скрипт конвертации убирает

Значение --mode с ведущим дефисом в 3.0 воспринимается как неизвестная опция. Несколько форматов отчёта: --report-format junit --report-format allure --report-path ./build/reports — путь становится каталогом.

Пример

Было (2.x):

bash
vrunner syntax-check \
  --ibconnection /F./build/ib \
  --groupbymetadata true \
  --exception-file ./syntax-check-exceptions.txt \
  --junitpath ./build/syntax.xml \
  --mode "-ExtendedModulesCheck" "-ThinClient" "-Server"

Стало (3.0):

bash
vrunner validate syntax-check \
  --ibconnection /F./build/ib \
  --groupbymetadata \
  --exception-file ./syntax-check-exceptions.txt \
  --report-format junit \
  --report-path ./build/syntax.xml \
  --mode ExtendedModulesCheck \
  --mode ThinClient \
  --mode Server

Файл настроек — было (vrunner.json):

json
{
  "syntax-check": {
    "--groupbymetadata": true,
    "--exception-file": "./syntax-check-exceptions.txt",
    "--mode": ["-ExtendedModulesCheck", "-ThinClient", "-Server"]
  }
}

Стало (autumn-properties.json):

json
{
  "vrunner": {
    "validate": {
      "syntax-check": {
        "groupbymetadata": true,
        "exception-file": "./syntax-check-exceptions.txt",
        "report-format": ["junit"],
        "report-path": "./build/syntax.xml",
        "mode": ["ExtendedModulesCheck", "ThinClient", "Server"]
      }
    }
  }
}

vrunner update

Обновление конфигурации на поддержке из файла поставщика (.cf/.cfu, команда конфигуратора /UpdateCfg). В 3.0 — vrunner cf vendor-update: документация.

Соответствие

2.x3.0
vrunner updatevrunner cf vendor-update
--src (-s), шаблон $version в имени файлабез изменений; из нескольких подходящих файлов берётся старшая версия
--update-settings, --IncludeObjectsByUnresolvedRefs, --ClearUnresolvedRefs, --DumpListOfTwiceChangedProperties, --forceбез изменений
Обновление конфигурации БД отдельной командой updatedbвыполняется сразу после обновления; отключается флагом --no-update-db; режим реструктуризации — --rtype, --dynamic
Секция настроек updatevrunner.cf.vendor-update

Пример

Было (2.x):

bash
vrunner update \
  --src './updates/1cv8_$version.cfu' \
  --update-settings ./update-settings.xml \
  --ibconnection /F./build/ib \
  --force

vrunner updatedb --ibconnection /F./build/ib

Стало (3.0):

bash
vrunner cf vendor-update \
  --src './updates/1cv8_$version.cfu' \
  --update-settings ./update-settings.xml \
  --ibconnection /F./build/ib \
  --force

Файл настроек — было (vrunner.json):

json
{
  "update": {
    "--src": "./updates/1cv8_$version.cfu",
    "--update-settings": "./update-settings.xml"
  }
}

Стало (autumn-properties.json):

json
{
  "vrunner": {
    "cf": {
      "vendor-update": {
        "src": "./updates/1cv8_$version.cfu",
        "update-settings": "./update-settings.xml"
      }
    }
  }
}

vrunner updatedb

Обновление конфигурации БД. В 3.0 — vrunner infobase update: документация.

Соответствие

2.x3.0
vrunner updatedbvrunner infobase update
--v1 / --v2 (флаги)--rtype v1 / --rtype v2; без опции режим реструктуризации не передаётся платформе
--ibconnection, --db-user, --db-pwd, --v8version, --uccodeбез изменений
Секция настроек updatedb, ключи --v1/--v2vrunner.infobase.update, ключ rtype (скрипт конвертации переносит)

По умолчанию обновляются основная конфигурация и все расширения; --target main или --target <имя расширения> сужает область.

Пример

Было (2.x):

bash
vrunner updatedb \
  --ibconnection /F./build/ib \
  --uccode godModeOn \
  --v2

Стало (3.0):

bash
vrunner infobase update \
  --ibconnection /F./build/ib \
  --uccode godModeOn \
  --rtype v2

Файл настроек — было (vrunner.json):

json
{
  "updatedb": {
    "--uccode": "godModeOn",
    "--v2": true
  }
}

Стало (autumn-properties.json):

json
{
  "vrunner": {
    "infobase": {
      "update": {
        "uccode": "godModeOn",
        "rtype": "v2"
      }
    }
  }
}

vrunner vanessa

Запуск BDD-тестов Vanessa-ADD (bddRunner.epf). В 3.0 — vrunner test vanessa: документация.

Соответствие

2.x3.0
vrunner vanessavrunner test vanessa
--path <путь к фичам>--feature-path <путь>
--pathvanessa <bddRunner.epf>--bddrunner-path <путь>
--vanessasettings, --workspace, --tags-ignore, --tags-filter, --additional-keys, --additionalбез изменений
RUNNER_VANESSASETTINGS, RUNNER_WORKSPACE, RUNNER_PATHVANESSAVRUNNER_VANESSASETTINGS, VRUNNER_WORKSPACE, VRUNNER_PATHVANESSA
Секция настроек vanessavrunner.test.vanessa; ключ pathvanessa скрипт конвертации переименовывает в bddrunner-path, pathfeature-path — вручную

--feature-path несовместима с --ordinaryapp. Отчёты о результатах: --report-format/--report-pathОтчёты.

Пример

Было (2.x):

bash
vrunner vanessa \
  --ibconnection /F./build/ib \
  --vanessasettings ./tools/vb-conf.json \
  --workspace . \
  --path ./features

Стало (3.0):

bash
vrunner test vanessa \
  --ibconnection /F./build/ib \
  --vanessasettings ./tools/vb-conf.json \
  --workspace . \
  --feature-path ./features

Файл настроек — было (vrunner.json):

json
{
  "vanessa": {
    "--vanessasettings": "./tools/vb-conf.json",
    "--workspace": ".",
    "--path": "./features"
  }
}

Стало (autumn-properties.json):

json
{
  "vrunner": {
    "test": {
      "vanessa": {
        "vanessasettings": "./tools/vb-conf.json",
        "workspace": ".",
        "feature-path": "./features"
      }
    }
  }
}

vrunner xunit

Запуск модульных тестов xUnitFor1C (xddTestRunner.epf). В 3.0 — vrunner test xunit <TESTSPATH>: документация.

Соответствие

2.x3.0
vrunner xunit <путь> [опции]vrunner test xunit [опции] <TESTSPATH> — опции до пути к тестам
--reportsxunit "ГенераторОтчетаJUnitXML{путь}"--report-format junit --report-path <путь>Отчёты. --reportsxunit работает, но устарела; кроме имён генераторов принимает краткие форматы junit, allure, json, mxl, genericexecution
--reportxunit <каталог>устарела; --report-format junit --report-path <путь>
--pathxunit, --workspace, --xddExitCodePath, --xddConfig, --testclient, --config-testsбез изменений
$addRoot/tests/smokeбез изменений; $addRoot — каталог установки vanessa-add
RUNNER_TESTSPATH, RUNNER_PATHXUNIT, RUNNER_CONFIG_TESTSVRUNNER_TESTSPATH, VRUNNER_PATHXUNIT, VRUNNER_CONFIG_TESTS
Секция настроек xunit, ключ testsPathvrunner.test.xunit, ключ testspath (скрипт конвертации переименовывает)

Несколько форматов за один прогон: --report-format junit --report-format allure --report-path ./build/reports — путь становится каталогом.

Пример

Было (2.x):

bash
vrunner xunit ./tests \
  --ibconnection /F./build/ib \
  --reportsxunit "ГенераторОтчетаJUnitXML{build/junit.xml}"

Стало (3.0):

bash
vrunner test xunit \
  --ibconnection /F./build/ib \
  --report-format junit \
  --report-path ./build/junit.xml \
  ./tests

Файл настроек — было (vrunner.json):

json
{
  "xunit": {
    "testsPath": "./tests",
    "--reportsxunit": "ГенераторОтчетаJUnitXML{build/junit.xml};ГенераторОтчетаAllureXMLВерсия2{build/allure}",
    "--xddExitCodePath": "build/xddExitCodePath.txt"
  }
}

Стало (autumn-properties.json):

json
{
  "vrunner": {
    "test": {
      "xunit": {
        "testspath": "./tests",
        "report-format": ["junit", "allure"],
        "report-path": "./build/reports",
        "xddExitCodePath": "build/xddExitCodePath.txt"
      }
    }
  }
}

В POSIX-оболочках $addRoot экранируйте, чтобы макрос дошёл до vrunner: vrunner test xunit --ibconnection /F./build/ib '$addRoot/tests/smoke'.


Файл настроек (autumn-properties.json)

Значения опций и аргументов команд можно задавать в файле autumn-properties.json в рабочем каталоге, из которого запускается vrunner (как правило, корень проекта). Всё, что в нём задано, подставляется в незаполненные опции команды.

Формат файла

Ключи лежат в секции vrunner. Ключ - имя опции из справки команды без -- (src, db-user, ibcmd); позиционный аргумент (OUT, SRC, IN, TESTSPATH) - его имя в нижнем регистре. Значения можно задавать для всех команд сразу, для группы или для конкретной команды:

json
{
  "vrunner": {
    "<опция>": "<значение>",
    "<группа>": {
      "<опция>": "<значение>",
      "<подкоманда>": {
        "<опция>": "<значение>"
      }
    }
  }
}

Поиск идёт от команды к корню: для vrunner cf compile --src проверяются vrunner.cf.compile.src, затем vrunner.cf.src, затем vrunner.src. Флаги задаются как true/false, повторяемые опции (--report-format) - массивом.

Схема для редактора

К каждому релизу прилагается JSON Schema файла настроек vrunner-settings-schema.json: она строится по опциям команд и знает все ключи, их типы и допустимые значения. Ключ $schema включает подсказки и проверку в редакторе:

json
{
  "$schema": "https://github.com/vanessa-opensource/vanessa-runner/releases/latest/download/vrunner-settings-schema.json",
  "vrunner": {
    "ibconnection": "/F./build/ib"
  }
}

Приоритеты

От высшего к низшему:

  1. Аргументы и опции командной строки.
  2. Переменные окружения опций (VRUNNER_*).
  3. Файл из опции settings (см. ниже).
  4. autumn-properties.json в рабочем каталоге.
  5. Значения по умолчанию из пакета vanessa-runner.

Настройки из файлов заполняют только те опции, которые не заданы в командной строке и переменных окружения.

Опция settings

settings - глобальная опция, доступная всем командам. Задаётся в командной строке (--settings <файл> или --settings=<файл>), переменной окружения VRUNNER_SETTINGS или ключом settings на верхнем уровне секции vrunner (внутри групп и команд ключ не действует). Значение - путь к ещё одному файлу с теми же ключами; он накладывается поверх autumn-properties.json рабочего каталога. Формат определяется по расширению: .json или .yaml (.yml). Относительный путь считается от рабочего каталога.

Файл, заданный в командной строке или переменной окружения, обязан существовать: иначе команда завершается ошибкой Файл настроек не найден. Файл из ключа settings необязателен: если его нет, действуют настройки проекта. Ключ settings внутри самого дополнительного файла не обрабатывается.

Локальные настройки разработчика

Проектный autumn-properties.json лежит в репозитории и одинаков у всех, а строка подключения, версия платформы, пути к EDT и Vanessa у каждого разработчика свои. Проектный файл ключом settings указывает на локальный файл, который в репозиторий не попадает:

json
{
  "vrunner": {
    "settings": "autumn-properties.local.json",
    "v8version": "8.3.24",
    "cf": {
      "compile": {
        "src": "./src",
        "out": "./build/1Cv8.cf"
      }
    }
  }
}

Локальный файл содержит только личные значения:

json
{
  "vrunner": {
    "ibconnection": "/FD:/bases/MyProject",
    "v8version": "8.3.25"
  }
}

vrunner cf compile у всех разработчиков и в CI запускается одинаково: src и out берутся из проектного файла, ibconnection и v8version - из локального; там, где локального файла нет, действуют проектные значения. Добавьте локальный файл в .gitignore:

gitignore
autumn-properties.local.json

Примеры

Подключение и платформа для всех команд

json
{
  "vrunner": {
    "ibconnection": "/FD:/bases/MyProject",
    "db-user": "Администратор",
    "db-pwd": "",
    "v8version": "8.3.24"
  }
}

Настройки группы и команды

json
{
  "vrunner": {
    "ibconnection": "/F./build/ib",
    "cf": {
      "compile": {
        "src": "./src"
      }
    },
    "repo": {
      "storage-name": "D:/repos/MyProject",
      "storage-user": "StorageUser"
    }
  }
}

storage-name и storage-user действуют для всех команд repo.

Обязательные аргументы и опции

Обязательные позиционные аргументы и опции, например extension-name у cfe decompile, тоже задаются в файле настроек. Если значение не задано ни в командной строке, ни в переменной окружения, ни в файле, команда завершается ошибкой и подсказывает ключ настройки.

json
{
  "vrunner": {
    "cf": {
      "compile": {
        "out": "./build/1Cv8.cf"
      }
    },
    "test": {
      "xunit": {
        "testspath": "./tests"
      }
    }
  }
}

С таким файлом vrunner cf compile и vrunner test xunit запускаются без аргументов.

CI

json
{
  "vrunner": {
    "v8version": "8.3.24",
    "ibcmd": true,
    "test": {
      "xunit": {
        "testspath": "./tests",
        "report-format": ["junit"],
        "report-path": "./build/reports/junit.xml"
      }
    }
  }
}

Логирование

Потоки вывода

По умолчанию лог (ИНФОРМАЦИЯ - ..., ОШИБКА - ...) и данные команд идут в stdout. Ключ log-output со значением stderr переводит лог в stderr; в stdout остаются только данные команд (JSON, таблицы, списки), и их можно разбирать, не вычищая строки лога:

json
{
  "vrunner": {
    "log-output": "stderr"
  }
}
bash
vrunner infobase extensions list --json --ibconnection /F./ib | jq '.[].имя'

Значения: stdout (по умолчанию) и stderr. Для разового запуска ключ задаётся переменной окружения VRUNNER_LOG_OUTPUT; она сильнее файла настроек.

При stderr в терминале оба потока видны вместе, а при перенаправлении vrunner ... > out.txt в файл попадают только данные. Чтобы сохранить и лог, перенаправьте оба потока: vrunner ... > out.txt 2>&1.

Уровни

Уровень логирования задаётся в секции logos того же файла:

json
{
  "logos": {
    "logger": {
      "vrunner": "DEBUG"
    }
  }
}

Доступные уровни: DEBUG, INFO, WARN, ERROR. В отладочном логе видно, какой файл настроек применён и откуда взято значение каждой опции.


Переменные окружения

Часть опций и аргументов можно задать переменными окружения - удобно в CI, где параметры подключения нежелательно передавать в командной строке. Переменная опции показана в справке команды (vrunner <команда> --help, пометка env $VRUNNER_...).

Переменная окружения слабее аргумента командной строки и сильнее файла настроек. Флаги включаются значением true.

Подключение к ИБ

ПеременнаяОпцияОписание
VRUNNER_IBCONNECTION--ibconnectionСтрока подключения (/F<путь> или /S<сервер>\<база>)
VRUNNER_DBUSER--db-userПользователь информационной базы
VRUNNER_DBPWD--db-pwdПароль пользователя ИБ

Платформа

ПеременнаяОпцияОписание
VRUNNER_V8VERSION--v8versionВерсия платформы 1С
VRUNNER_UCCODE--uccodeКод разрешения
VRUNNER_LANGUAGE--languageЯзык платформы
VRUNNER_LOCALE--localeЯзык сеанса (локаль)

СУБД

ПеременнаяОпцияОписание
VRUNNER_DBMS_TYPE--dbms-typeТип СУБД: MSSQLServer, PostgreSQL, IBMDB2, OracleDatabase
VRUNNER_DBMS_SERVER--dbms-serverАдрес сервера СУБД
VRUNNER_DBMS_BASE--dbms-baseИмя базы данных СУБД
VRUNNER_DBMS_USER--dbms-userПользователь СУБД
VRUNNER_DBMS_PWD--dbms-pwdПароль СУБД

Хранилище конфигурации

ПеременнаяОпцияОписание
VRUNNER_STORAGE_NAME--storage-nameАдрес хранилища
VRUNNER_STORAGE_USER--storage-userПользователь хранилища
VRUNNER_STORAGE_PWD--storage-pwdПароль хранилища
VRUNNER_STORAGE_VER--storage-verНомер версии хранилища

Кластер серверов

ПеременнаяОпцияОписание
VRUNNER_RAS--rasАдрес RAS (по умолчанию localhost:1545)
VRUNNER_RAC--racПуть к утилите rac
VRUNNER_IBNAME--db-nameИмя ИБ в кластере
VRUNNER_CLUSTERADMIN_USER--cluster-adminАдминистратор кластера
VRUNNER_CLUSTERADMIN_PWD--cluster-pwdПароль администратора кластера

Запуск клиента

ПеременнаяОпцияОписание
VRUNNER_ORDINARYAPP--ordinaryappТолстый клиент: 1/true
VRUNNER_ADDITIONAL--additionalДополнительные параметры запуска платформы (также run designer)
VRUNNER_IBSRV--ibsrvЗапускать через автономный сервер ibsrv (только файловые ИБ)
VRUNNER_IBSRV_DIRECT--ibsrv-directПрямое соединение с ibsrv вместо WS
VRUNNER_IBSRV_DEBUG--ibsrv-debugВключить порт отладки ibsrv
VRUNNER_IBSRV_ATTACH--ibsrv-attachПодключиться к уже запущенному ibsrv
VRUNNER_IBSRV_PORT--ibsrv-portПорт ibsrv
VRUNNER_COMMAND--commandПараметр запуска /C (run enterprise)
VRUNNER_EXECUTE--executeВнешняя обработка для запуска (run enterprise)

Исходники и файлы

ПеременнаяОпцияОписание
VRUNNER_SRC--srcКаталог исходников: cf compile, cf convert, cfe compile, cfe convert, epf convert, validate edt
VRUNNER_SOURCE--srcИсточник конфигурации: infobase init, infobase update
VRUNNER_CF_OUTOUTФайл .cf для cf compile
VRUNNER_CFE_OUTOUTФайл .cfe для cfe compile
VRUNNER_CF_FILE--cf-fileФайл .cf для cf decompile
VRUNNER_CFE_FILE--cfe-fileФайл .cfe для cfe decompile
VRUNNER_EXTENSION_NAME--extension-nameИмя расширения: cfe compile, cfe decompile, cfe load, cfe unload

EDT

ПеременнаяОпцияОписание
VRUNNER_EDT_PATH--edt-pathПуть к 1cedtcli или каталогу установки EDT
VRUNNER_EDT_VERSION--edt-versionВерсия EDT для выбора среди установленных
VRUNNER_EDT_WORKSPACE--edt-workspaceБазовый каталог рабочей области EDT
VRUNNER_EDT_TIMEOUT--edt-timeoutТаймаут операций 1cedtcli, сек
VRUNNER_EDT_VMARGS--edt-vmargsДополнительный JVM-аргумент для 1cedtcli

Тестирование

ПеременнаяОпцияОписание
VRUNNER_TESTSPATHTESTSPATHПуть к тестам test xunit
VRUNNER_PATHXUNIT--pathxunitПуть к xddTestRunner.epf
VRUNNER_CONFIG_TESTS--config-testsЗагружать тесты, встроенные в конфигурацию
VRUNNER_FEATUREPATH--feature-pathПуть к фичам test vanessa
VRUNNER_PATHVANESSA--bddrunner-pathПуть к bddRunner.epf
VRUNNER_VANESSASETTINGS--vanessasettingsПуть к настройкам Vanessa
VRUNNER_WORKSPACE--workspaceПапка проекта: test xunit, test vanessa, test yaxunit
VRUNNER_YAXUNIT_CONFIG--yaxunit-configГотовый yaxunit.json
VRUNNER_YAXUNIT_EXT--extРасширения с тестами YAxUnit
VRUNNER_YAXUNIT_EXITCODE--exitcodeФайл кода возврата test yaxunit
VRUNNER_PROJECT_PATH--project-pathКаталог проекта для test yaxunit

Отчёты и покрытие

ПеременнаяОпцияОписание
VRUNNER_REPORT_PATH--report-pathКуда выгрузить отчёт (подробнее)
VRUNNER_COVERAGE_REPORT--coverage-reportФайл отчёта покрытия; задан - покрытие включено (подробнее)
VRUNNER_COVERAGE_FORMAT--coverage-formatФормат отчёта покрытия
VRUNNER_COVERAGE_SRC--coverage-srcКаталог исходников конфигурации для сопоставления модулей
VRUNNER_COVERAGE_SERVER--coverage-serverСервер отладки [хост:]порт
VRUNNER_COVERAGE_DBGS--coverage-dbgsПуть к dbgs
VRUNNER_COVERAGE_ALIAS--coverage-aliasИмя ИБ для сессии отладки
VRUNNER_COVERAGE_DEBUG_PWD--coverage-debug-pwdПароль сервера отладки
VRUNNER_COVERAGE_SKIP_LINES--coverage-skip-linesНе рассчитывать покрываемые строки

Устаревшие переменные отчётов продолжают работать: VRUNNER_JUNITPATH (--junitpath), VRUNNER_ALLURE_RESULTS (--allure-results), VRUNNER_REPORTSXUNIT (--reportsxunit), VRUNNER_YAXUNIT_REPORT (--report в test yaxunit), VRUNNER_EDT_REPORT (--report в validate edt). Замена - --report-format и --report-path. Формат отчёта переменной окружения не имеет.

Настройки и лог

ПеременнаяОпцияОписание
VRUNNER_SETTINGS--settingsПуть к файлу настроек (JSON); файл обязан существовать
VRUNNER_LOG_OUTPUT-Куда писать лог: stdout (по умолчанию) или stderr, см. Потоки вывода

Ключи файла настроек через окружение

Любой ключ файла настроек можно задать переменной окружения: имя ключа в верхнем регистре, точки заменены на _. Так задаются опции, у которых нет своей переменной, например флаг --ibcmd:

bash
export VRUNNER_IBCMD=true                       # vrunner.ibcmd - для всех команд
export VRUNNER_CF_COMPILE_OUT=./build/App.cf    # vrunner.cf.compile.out

Такая переменная действует, только если тот же ключ не задан ни в одном файле настроек: значение из файла сильнее. Для опций с дефисом в имени (db-user) используйте их собственные переменные.

Пример для CI

bash
export VRUNNER_IBCONNECTION="/S1c-server\MyBase"
export VRUNNER_DBUSER=Admin
export VRUNNER_DBPWD=$SECRET_IB_PWD
export VRUNNER_V8VERSION=8.3.24
export VRUNNER_IBCMD=true
export VRUNNER_DBMS_TYPE=PostgreSQL
export VRUNNER_DBMS_SERVER=pg.internal
export VRUNNER_DBMS_BASE=my_db
export VRUNNER_DBMS_USER=postgres
export VRUNNER_DBMS_PWD=$SECRET_PG_PWD

vrunner infobase update --src ./build/MyApp.cf
vrunner test xunit --report-format junit --report-path ./build/reports/junit.xml ./tests

Установка

Требования

  • OneScript 2.0.0 и выше.
  • Платформа 1С:Предприятие 8.3 - для команд, работающих с базами, конфигуратором, ibcmd и rac.

Установка через opm

bash
opm install vanessa-runner

Вместе с пакетом ставятся команды vrunner (синоним vanessa-runner) и vrunner-mcp (MCP-сервер); они доступны из любого каталога, как и oscript.

Проверка:

bash
vrunner --version

Команда выводит номер установленной версии.

Установка vanessa-add

Для test xunit и test vanessa нужны обработки Vanessa-ADD (xddTestRunner.epf, bddRunner.epf):

bash
opm install add

vrunner находит пакет в каталоге lib/add рядом с OneScript; этот же каталог подставляется в макрос $addRoot. Обработки из другого места указываются опциями --pathxunit и --bddrunner-path.

Обновление

bash
opm update vanessa-runner

WARNING

На Windows запущенный MCP-сервер держит загруженной нативную библиотеку из каталога установки, и обновление завершается ошибкой Access to the path '...\1script_change_indexer.dll' is denied. Перед обновлением остановите сервер: отключите его в клиенте или завершите процесс oscript/vrunner-mcp, запущенный из каталога установки.

Установка из исходников

bash
git clone https://github.com/vanessa-opensource/vanessa-runner.git
cd vanessa-runner
opm install -l
opm build .
opm install -f vanessa-runner-*.ospx

opm install -l ставит зависимости в oscript_modules/, opm build . собирает пакет и попутно компилирует служебные обработки из epf/ (нужна платформа 1С). Без установки пакета vrunner запускается прямо из каталога репозитория: oscript src/main.os <команда>; служебные обработки в этом случае собираются командой oscript src/main.os epf compile -R epf.


Первые шаги

Синтаксис команд

bash
vrunner <группа> <подкоманда> [опции] [аргумент]

Опции указываются до позиционного аргумента:

bash
# Собрать конфигурацию из исходников
vrunner cf compile --src ./src ./build/MyApp.cf

# Разобрать cf-файл в исходники
vrunner cf decompile --cf-file ./build/MyApp.cf ./src

# Создать базу и загрузить в неё конфигурацию
vrunner infobase init --src ./build/MyApp.cf --ibconnection /FD:/bases/MyApp

# Запустить xUnit-тесты
vrunner test xunit --ibconnection /FD:/bases/MyApp ./tests

Список групп и подкоманд - в справочнике команд, общие для многих команд опции (подключение к базе, --ibcmd, платформа, СУБД) - на странице Общие опции.

Справка

Справка выводится флагом --help на любом уровне:

bash
vrunner --help
vrunner cf --help
vrunner cf compile --help

Формы vrunner help cf и vrunner cf help не работают.

База по умолчанию

Если --ibconnection не указан, infobase init создаёт файловую базу в каталоге build/ib текущего каталога, а команды обслуживания базы (infobase update, infobase extensions, cfe load) работают с ней же. Команды сборки и разборки (cf compile, cf decompile, cfe compile, epf compile) без базы создают временную. Подробнее: Общие опции.

Настройки проекта

Повторяющиеся опции выносятся в файл autumn-properties.json в каталоге проекта:

json
{
  "vrunner": {
    "ibconnection": "/FD:/bases/MyApp",
    "v8version": "8.3.24",
    "db-user": "Администратор"
  }
}

Значение из командной строки сильнее переменной окружения, а та - сильнее файла. Подробнее: Файл настроек, Переменные окружения.

Пример для CI

bash
# 1. Создать базу из cf-файла (по умолчанию - build/ib)
vrunner infobase init --src ./build/MyApp.cf

# 2. Обновить конфигурацию базы из исходников
vrunner infobase update --src ./src

# 3. Прогнать тесты с отчётом JUnit
vrunner test xunit \
  --ibconnection /F./build/ib \
  --report-format junit \
  --report-path ./build/reports/junit.xml \
  ./tests