Как я сломала мини-конфигурацию, починила её и заставила JUnit говорить правду

20.10.26

Разработка - Тестирование QA

Команды из статьи 2021 года про проверку 1С в vanessa-runner 3.0 переименованы. Три прогона vrunner validate syntax-check на платформе 8.3.27.2130 и два на демо-конфигурации Нано-УТ дают код возврата 1 или 0 и отчёт JUnit. GitSync, тесты, BSL Language Server и ИИ-ревью не запускались, это указано в тексте. В архиве скрипты, Нано-УТ и журналы.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
15.1-companion для "Как я сломала мини-конфигурацию, починила её и заставила JUnit говорить правду"
.zip 32,99Kb
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.
DevOps 1С • vanessa-runner 3.0 • vrunner • Проверка синтаксиса
три тезиса:
-Что переименовано в vanessa-runner 3.0: команда vrunner validate syntax-check вместо syntax-check, файл настроек autumn-properties.json вместо vrunner.json, повтор ключа --mode для нескольких значений.
-Три прогона на платформе 8.3.27.2130: мини-конфигурация с двумя ошибками, где первая ошибка скрывает вторую, и чистая сборка; код возврата 1 или 0 и отчёт JUnit для CI.
-Прогон на Нано-УТ: демо-конфигурация без правок даёт код 0, а после удаления КонецЕсли в общем модуле ПродажиСервер - код 1 и замечание на строке 16. Четыре рисунка собраны из журналов.
Отчёт о тестировании
Среда и дата17.10.2026, Windows 11 Pro, Intel Core i5-2400 3,1 ГГц, 7,9 ГБ ОЗУ, SATA SSD, 1С:Предприятие 8.3.27.2130 (x86), файловая база
Стек ПОOneScript 2.0.0, vanessa-runner 3.0.2, add 6.8.0, gitsync 3.9.1, Git 2.56.0
Объект проверкимини-конфигурация с общим модулем ДемоМодуль (три сборки) и демо-конфигурация Нано-УТ из 1c-ai-workbench: 6 файлов BSL, два запуска
Ключевые замерыкоды возврата 1, 1 и 0 на демо-модуле, 0 и 1 на Нано-УТ; создание базы около 21 с, проверка около 16 с (в журнале платформы 8 с)
Границы замераWindows, файловая база
Отчёт о тестировании приложенного файла
Архив15.1-companion.zip (33,0 КБ): make_demo_src.py, run_check.ps1, nano_ut_check.ps1, nano-ut/src, autumn-properties.json, gitlab-ci.example.yml, evidence/, README.md
Среда и дата17.10.2026, Windows 11 Pro, Windows PowerShell 5.1, архив распакован в чистый каталог; 19.10.2026 - прогон на выгрузке УТ 11.5
Что запускалосьpowershell -File nano_ut_check.ps1 -Work <каталог> и пара make_demo_src.py + run_check.ps1 из распакованного архива; run_check.ps1 на XML-выгрузке копии демобазы УТ 11.5.22.77
Результатnano_ut_check.ps1: коды 0 и 1, замечание на ПродажиСервер.Модуль(16,1), скрипт завершился с кодом 0; run_check.ps1: код 1 и замечание про КонецЕсли; на УТ 11.5: код 0, failures=0, около 55 минут
Не запускалосьgitlab-ci.example.yml (раннера не было)
- Суть статьи

Разработчикам и тимлидам 1С: какие команды схемы проверок 2021 года изменились в vanessa-runner 3.0 и что показывает синтаксическая проверка на платформе 8.3.27 по коду возврата и отчёту JUnit.

Ключевые идеи
  • Команды переименованы: vrunner validate syntax-check, vrunner infobase update, vrunner test xunit; старые плоские примеры из статьи 2021 года не запускаются.
  • Для CI важны код возврата и JUnit: 1 при замечаниях и 0 без них, один failure на найденное замечание.
  • Ошибки открываются по очереди: первая ошибка разбора скрыла вторую, после правки нужен новый запуск.
  • Старый файл настроек игнорируется молча: vrunner.json не применился, vrunner создал временную базу, и проверка прошла «без замечаний» по пустой базе.
