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

Настройки (otk.toml / otk.local.toml)

Приоритет: аргументы командной строки («Только командная строка») > переменные OTK_* > otk.local.toml > otk.toml > умолчания. Переменная переопределяет настройку проекта под себя (своя платформа, своя копия ИБ); что взято из переменных, показывает otk doctor. Неизвестный раздел или ключ (опечатка) — предупреждение в doctor и в примечаниях сводки. Образец со всеми ключами — otk.example.toml.

Переменная Ключ
OTK_IB, OTK_USER, OTK_PASSWORD environment.ib, user, password
OTK_PLATFORM, OTK_COM, OTK_IB_TOOL environment.platform, comConnector, ibTool
OTK_YAXUNIT, OTK_EDTCLI environment.yaxunit, edtcli
OTK_BSLLS, OTK_BSL_ANALYZER environment.bslls, bslAnalyzer
OTK_RUN_DIR, OTK_HIDDEN_DESKTOP environment.runDir, hiddenDesktop (0, false, no — ложь)

Без ключа в настройках: OTK_CACHE — кэш ОТК (справка платформы, таблицы доступности), OTK_BASES — файл баз otk console.

Раздел Ключ Что
project source каталог выгрузки или проекта EDT относительно корня репозитория (src/cf; не задан, а в src/cf выгрузки нет — корень репозитория, если выгрузка там)
parent, extension для расширения: выгрузка основной конфигурации и имя (по умолчанию — из Configuration.xml)
environment ib, user, password своя копия ИБ и вход в неё
lockTimeout сколько секунд ждать, пока ту же базу проверяет другой прогон ОТК (900), затем код 2 (ib-busy) — см. «Устранение неполадок»
connection, keepTools, loadProject рабочая база вместо копии (/F…, /S…), см. «Рабочая база вместо копии»
platform, comConnector, bslls, yaxunit инструменты (первые три находятся сами)
bsllsTimeout, bsllsBatchMB тайм-аут прогона BSL LS и размер пакета текста для большого прогона (200 МБ) — см. «Сводка и коды выхода»
helpDir, helpAuto копия справки платформы (каталог с именем версии) и автосборка её индекса (true; false — только предупреждение с командой) — см. «Проверки и зависимости»
hiddenDesktop клиент 1С на скрытом рабочем столе Windows (true; false — видеть окно при отладке, OTK_HIDDEN_DESKTOP)
ibTool чем ОТК меняет конфигурацию копии ИБ — частичная загрузка, выгрузка, обновление БД, расширения: designer (пакетный Конфигуратор, по умолчанию) или ibcmd (OTK_IB_TOOL). Полная загрузка выгрузки — ibcmd, если он есть (без него — Конфигуратор), база на сервере (/S…) — всегда Конфигуратор; ibcmd без ibcmd в каталоге платформы — сбой; см. «Конфигуратор или ibcmd» в troubleshooting.md
analyzer, bslAnalyzer, bslAnalyzerTimeout анализатор BSL проверки analyzers: bslls (BSL LS, по умолчанию), bsl-analyzer или both — для всех форматов или таблицей по формату выгрузки ([environment.analyzer] designer-xml = "both", edt = "bslls"); путь к bsl-analyzer (OTK_BSL_ANALYZER или PATH) и тайм-аут его прогона (1800 с) — см. «Анализаторы BSL»
edtcli, edtTimeout 1cedtcli и тайм-аут экспорта для исходников EDT (см. «Формат EDT»)
contexts контексты проб, доступные локально (Server, ThinClient, ExternalConnection); без ExternalConnection COM не используется, серверное — через YAxUnit, внешнее соединение — «не покрыто этим прогоном»
ordinaryApplication конфигурация работает и в обычном приложении
webClient конфигурация работает в веб-клиенте: метод, свойство или тип платформы, недоступные в веб-клиенте, — ошибка, а не предупреждение
minPlatform, compatWarnings предупреждения «новее режима совместимости» своей линейки: только новее минимальной платформы (--min-platform 8.3.24) или никаких (false, --no-compat-warnings); скрытые считаются в примечаниях, ошибки новой линейки остаются
executors.server auto (COM, иначе YAxUnit) или yaxunit
runDir каталог прогонов (%TEMP%/otk, OTK_RUN_DIR)
checks имя проверки on / auto / off — см. «Проверки и зависимости»
platformNames methods, constructors, globals, forms, managerMethods дополнение словаря имён платформы — см. «Словарь имён платформы»
analyzerSeverity bslls, bsl-analyzer какие правила анализаторов BSL — ошибки: error — добавить, warning — снять — см. «Уровень находок анализаторов»
[[queries.resolvers]] name, command, timeout внешние восстановители собранных запросов (выключены) — см. «Известные пределы»
hook base, mode, fast, infraFail хук pre-push
designerCheck modes, baseline режимы и базовая линия проверки всех модулей (otk designer-check)
smoke exclude, timeout, severity дымовой тест открытия изменённых форм
scenarios path каталог сценарных тестов (по умолчанию tests/cfe) — см. «Проверки и зависимости»
report open открыть сводку после прогона (html) — см. «Сводка и коды выхода»
scaffold extension, draft заготовки тестов: тестовое расширение и команда черновика

