Перейти к содержанию

Команды и запуск без настроек

Команды

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, ни выгрузки «было» нет. Конфигурация должна быть на поддержке с разрешёнными изменениями: только тогда конфигурация поставщика хранится в ИБ отдельно. Порядок:

  1. Выгрузка корня ИБ (секунды): состояние поддержки — по Ext/ParentConfigurations.bin, который выгружает сама ИБ (файлу в репозитории ОТК не доверяет). На поддержке без изменений — доработок нет, проверка окончена; снята с поддержки — отказ (код 2) с подсказкой: --base-dir с выгрузкой поставщика или git.
  2. /CompareCfg поставщик → основная, полный отчёт (доработанная 1С:КА — 200 с).
  3. Полная выгрузка основной конфигурации ИБ — «стало» (ERP/КА — ~11 мин; кэш ОТК по базе, следующий раз — только изменённые объекты).
  4. «Было» — та же выгрузка, в которой тексты модулей из отчёта возвращены к поставщику, а новые объекты убраны; дальше — как --base-dir. Загружать в ИБ ничего не нужно: проверяемая редакция уже в ней. Пробы исполняют конфигурацию БД, поэтому если основная к ней не применена (КонфигурацияИзменена(), например после правки в Конфигураторе), ОТК обновляет копию (/UpdateDBCfg, примечание в сводке); в рабочей базе (--connection) ничего не меняет — пробы исполнения «не проверено» с советом обновить конфигурацию БД.

Ограничения: восстанавливаются только тексты модулей (формы, макеты и свойства — как в ИБ); модуль, в тексте которого есть «·» (так отчёт выводит табуляцию), проверяется целиком; только основная конфигурация в формате Конфигуратора. Если конфигурацию поставщика давно не обновляли вместе с основной, «доработками» окажется и обновлённый код поставщика — проверка будет долгой, число объектов отчёта видно в сводке.