ОТК, Конфигуратор и анализаторы 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; запросы в базе, необъявленную переменную и формы ловят только пробы.