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

ОТК, Конфигуратор и анализаторы BSL

Краткие таблицы сравнения — в README; здесь — условия, эталоны и замеры.

ОТК и проверка Конфигуратором

Строки таблицы об ошибках подтверждены контрольными дефектами: vs-designer.md — таблица прогона otk controls --parity --doc docs/vs-designer.md на демо-проекте otk-1c-demo (что поймал ОТК и каким шагом, что — Конфигуратор): клонируйте его и повторите в клоне (нужны платформа и копия ИБ — otk doctor) — 3 минуты; на отраслевой конфигурации ≈ 12 тыс. файлов вердикты те же. Эталонов Конфигуратора в таблице два: синтаксический контроль /CheckModules и полная проверка конфигурации /CheckConfig со всеми применимыми флагами (логическая целостность, ссылки, обработчики, неиспользуемые процедуры, режимы модулей с клиент-серверными вариантами). Полная проверка добавляет к синтаксическому контролю только отсутствующий обработчик события формы; запросы, лишний параметр, ошибки открытия форм и методы новее режима совместимости не находит и она. Время на отраслевой конфигурации (8.3.27, файловая копия ИБ, два замера в разном порядке): /CheckModules — 9 минут, /CheckConfig со всеми флагами — 5,5–6 минут; ОТК на 20 изменённых модулях — 1,5–2 минуты. ОТК проверяет код основной конфигурации, заимствуя изменённые модули во временное расширение, поэтому эталонов два: проверка основной конфигурации и тот же код в расширении. В прогоне они совпали на всех дефектах; разница одна, и её закрывает статика: в расширение заимствуются только изменённые модули, поэтому вызывающих удалённый метод там не видно.

Проверку всех модулей Конфигуратором ОТК не отменяет: она остаётся страховкой в CI (otk designer-check, по метке или ночью, либо otk gate --designer — в том же прогоне, одной сводкой), а ОТК сверяется с ней каталогом контрольных дефектов. На маленьком проекте Конфигуратор быстрее ОТК (небольшое расширение — 5 с против 46 с): ОТК там ценен не скоростью, а проверками сверх компиляции.

На реальных задачах — pilot.md: две недели в CI проекта рядом с /CheckModules, 105 проверок, ни одного «ОТК зелёный — Конфигуратор красный»; дозамер проекта EDT без экспорта, --vendor и bsl-analyzer.

ОТК и анализаторы BSL

BSL Language Server и bsl-analyzer — не альтернатива ОТК, а источник находок внутри него (проверка analyzers, environment.analyzer): ОТК берёт у анализатора только новые замечания по правке и добавляет то, чего статический анализ не видит, — компиляцию в контексте платформы, запросы в базе, открытие форм, тесты.

Подробно — vs-analyzers.md: таблица прогона otk controls --analyzers --doc docs/vs-analyzers.md на демо-проекте (каждый контрольный дефект — какими правилами его поймал каждый анализатор и остальная статика ОТК). На 28 дефектах BSL LS поймал 7, bsl-analyzer — 19, статика ОТК без анализаторов — 17; запросы в базе, необъявленную переменную и формы ловят только пробы.