Главная мысль

Проверку синтаксиса можно подключить к коммиту одной командой, но шаг должен читать код возврата и использовать актуальный файл настроек. Тесты, GitSync, статический анализ и ИИ-ревью нужно проверять на своей базе.

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

Ключевые технологии: vanessa-runner 3.0.2, OneScript 2.0.0, платформа 1С:Предприятие 8.3.27, отчёт JUnit, opm, Нано-УТ.

Эта статья обновляет схему 2021 года по тому, что я проверила на своём компьютере. Сначала установила пакеты через opm, затем запустила проверку синтаксиса на мини-конфигурации с ошибкой и без неё, а потом на демо-конфигурации Нано-УТ. Всё, что запустить не получилось, вынесено в отдельный раздел «Что не проверено».

- Параметры тестового стенда

Компонент Значение
Процессор и память Intel Core i5-2400 (3,1 ГГц), 7,9 ГБ ОЗУ, SATA SSD
Операционная система Windows 11 Pro
Платформа 1С:Предприятие 8.3.27.2130 (x86), файловая база
OneScript 2.0.0
vanessa-runner 3.0.2
add (Vanessa-ADD) 6.8.0
gitsync 3.9.1
Git 2.56.0

Версии пакетов взяты из вывода opm list (файл evidence/versions.txt в архиве). Linux не проверялся. Сервер СУБД не использовался: база файловая.

- Что изменилось в командах

Установка пакетов одной командой на пакет:

Powershell UTF-8 Открыть файл
1
2
3
opm install vanessa-runner
opm install add
opm install gitsync

В справке vanessa-runner 3.0.2 команды сгруппированы. Вызов vrunner без аргументов выводит список: validate, test, repo, infobase, epf, cluster, cfe, cf, run. Дальше два раздела, которые нужны для проверок:

Рис. 1. vrunner 3.0.2 без аргументов: группы команд validate, test, repo, infobase, epf, cluster, cfe, cf, run.

Рис. 1. vrunner 3.0.2 без аргументов: группы команд validate, test, repo, infobase, epf, cluster, cfe, cf, run.

  • vrunner validate syntax-check проверяет синтаксис конфигурации; рядом лежит vrunner validate edt для проекта EDT;
  • vrunner test xunit, vrunner test vanessa, vrunner test yaxunit запускают тесты.

В README пакета есть таблица миграции с 2.x: vrunner syntax-check теперь vrunner validate syntax-check, vrunner updatedb теперь vrunner infobase update, файл настроек vrunner.json заменён на autumn-properties.json с вложенной иерархией команд и ключами без --. Переменные окружения RUNNER_* стали VRUNNER_*. Старые примеры из статьи 2021 года с плоскими командами без группы теперь не работают.

Ключи с несколькими значениями задаются повторением: --mode ThinClient --mode Server. Запись --mode ThinClient Server справка vrunner разбирает как лишний аргумент, и команда завершается ошибкой чтения параметров.

- Прогон 1: база с ошибкой

Чтобы не проверять пустую конфигурацию, я собрала мини-конфигурацию с общим модулем ДемоМодуль (скрипт make_demo_src.py в архиве). В процедуре Сломано нет КонецЕсли и вызывается несуществующая функция. База создаётся из исходников одной командой:

Powershell UTF-8
1
vrunner infobase init --ibconnection "/FC:\nopik-demo\ib" --src C:\nopik-demo\src

Проверка синтаксиса с отчётом JUnit:

Powershell UTF-8
1
vrunner validate syntax-check --ibconnection "/FC:\nopik-demo\ib" --mode ThinClient --mode Server --report-format junit --report-path C:\nopik-demo\report\syntax.xml

Вывод (фрагмент журнала evidence/run-broken.log):