Словарь имён платформы

Статика знает методы, типы и системные перечисления платформы по справке синтакс-помощника. Имена, которых в справке нет, а Конфигуратор их принимает, и стандартные имена объектов метаданных лежат во встроенном словаре platform-names.toml:

Ключ Что Проверка
methods метод без точки (устаревшие методы, которые платформа поддерживает) platform-api
constructors тип в Новый Тип platform-api
globals имя перед точкой (Имя.Значение): системные перечисления и значения platform-api, «Переменная не определена»
forms стандартная форма объекта (ФормаСписка) form-name
managerMethods начало имени стандартного метода менеджера (Создать, ПустаяСсылка) manager-method

Ложная находка на имени, которое платформа принимает (например, после обновления платформы), — допишите имя в раздел [platformNames] своего otk.toml или otk.local.toml, не дожидаясь выпуска ОТК. Списки объединяются со встроенными, регистр не важен, русское и английское имя — отдельными строками:

[platformNames]
globals = ["НовоеСистемноеПеречисление", "NewSystemEnum"]

Неизвестный ключ или значение не списком — примечание в сводке, раздел не применяется, прогон продолжается.

Уровень находок анализаторов

Новое замечание анализатора BSL (проверка analyzers) — ошибка, если его правило во встроенном списке (ParseError, ProcedureReturnsValue, UnknownPreprocessorSymbol, ThisObjectAssign — у обоих анализаторов), остальные — предупреждения («Находки»). Новая версия анализатора может переименовать правило или добавить своё — поправьте список разделом [analyzerSeverity], не дожидаясь выпуска ОТК. Для каждого анализатора (bslls — BSL LS, bsl-analyzer) error добавляет правила к ошибкам, warning снимает их до предупреждений; имя правила — как в находке после двоеточия, с учётом регистра:

[analyzerSeverity]
bslls = { error = ["UsingModalWindows"] }
bsl-analyzer = { error = ["UnresolvedMethodCall"], warning = ["ThisObjectAssign"] }

Набор правил, которые анализатор вообще проверяет, задаёт его конфигурация (.bsl-language-server.json, bsl-analyzer.toml), а не этот раздел. Неизвестный анализатор или ключ, значение не списком, одно правило и в error, и в warning — примечание в сводке, раздел не применяется, прогон продолжается.

Расширения

Для проекта-расширения задайте source (выгрузка расширения) и parent (выгрузка основной конфигурации); расширение и его имя распознаются по Configuration.xml выгрузки (extension — только чтобы переопределить имя). Без parent ссылки на основную конфигурацию не проверить — такие находки статики понижаются до предупреждений. Модули расширения пробуются в копии ИБ с расширением; расширенная проверка — /CheckModules … -ExtendedModulesCheck -Extension <имя> самого расширения (на небольшом расширении — секунды). Для небольших расширений удобен gate --all.