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 и автоматизация разработки Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Как вынести учётные данные баз в env.json, читать их из BSL и не коммитить в Git. Код чтения JSON и подключения через COMConnector прогнан на платформе 8.3.27.2130 (Windows). Linux не проверялся. Пароль в файле лежит открытым текстом; для продакшена нужно хранилище секретов.

вчера в 17:30    238    Ninel_S    0    

1

DevOps и автоматизация разработки Администрирование СУБД Мониторинг Системный администратор Разработчик 1С 8.3 Абонемент ($m)

Практикум для администратора сервера 1С: память rphost через rac, блокировки PostgreSQL через pg_blocking_pids и сборка, зелёная при ошибке в модуле. Скрипты прогнаны на PostgreSQL 16.15 и платформе 8.3.27.2130 (Windows). Находки стенда: rac возвращает 0, когда лимит памяти остался прежним; загрузка конфигурации возвращает 0 для модуля, который не проходит проверку. Linux не проверялся.

1 стартмани

вчера в 11:20    189    Ninel_S    0    

0

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

Стенд с LangGraph для 1С: агент перед записью в базу останавливается и ждёт вашего «да». Три звена: общий модуль 1С, шлюз на FastAPI и граф LangGraph с паузой interrupt(). 1С отправляет инцидент и сразу получает ответ 202, граф работает в фоне, адаптер опрашивает статус. Пока оператор не ответил, модуль 1С отказывается применять пакет исправлений; после одобрения пакет записывается в справочник в транзакции. Проверено: модуль проходит проверку модулей платформы 8.3.27, путь от вызова из 1С до записи реквизита в карточку пройден на ней через внешнее соединение, три теста pytest проходят, стенд запускается за 3 минуты (LangGraph 1.2.12, Python 3.12). В статье: состояние графа, идемпотентность, три свойства interrupt(), которые определяют устройство узла, и найденные ошибки. Инструменты агентов в стенде - заглушки, чего ещё нет (PostgresSaver, авторизация шлюза, реальная модель), перечислено в тексте. Код приложен.

1 стартмани

вчера в 10:50    260    Ninel_S    0    

1

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

Разобрали, как выстроить CI для 1С 8.3 на EDT и Git: ветки с автослиянием, Jenkins и Pipeline Libraries, подготовка эталонной ИБ на каждый MR, Vanessa и xUnitFor1C в Allure. Материал для инструментальщика, который проектирует проверки до master, а не после релиза.

28.09.2026    315    zolotov7481    0    

0

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

Подключаем Cursor к 1C: Platform Tools MCP на Windows: установка расширений, packagedef, IPC, токен и mcp.json. Восемь шагов со снимками экрана, проверка env_status, разбор MODULE_NOT_FOUND и конфликта портов. Исправляем ошибки предыдущей статьи и объясняем, как агент получает метаданные из XML. Стенд: Cursor 3.19.7, Platform Tools 0.9.6, MCP 0.3.0.

28.09.2026    3443    Ninel_S    0    

3

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

Проверьте у себя, через сколько дней вы заметите пропажу файла, который никто не открывает, и хватит ли на это окна хранения копий. В корпоративной вики картинки пропадали с февраля, а заметили это в июле: загрузки жили внутри контейнера и стирались при каждом его пересоздании, а записи о них в базе оставались целыми. Недельное окно копий началось через восемь дней после того, как файлов не стало. Разбираем, как проверяли пути восстановления, почему сверка "количество записей против количества файлов" поймала бы всё ещё в феврале, и где та же развилка у 1С: тома хранения файлов и отчёт "Проверка целостности тома" из БСП.

28.09.2026    283    nedomolkov.ivan    0    

0

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

Как связка редактора Cursor и протокола MCP через утилиту 1С: Platform Tools превращает ИИ-ассистента в полноценного участника разработки на 1С: видит структуру проекта, модули, формы и запросы, а также умеет выполнять действия прямо в конфигурации. Разбираем настройку MCP-сервера за 15 минут, роль файла packagedef и типичные ошибки подключения.

22.09.2026    8633    Ninel_S    15    

0

Инструментарий разработчика DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Разработчик 1С 8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление холдингом Бесплатно (free)

Практическое руководство по выстраиванию процессов версионирования в экосистеме «1С:Предприятие 8»: разбор физики сериализации метаданных, скрытые риски построчного слияния XML, сайзинг 1C:EDT vs gitsync/ibcmd и поэтапный конвейер миграции без остановки релизов.

22.09.2026    608    Ninel_S    0    

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