ИНФОРМАЦИЯ - Проверка: основная конфигурация
ОШИБКА - Получен ненулевой код возврата 101
ПРЕДУПРЕЖДЕНИЕ - Проверка конфигурации завершена с ошибками
ПРЕДУПРЕЖДЕНИЕ - Замечания синтаксической проверки:
ПРЕДУПРЕЖДЕНИЕ -   {ОбщийМодуль.ДемоМодуль.Модуль(9,1)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf') #> <<?>>КонецПроцедуры (Проверка: Сервер)

Код возврата vrunner равен 1, в отчёте JUnit один failure. Именно по этому коду CI-сервер понимает, что шаг не прошёл. Проверка заняла около 9 секунд на базе с одним модулем. На типовой конфигурации времена будут иные: замера на такой базе у меня нет.

- Прогон 2: ошибки открываются по очереди

Я добавила пропущенный КонецЕсли (ключ --fixed скрипта) и запустила проверку заново. Платформа показала следующее замечание:

ПРЕДУПРЕЖДЕНИЕ -   {ОбщийМодуль.ДемоМодуль.Модуль(7,18)}: Процедура или функция с указанным именем не определена (НесуществующаяФункция)	Необъявленная = <<?>>НесуществующаяФункция(1); (Проверка: Сервер)

Первая ошибка разбора скрывала вторую. Для CI это значит, что одна красная проверка не означает один дефект: после правки нужен новый запуск.

- Прогон 3: чистая конфигурация

После исправления обеих ошибок (--fixed2):

ИНФОРМАЦИЯ - Проверка конфигурации завершена за 8с
ИНФОРМАЦИЯ - Результат синтакс-контроля: Ошибок не обнаружено
ИНФОРМАЦИЯ - Отчёт JUnit сохранён: C:\nopik-demo-clean\report\syntax.xml

Код возврата 0, в отчёте failures="0". Все три журнала и отчёты JUnit лежат в архиве в каталоге evidence/.

- Прогон на «Нано-УТ»

Те же команды я запустила на Нано-УТ, демо-конфигурации из репозитория 1c-ai-workbench (лицензия MIT): три общих модуля (ПродажиСервер, СкладСервер, ЦеныСервер), справочники Контрагенты и Номенклатура, документ ЗаказКлиента, всего 6 файлов BSL. Исходники лежат в архиве в каталоге nano-ut/src, оба прогона повторяет скрипт nano_ut_check.ps1.

Для прогона с ошибкой я взяла копию выгрузки и удалила КонецЕсли в функции ЗарезервироватьТовар общего модуля ПродажиСервер. Остальные файлы не менялись.

Рис. 2. Нано-УТ с удалённым КонецЕсли: замечание в ПродажиСервер.Модуль(16,1), код возврата 1.

Рис. 2. Нано-УТ с удалённым КонецЕсли: замечание в ПродажиСервер.Модуль(16,1), код возврата 1.

Платформа указала на строку 16, где вместо недостающего КонецЕсли стоит КонецФункции. Код возврата 1 пришёл от vrunner, а в отчёте появился один failure.

Рис. 3. Нано-УТ без правок: ошибок не обнаружено, код возврата 0.

Рис. 3. Нано-УТ без правок: ошибок не обнаружено, код возврата 0.

Рис. 4. Отчёты JUnit двух прогонов Нано-УТ: failures=1 и failures=0.

Рис. 4. Отчёты JUnit двух прогонов Нано-УТ: failures=1 и failures=0.

Сравнение двух прогонов на одном стенде:

Показатель Нано-УТ без правок Нано-УТ без КонецЕсли
Код возврата vrunner 0 1
Замечаний синтаксической проверки 0 1
Отчёт JUnit, failures 0 1
Проверка по журналу платформы 8 с 8 с
Создание файловой базы из исходников около 21 с около 21 с
Проверка целиком, по часам около 16 с около 16 с

Времена получены на стенде i5-2400 при нескольких запусках; разброс на этих двух конфигурациях составил несколько секунд. Проверка синтаксическая: логику методов, запросы и права она не оценивает. Нано-УТ мала, поэтому времена не переносятся на рабочую конфигурацию.

- Файл настроек вместо длинной командной строки

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

JSON UTF-8
1
2
3
4
5
6
7
8
9
10
11
12
{
  "vrunner": {
    "ibconnection": "/FC:\\nopik-ev\\ib2",
    "validate": {
      "syntax-check": {
        "mode": ["ThinClient", "Server"],
        "report-format": ["junit"],
        "report-path": "C:\\nopik-ev\\settings.xml"
      }
    }
  }
}

Старое имя vrunner.json с ключами вида --ibconnection я тоже пробовала: ключи не применились, и vrunner создал временную базу вместо моей. Ошибки при этом не было, проверка прошла «без замечаний» по пустой базе. В CI такой тихий пропуск опаснее красного шага.

- GitSync и тесты: что показала справка

gitsync sync в версии 3.9.1 принимает обязательный аргумент PATH, путь к хранилищу конфигурации, и необязательный WORKDIR. Параметры подключения (--ibconnection, --db-user) вынесены в общие опции перед командой, а логин хранилища по умолчанию «Администратор». Запускать gitsync sync мне было не на чем: хранилища конфигурации на стенде нет.

vrunner test xunit требует путь к тестам (аргумент TESTSPATH) и обработку xddTestRunner.epf из пакета add. Отчёт задаётся ключами --report-format и --report-path. Прогон тестов я не делала: набора тестов под демо-конфигурацию нет.

- Что не проверено

Следующие части схемы 2021 года и моих допущений я не запускала, и числа или результаты по ним в статье не приводятся:

  • на Нано-УТ выполнена только синтаксическая проверка: тесты, GitSync и анализ кода по ней не запускались;
  • BSL Language Server и SonarQube (нет Java на стенде);
  • генерация отчёта Allure и просмотр результатов;
  • vrunner test xunit, vrunner test vanessa и gitsync sync в рабочем виде;
  • шаблон gitlab-ci.example.yml из архива: раннер GitLab не поднимался, в шаблоне проверена только команда vrunner;
  • ИИ-ревью изменений и разбор падений: на моём стенде это не пробовалось, поэтому рекомендаций по нему здесь нет;
  • оценки экономии из статьи 2021 года (160 часов в месяц на 15 человек): они зависят от команды, я их не пересчитывала.

- Источники

- Файл к статье

В архиве 15.1-companion.zip лежат: make_demo_src.py (сборка конфигурации с двумя ошибками), run_check.ps1 (создание базы и проверка с кодом возврата), nano_ut_check.ps1 (два прогона на Нано-УТ), nano-ut/src (исходники Нано-УТ), autumn-properties.json (пример настроек), gitlab-ci.example.yml (не запускался) и каталог evidence/ с журналами и отчётами JUnit обоих опытов и версиями пакетов.

Чтобы повторить, установите OneScript 2.0.0 и opm install vanessa-runner, затем выполните шаги из README в архиве. Скрипты проверены на платформе 8.3.27.2130 x86. Путь к 1cv8.exe для сборки демо-исходников задаётся ключом --exe скрипта make_demo_src.py. В run_check.ps1 и nano_ut_check.ps1 vrunner находит установленную платформу сам; с другой версией платформы я их не запускала.

run_check.ps1 подходит и для своей конфигурации: положите её XML-выгрузку в <Work>\src. На копии демобазы УТ 11.5.22.77 (12 290 модулей BSL) скрипт без правок дал код 0 и отчёт JUnit с failures="0". На стенде i5-2400 весь прогон занял около 55 минут, из них проверка 460 с, так что для такой конфигурации это ночной прогон. Перед повторным запуском удалите <Work>\ib, иначе скрипт проверит старую базу. Порядок и журнал прогона - в README и evidence/ut-11.5/ архива.

- Итог

Схема проверок из 2021 года жива, но её команды изменились: vrunner validate syntax-check, vrunner test xunit, файл autumn-properties.json. Я подтвердила проверку синтаксиса на платформе 8.3.27.2130 в трёх прогонах: с ошибкой, со второй ошибкой после первой правки и без ошибок. Код возврата 1 или 0 и отчёт JUnit дают CI то, что ему нужно. Тесты, GitSync, статический анализ и ИИ-ревью остаются за вашей проверкой на собственной базе. На Нано-УТ та же проверка дала код 0 без правок и код 1 после удаления КонецЕсли.

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

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

vanessa-runner vrunner syntax-check проверка синтаксиса JUnit CI/CD OneScript opm gitsync 1С 8.3 платформа 8.3.27

См. также

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

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

27.10.2026    844    oyti    20    

16

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

Полтора месяца ИИ-агенты писали мне коммерческое расширение 1С. Я поднял журналы всех сессий и сложил по прайсу: $13 365, из них 94 % — за то, что агент заново перечитывает уже известное. Разбор счёта, три дыры, правила, которые вчетверо удешевили шаг, и скрипт, чтобы посчитать свой.

08.10.2026    2355    deda    29    

16

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

Запуск MCP-сервера в Docker с --read-only, --cap-drop ALL, сетью none и внутренней сетью только до заглушки 1С. Что показали попытки соединения, записи на диск и чтения окружения, почему сервер падал на журнале и как это исправлено. Прогон на Docker 29.8.0 и mcp 2.2.0, в архиве Dockerfile и скрипт проверки.

1 стартмани

06.10.2026    781    Ninel_S    0    

8

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

Утилита ibcmd из поставки автономного сервера: команды выгрузки и загрузки конфигурации по документации 1С, ключи, которые в статьях и скриптах пишут неверно (config dump, --output, --input, config compare), и смена синтаксиса команды export в 8.3.20. Замеров скорости нет: сравнение с Конфигуратором не проводилось, команды требуют проверки на своей версии платформы.

1 стартмани

02.10.2026    1490    Ninel_S    4    

3

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

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

01.10.2026    1132    Ninel_S    0    

2

Нейросети 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    6052    Ninel_S    2    

10

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

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

22.09.2026    1305    Ninel_S    5    

3

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

Четыре года в интеграторе я работал с git и EDT. Git после хранилища полюбил сразу: видно, кто и что менял. С EDT сложнее: тормозит, ошибки при обновлении ERP, автономный сервер внутри него работает только с файловой базой. На новой работе команда захотела перейти на git, я развернул EDT, и оно на второй день разрушило проект при загрузке расширения. Тогда я решил дать команде git с привычным Конфигуратором и инструмент, который за минуту доносит коммит до базы через ibcmd, вместо получасовой загрузки из файлов. На новой работе разрешили ИИ, и я написал это приложение с его помощью: от чтения документации и первого ТЗ до идей в электричке. Впервые за годы снова почувствовал себя творцом, а не закрывателем задач. По дороге приросли выгрузка, объединение и проверка конфигурации по коммитам, YAxUnit и режим MCP-сервера. В статье: схемы, скриншоты, грабли и честный список ограничений. Ссылки пока нет: хочу понять, нужно ли это кому-то, кроме меня.

03.09.2026    12307    KatanaDragon511    30    

40
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Tochka-Scarab 23.10.26 12:14 Сейчас в теме
Нинеличка!
1c-ai-workbench - репозиторий автора с демо-конфигурацией Нано-УТ (лицензия MIT)
- что-то пошло не так ;(
Прикрепленные файлы:
2. Tochka-Scarab 30.10.26 09:39 Сейчас в теме
(1) Вопросик закрывается - ответ получил в другой статье (https://infostart.ru/1c/articles/2828801/)- репозиторий приватный.
З.Ы. И ещё раз большое спасибо за выгрузку этой базы (nano-ut-0.0.000-victima.dt)
3. Ninel_S 214 30.10.26 13:35 Сейчас в теме
(2)
И ещё раз большое спасибо за выгрузку этой
- Товарищ, но это же всего лишь учебное пособие, лабораторное подопытное ;-)
Tochka-Scarab; +1 – Ответить
Для отправки сообщения требуется регистрация/авторизация