vrunner 3.0: база из исходников, проверка синтаксиса и выгрузка dt командами консоли

01.10.26

Разработка - DevOps и автоматизация разработки

Команды Vanessa-runner 3.0 для сборки базы 1С из исходников, проверки синтаксиса с отчётом JUnit и выгрузки dt. Всё прогнано на платформе 8.3.27.2130 и vrunner 3.0.2, с кодами возврата и временем. Команды версии 2.x на 3.0 не работают: разбираем, чем их заменить.
КДПВ: vrunner 3.0: база из исходников, проверка синтаксиса и выгрузка dt командами консоли
🚀 DevOps, CI/CD & Архитектура

Для кого: программисты и DevOps-инженеры 1С, которые переносят сборку и проверку конфигурации в консоль или в CI.

🎯 О ЧЁМ СТАТЬЯ ЗА 60 СЕКУНД

В vanessa-runner 3.0 команды сгруппированы заново (infobase, validate, test, cf, cfe, run), а вызовы версии 2.x (init-dev, load, vanessa) на 3.0.2 завершаются ошибкой. Цепочка infobase init, validate syntax-check, infobase dump-dt прогнана на платформе 8.3.27.2130 с кодами возврата и отчётом JUnit. Запуск тестов проверен только по справке команд.

Большинство инструкций по vanessa-runner написаны для версий 1.x и 2.x. В версии 3.0 команды сгруппированы иначе, и старые вызовы перестали работать. На vanessa-runner 3.0.2 команды vrunner init-dev, vrunner load, vrunner vanessa и vrunner run --mode config завершаются ошибкой «Ошибка чтения параметров команды». Ниже описаны команды, которые запускались на этой версии, с кодами возврата и временем.

📥 Установка

Для vanessa-runner 3.0 нужен OneScript 2.0.0 или новее (требование из README проекта). Пакет ставится менеджером OPM:

opm install vanessa-runner

Пакет называется vanessa-runner. Попытка поставить пакет vrunner заканчивается сообщением «Пакет не найден». Исполняемый файл называется vrunner.

Глобальная установка кладёт vrunner в каталог библиотек OneScript. Локальная (opm install -l vanessa-runner) создаёт в текущем каталоге oscript_modules\bin\vrunner.bat; этот каталог добавляют в PATH на время работы. Проверка версии:

vrunner --version
3.0.2

📋 Какие команды есть в версии 3.0

Команды образуют группы. Список получен из vrunner --help и vrunner <группа> --help:

Группа Подкоманды
run enterprise, designer
infobase init, update, restore-dt, dump-dt, create-user, scheduled-job, lock-resources, extensions
cf load, unload, compile, decompile, compare, merge, make-dist, convert, vendor-update
cfe load, unload, compile, decompile, compare, convert
epf compile, decompile, convert
test vanessa, xunit, yaxunit
validate syntax-check, edt
repo create, bind, load, commit, lock, unlock и другие операции с хранилищем
cluster session, jobs, info, create, remove

Соответствие старым командам, которое даёт README проекта: vrunner vanessa стал vrunner test vanessa, vrunner updatedb стал vrunner infobase update, vrunner syntax-check стал vrunner validate syntax-check. Переменные окружения переименованы с префикса RUNNER_ на VRUNNER_.

💻 Стенд для проверки

Исходники: пустая конфигурация, выгруженная платформой (/DumpConfigToFiles), и один общий модуль ОбщегоНазначенияПример с функцией:

BSL UTF-8 Открыть файл
1
2
3
Функция Сумма(А, Б) Экспорт
	Возврат А + Б;
КонецФункции

Платформа 8.3.27.2130 (x86), файловая база, Windows 11. Время в статье получено на такой малой конфигурации и показывает расходы на запуск платформы. Скорость на конфигурации в тысячи объектов нужно мерять отдельно.

🧱 Создать базу из исходников

vrunner infobase init --src src --ibconnection "/FC:\work\ib-test\ib"

