Команды и запуск без настроек¶
Команды¶
otk gate --base <ref> [--head <ref> | --worktree] [--static-only] [--fast] [--problems] [--quiet]
otk gate --all # все модули выгрузки (небольшие проекты, сверка с Конфигуратором)
otk gate --dir <выгрузка> [--base-dir <было>] # без git: каталог целиком или отличия от «было» (см. [«Без git»](#без-git))
otk gate --vendor --ib <ИБ> # разово: доработки ИБ относительно её конфигурации поставщика (минуты)
otk gate … --all-scenarios # все сценарные тесты, а не только по изменённым методам
otk collect --base <ref> # только план: что изменилось и как это проверять (otk.json)
otk scaffold # заготовки тестов для изменённых методов без теста
otk static | build | run # шаги gate по отдельности
otk report # сводка по файлам шагов каталога прогона (после static/run)
otk doctor # окружение: какие проверки доступны и что теряется
otk gate … --json | otk doctor --json # для агентов: итог одним объектом JSON, причины с reasonCode (см. agents.md)
otk availability build [--out <каталог>] # таблица доступности методов платформы для своей платформы
otk designer-check [--update-baseline] # все модули Конфигуратором с отрицательным контролем
otk gate --base <ref> --designer # gate и все модули Конфигуратором в той же копии ИБ: одна сводка, один код
otk controls [--parity] [--doc ФАЙЛ] # контрольные дефекты: каждый обязан быть пойман; --doc — таблица паритета
otk controls --analyzers [--doc ФАЙЛ] # те же дефекты статикой с обоими анализаторами BSL: кто что ловит
otk hook install | uninstall # git-хук pre-push
otk ci gate [--designer] | designer-check # запуск в CI (артефакты)
otk console query|check|metadata|eventlog|bases --ib <база> … # консоль копии ИБ (только чтение)
otk mcp [--idle 120] # та же консоль MCP-сервером (stdio) для ИИ-агента
otk tj calls|queries|sdbl|errors|locks|timeouts|events <каталог ТЖ> # анализ технологического журнала
--worktree проверяет незакоммиченные изменения; --static-only — только статика, без копии ИБ
(секунды); --fast — не запускать пробы, если статика уже нашла ошибки. При находках больше 50 gate и report
печатают краткую сводку (см. «Краткая сводка в консоли»); --full — всю.
Только командная строка¶
ОТК работает из скачанного каталога (otk.cmd / otk.sh в корне, нужен Python 3.11+) без
otk.toml: всё, что задаётся в настройках, задаётся и аргументами gate, static, build, run, doctor.
Пути — от текущего каталога.
| Ключ | Что |
|---|---|
--parent <выгрузка> |
выгрузка основной конфигурации (для расширения) — для всех шагов |
--extension <имя> |
имя расширения; по умолчанию — из Configuration.xml выгрузки (расширение распознаётся само) |
--ib <каталог> |
своя файловая копия ИБ (ОТК её меняет); копию сам не создаёт |
--connection "/F…" |
или рабочая база: после проверки возвращается как была |
--user |
пользователь ИБ; пароль — переменной OTK_PASSWORD или в otk.local.toml (аргумента нет: его видно в списке процессов) |
--platform <bin> |
платформа 1С (по умолчанию — самая новая установленная) |
--yaxunit <.cfe> |
YAxUnit; ОТК его не скачивает |
--bslls <exe> |
BSL LS (по умолчанию OTK_BSLLS, PATH или копия расширения VS Code «Language 1C (BSL)») |
--bsl-analyzer <exe>, --analyzer <имя> |
bsl-analyzer (по умолчанию OTK_BSL_ANALYZER или PATH) и выбор анализатора: bslls, bsl-analyzer, both |
--run-dir <каталог> |
каталог прогонов |
--set раздел.ключ=значение |
любая настройка, например checks.analyzers=off, smoke.timeout=120; можно несколько |
Умолчания — максимум проверок без копии ИБ: без --ib / --connection — только статика (пробы — «не проверено»
с подсказкой ключа), без --yaxunit — без клиентских проб, сценариев и форм. Что будет проверено с этими
аргументами — otk doctor с теми же ключами (и --dir).
Расширение без --parent проверяется, но ссылки на объекты и методы основной конфигурации не проверить: такие
находки статики — предупреждения, сводка об этом напоминает.
# конфигурация без git: только статика
otk.cmd gate --dir D:/Выгрузки/ERP
# расширение и основная конфигурация, отличия от «было» с пробами в своей копии ИБ (контракт — «Без git» ниже)
otk.cmd gate --dir расширение --base-dir расширение_было --parent D:/Выгрузки/Основная ^
--ib D:/ib/копия --user Администратор --yaxunit D:/tools/YAxUnit.cfe
# что доступно на этой машине
otk.cmd doctor --dir расширение --parent D:/Выгрузки/Основная --ib D:/ib/копия
В скрипте CI — те же ключи, пароль — переменной OTK_PASSWORD, код выхода 0/1/2 (см. «Сводка и коды
выхода»):
set OTK_PASSWORD=%IB_PASSWORD%
call otk.cmd gate --dir "%CHECKOUT%\src\cf" --ib "%IB%" --user ci --quiet --problems
if errorlevel 1 exit /b %errorlevel%
Без git¶
Git — один из источников изменений, а не обязательная зависимость. --dir — каталог выгрузки (Configuration.xml
в корне), --base-dir — выгрузка «было». Каталоги сравниваются на месте при каждом запуске (список файлов,
размер, содержимое; строки модулей — сравнением текстов); своей истории ОТК не хранит. Переименования без git
не распознаются (удалён + добавлен). Настройки — otk.toml в каталоге --repo (по умолчанию текущий).
Индекс метаданных --dir кешируется по отпечатку каталога (размер и время всех файлов: ERP — ~14 с против
~80 с построения), индекс --parent — по Configuration.xml и ConfigDumpInfo.xml (их переписывает каждая выгрузка).
Результат — в каталоге прогона (--run-dir, по умолчанию %TEMP%/otk/<имя>-<хеш пути>, путь к сводке — в конце
вывода): сводка, план и файлы шагов содержат фрагменты проверяемого кода — см. «Сводка и коды выхода».
Контракт копии ИБ. С --base-dir ОТК считает, что копия ИБ уже содержит «было», и загружает в неё
только отличия --dir. Это не сверяется: если в копии другое, пробы проверят не тот код. Нет уверенности — запустите
без --base-dir (полная загрузка) или с --static-only. Цепочка проверок держит контракт сама: после
gate --base-dir A --dir B в копии — B, следующая проверка — --base-dir B --dir C.
Какой режим выбрать без git. По ходу разработки (хук, ответ за секунды) — --dir + --base-dir: выгрузку
«было» положите себе до начала задачи, проверяются отличия от неё. Разовая проверка — те же ключи, если есть обе
выгрузки, или --vendor, если есть ИБ на поддержке.
Доработки относительно поставщика ИБ (--vendor)¶
otk gate --vendor --ib <копия ИБ> | --connection <база> [--user …]
Разовая проверка всех доработок ИБ относительно её конфигурации поставщика — когда ни git, ни выгрузки «было» нет. Конфигурация должна быть на поддержке с разрешёнными изменениями: только тогда конфигурация поставщика хранится в ИБ отдельно. Порядок:
- Выгрузка корня ИБ (секунды): состояние поддержки — по
Ext/ParentConfigurations.bin, который выгружает сама ИБ (файлу в репозитории ОТК не доверяет). На поддержке без изменений — доработок нет, проверка окончена; снята с поддержки — отказ (код 2) с подсказкой:--base-dirс выгрузкой поставщика или git. /CompareCfgпоставщик → основная, полный отчёт (доработанная 1С:КА — 200 с).- Полная выгрузка основной конфигурации ИБ — «стало» (ERP/КА — ~11 мин; кэш ОТК по базе, следующий раз — только изменённые объекты).
- «Было» — та же выгрузка, в которой тексты модулей из отчёта возвращены к поставщику, а новые объекты убраны;
дальше — как
--base-dir. Загружать в ИБ ничего не нужно: проверяемая редакция уже в ней. Пробы исполняют конфигурацию БД, поэтому если основная к ней не применена (КонфигурацияИзменена(), например после правки в Конфигураторе), ОТК обновляет копию (/UpdateDBCfg, примечание в сводке); в рабочей базе (--connection) ничего не меняет — пробы исполнения «не проверено» с советом обновить конфигурацию БД.
Ограничения: восстанавливаются только тексты модулей (формы, макеты и свойства — как в ИБ); модуль, в тексте которого есть «·» (так отчёт выводит табуляцию), проверяется целиком; только основная конфигурация в формате Конфигуратора. Если конфигурацию поставщика давно не обновляли вместе с основной, «доработками» окажется и обновлённый код поставщика — проверка будет долгой, число объектов отчёта видно в сводке.