Команда создала файловую базу, загрузила конфигурацию из каталога XML и обновила конфигурацию базы данных. Ушло 23,8 с, код возврата 0. Формат исходников (XML Конфигуратора или EDT) определяется автоматически, ключ --src-format задаёт его явно. Для расширений есть ключ --ext, его можно указать несколько раз. В справке команды есть и ключ --ibcmd (работать через утилиту ibcmd вместо Конфигуратора): в нашей установке платформы ibcmd не было, ключ не запускался.

🩺 Проверить синтаксис и получить отчёт

vrunner validate syntax-check --mode Server --mode ThinClient --report-format junit --report-path build\junit.xml

На корректном модуле команда отработала за 17,9 с с кодом 0, в отчёте JUnit один тест без ошибок. Затем в модуль добавлена ошибка Возврат А + ;. Результат:

ПРЕДУПРЕЖДЕНИЕ - {ОбщийМодуль.ОбщегоНазначенияПример.Модуль(2,13)}: Ошибка в выражении	Возврат А +<<?>> ; (Проверка: Сервер)

Код возврата 1, в отчёте JUnit failures="1" с той же строкой. Такой код и такой отчёт понимает любой CI.

Режимы проверки перечислены в справке vrunner validate syntax-check --help: ThinClient, WebClient, Server, ExternalConnection, ThickClientManagedApplication и другие, включая UnreferenceProcedures, EmptyHandlers, CheckUseModality. Ключ --mode можно указывать несколько раз. --target выбирает, что проверять: main, AllExtensions или расширение по имени.

Важное наблюдение по порядку шагов. Команда infobase update загрузила модуль с синтаксической ошибкой без единого предупреждения и завершилась с кодом 0 (26,9 с). Синтаксис проверяет только validate syntax-check, поэтому в цепочке он должен идти после каждой загрузки.

3.0.2
Версия vrunner
23,8 с
init базы из XML
17,4 с
syntax-check (код 0 или 1)
12,7 с
dump-dt

Замер автора: Windows 11, платформа 8.3.27.2130 (x86), файловая база, конфигурация из одного общего модуля, одна серия. Время показывает расходы на запуск платформы, а не скорость на большой конфигурации.

🔧 Настройки в файле и переменные окружения

Повторять --ibconnection в каждой команде не нужно. Первый вариант - файл autumn-properties.json в текущем каталоге:

JSON UTF-8 Открыть файл
1
2
3
4
5
6
7
8
9
10
11
12
{
  "vrunner": {
    "ibconnection": "/FC:\\work\\ib-test\\ib",
    "validate": {
      "syntax-check": {
        "mode": ["Server", "ThinClient"],
        "report-format": ["junit"],
        "report-path": "./build/junit.xml"
      }
    }
  }
}

С таким файлом команда vrunner validate syntax-check без единого ключа выполнила проверку и записала отчёт по указанному пути (18,3 с). Второй вариант - переменные окружения: VRUNNER_IBCONNECTION задаёт строку подключения для всех команд сессии, в справке команд перед каждой переменной стоит env $VRUNNER_.... Проверка с одной переменной и без файла прошла с кодом 0. Путь к другому файлу настроек задаёт ключ --settings.

Пароли (--db-user, --db-pwd, VRUNNER_DBPWD) лучше передавать через секреты CI, в файл настроек они не коммитятся.

💾 Выгрузка и загрузка dt, выгрузка cf

vrunner infobase dump-dt --ibconnection "/FC:\work\ib-test\ib" build\ib1.dt
vrunner cf unload --ibconnection "/FC:\work\ib-test\ib" build\ib1.cf
vrunner infobase restore-dt --ibconnection "/FC:\work\ib-test\ib2" build\ib1.dt

Выгрузка dt заняла 13,1 с (файл 29 805 байт), выгрузка cf 12,8 с (76 860 байт), загрузка dt в новый путь 13,3 с; во всех случаях база ib2 создалась. Одна грабля: путь к файлу передаётся аргументом и должен стоять после всех ключей. Вызов vrunner infobase dump-dt build\ib1.dt --ibconnection ... даёт «Ошибка чтения параметров команды». Так же с переменной окружения: vrunner infobase dump-dt build\ib1.dt работает, ключи после аргумента - нет.

🔗 Цепочка целиком

Скрипт из трёх шагов: создать базу, проверить синтаксис, выгрузить dt. Строка подключения передаётся через окружение, каждый шаг проверяет код возврата и печатает время:

Powershell UTF-8 Открыть файл
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Сборка тестовой базы из исходников, синтаксический контроль и выгрузка dt.
# Запуск: powershell -File pipeline.ps1 -Src .\src -Work C:\work\ib-test
# Требуется: vrunner 3.x в PATH (opm install vanessa-runner), платформа 1С 8.3.
param(
    [string]$Src = ".\src",
    [string]$Work = "C:\work\ib-test"
)
$ErrorActionPreference = "Stop"
$ib = Join-Path $Work "ib"
if (Test-Path $ib) { Remove-Item $ib -Recurse -Force }
New-Item -ItemType Directory -Force $Work | Out-Null
$env:VRUNNER_IBCONNECTION = "/F$ib"   # строка подключения для всех команд ниже

function Step($name, [scriptblock]$body) {
    $sw = [Diagnostics.Stopwatch]::StartNew()
    & $body
    if ($LASTEXITCODE -ne 0) { throw "${name}: код возврата $LASTEXITCODE" }
    "{0}: {1:N1} с" -f $name, $sw.Elapsed.TotalSeconds
}

Step "init"         { vrunner infobase init --src $Src }
Step "syntax-check" { vrunner validate syntax-check --mode Server --mode ThinClient --report-format junit --report-path "$Work\junit.xml" }
Step "dump-dt"      { vrunner infobase dump-dt "$Work\ib.dt" }   # аргумент - после опций и переменных окружения

Прогон на стенде: syntax-check 17,4 с, dump-dt 12,7 с, код 0. Этот же набор команд переносится в GitLab CI или GitHub Actions при условии, что на раннере установлены платформа 1С и OneScript. Сам CI-файл в этой проверке не запускался.

🧪 Тесты: что проверено и что нет

Группа test содержит vanessa, xunit и yaxunit. По справке vrunner test vanessa --help команда принимает путь к фичам (--feature-path, макрос $addRoot указывает на каталог Vanessa-ADD), теги (--tags-filter, --tags-ignore), файл настроек Vanessa (--vanessasettings), формат и путь отчёта (--report-format, --report-path) и сбор покрытия (--coverage-report с форматами generic, cobertura, clover). Запуск тестов на платформе в этой проверке не выполнялся: для него нужны Vanessa-ADD и тестовый клиент. Ключи в этом разделе перечислены по справке, работа команд не подтверждена.

🚧 Что не подтверждено

  • Скорость на большой конфигурации. Замеры сделаны на одном общем модуле.
  • Ключ --ibcmd, серверные базы (/S), работа на Linux, run enterprise, repo, cfe, test.
  • Инкрементальная загрузка (--increment) на двух повторах не дала выигрыша: infobase update занимал 25,9 и 26,9 с при 23,8 с на создание базы с нуля. На конфигурации из одного модуля это ожидаемо, на большой нужен отдельный замер.

🏁 Итог

Цепочка из трёх команд infobase init, validate syntax-check и infobase dump-dt работает на vanessa-runner 3.0.2 и платформе 8.3.27.2130, возвращает коды возврата и отчёт JUnit. Если вы пользуетесь vrunner в CI, проверьте, не остались ли в скриптах команды версии 2.x: они падают с одной и той же ошибкой чтения параметров. Напишите в комментариях, какие ещё команды vrunner стоит проверить на платформе.

 
Нинель Адольевна Щербакова
Нинель Адольевна Щербакова (Ninel_S)
Архитектор • SRE & DevOps инженер • HighLoad 1С
Автор 28+ технических публикаций на Infostart. Разработчик NOPik, SRE-Suite-for-1C и мультиагентных ассистентов для экосистемы 1С:Предприятие.

Вступайте в нашу телеграмм-группу Инфостарт

vanessa-runner vrunner OneScript сборка синтаксический контроль JUnit dt CI 1С 8.3

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Системный администратор Разработчик 1С 8.3 1С 8.5 Бесплатно (free)

В прошлой статье у ERP оставалось 89 отказов загрузки, у ЗУП — 19. Теперь обе конфигурации совпали с эталонами, а собранные файлы прошли круг через платформу. Развертка выделена в открытый репозиторий cf-unwrapper: библиотека на Rust и консольная утилита. Показываю результаты, объясняю границы «100%» и приглашаю к проверкам и развитию проекта.

02.11.2026    205    oyti    1    

1

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Разработчик 1С:Предприятие 8 Россия Бесплатно (free)

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

02.11.2026    415    vanya_gonchar    2    

4

Файловый обмен (TXT, XML, DBF), FTP DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Системный администратор Разработчик 1С 8.5 Бесплатно (free)

В прошлой статье я выгрузил Бухгалтерию в XML байт в байт и спросил, на чем проверить дальше. Вы ответили: ERP, старые релизы, зарплата. Прогнал пять конфигураций, от клиента ЭДО до ERP на 120 тысяч файлов. Рассказываю, что сломалось после Бухгалтерии, почему эталону платформы нельзя верить на слово, как выгрузить одну конфигурацию в формат трех версий платформы - и почему cf-конвертер становится отдельным продуктом, Разверткой.

02.11.2026    267    oyti    2    

3

Инструментарий разработчика DevOps и автоматизация разработки Разработчик 1С 8.3 Абонемент ($m)

Как отличить срочное исправление от обычного вечернего коммита? Проверила расчёт показателей поставок по отчёту хранилища 1С и истории двух открытых проектов. На стенде счётчики совпали со сценарием, а в выборке открытого проекта правило «те же объекты» ошиблось во всех шести случаях. Показываю границы такого замера и отличие от метрик DORA. Прилагаются инструмент и материалы опыта.

1 стартмани

29.10.2026    274    Ninel_S    0    

0

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С 8.5 Бесплатно (free)

Выгрузка типовой Бухгалтерии в XML через базу занимает больше четырёх минут. Я написал движок, который читает файл конфигурации напрямую и выгружает его за 35 секунд, совпадая с выгрузкой платформы байт в байт во всех 90 385 файлах. Загрузка обратно тоже работает: круг через платформу совпадает полностью. Рассказываю, как ускоряли, как проверяем и что при загрузке XML теряет сама платформа. А в конце спрашиваю, нужно ли это кому-то, кроме меня, и на какой конфигурации проверить следующей.

27.10.2026    846    oyti    20    

16

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Разработчик 1С 8.3 Абонемент ($m)

Хук pre-commit проверяет полный снимок индекса Git в отдельной базе 1С. На «Нано-УТ» и платформе 8.3.27 повторила 12 попыток коммита: восемь прошли, четыре остановлены. Чистый коммит занял 31,8 с. Вызов несуществующего метода общего модуля хук останавливает только с ключом -ExtendedModulesCheck. В архиве версия 2, тесты, инструкция и журналы.

1 стартмани

26.10.2026    314    Ninel_S    2    

-1

Нейросети DevOps и автоматизация разработки Разработчик 1С 8.3 Абонемент ($m)

Я дала агенту Claude Code задачу словами: добавить в учебную конфигурацию документ «Внутреннее потребление товаров», который списывает товар по средней стоимости и не даёт уйти в минус. Три запуска с нуля, каждый принят проверкой на платформе 1С: 1 мин 49 с, 2 мин 33 с и 2 мин 56 с. Показываю, что агент поменял, где ошибался и почему на типовой УТ так быстро не будет.

1 стартмани

26.10.2026    556    Ninel_S    0    

-1

Нейросети DevOps и автоматизация разработки Разработчик 1С 8.3 Бесплатно (free)

ИИ пишет код на 1С все быстрее, а разработчик по-прежнему носит вопросы, ответы и статусы между чатом с агентом, аналитиком и архитектором. Показываю другой подход и демо-стенд: задача из Яндекс Трекера сама идет по этапам, ИИ-агент работает в GitLab CI, а люди только утверждают спецификацию, архитектуру, план и код. Живой пример задачи от заявки до merge, честный отказ агента, права агента, время и стоимость: вся задача обошлась в 68 центов.

22.10.2026    696    maxrubtsoff    1    

3
Для отправки сообщения требуется регистрация/авторизация