1c-check-bsl
Проверяет синтаксис изменённых BSL-модулей одной командой: статический разбор BSL Analyzer и компиляция платформой 1С в целевой ИБ. Используйте для модулей основной конфигурации, расширений и внешних
SKILL.md.claude/skills/1c-check-bsl/SKILL.md
GitHubПроверка BSL
Repo script: ./scripts/qa/check-bsl.sh
Windows launcher: ./scripts/qa/check-bsl.ps1
Команда проверяет выбранные модули одного корня исходников и печатает две независимые оценки:
static—bsl-analyzer-app analyzeтолько по выбранным модулям, диагностикаParseError; быстрый ответ, не финальная проверка;platform— компиляция платформой 1С в ИБ runtime profile, на её версии платформы и в режиме совместимости её конфигурации.
Запуск
./scripts/qa/check-bsl.sh src/cf/CommonModules/Имя/Ext/Module.bsl
./scripts/qa/check-bsl.sh --mode fast src/cfe/<Расширение>/CommonModules/Имя/Ext/Module.bsl
./scripts/qa/check-bsl.sh --mode platform --profile env/local.json src/cf/Documents/Имя/Ext/ObjectModule.bsl
./scripts/qa/check-bsl.sh --profile env/local.json --dry-run src/cf/CommonModules/Имя/Ext/Module.bsl
Режимы:
full(по умолчанию) — сначалаstatic, затемplatform;fast— толькоstatic; итогstatic-only, платформа в результате помеченаnot-run;platform— толькоplatform.
Явный выбор режима пользователем имеет приоритет. Не выдавайте fast за полную проверку.
Как команда выбирает цель
- Корень определяется по ближайшему каталогу с
Configuration.xml: это основная конфигурация или, если в нём естьConfigurationExtensionPurpose, расширение. Модули выгрузки EPF/ERF (<Имя>.xmlрядом с каталогом<Имя>/) образуют внешний артефакт. - Модули из разных корней команда отклоняет с кодом 2. Проверяйте один корень за запуск; успех соседней конфигурации не доказывает правильность целевой.
- Для расширения и EPF/ERF статическому разбору нужна основная конфигурация целевой ИБ:
--configuration-root <каталог>,BSL_CONFIGURATION_ROOTилиsrc/cf. Без неёstaticполучаетnot-run.
Платформенная проверка
- Основная конфигурация:
./scripts/platform/check-cf-modules.sh. Выбранные модули сначала частично загружаются (/LoadConfigFromFiles -listFile ... -partial) в конфигурацию ИБ профиля без обновления конфигурации базы данных, затем/CheckModulesкомпилирует всю конфигурацию в режимах запуска изConfiguration.xml. Режимы можно задать через--execution-mode. - Расширение:
./scripts/platform/check-cfe-config.shс именем расширения. - EPF/ERF: платформенной проверки модулей нет. Сборка внешнего артефакта не является проверкой синтаксиса; итог основан на
static. - Без профиля целевой ИБ платформенная проверка не выполняется (
not-run). Не подставляйте профиль другой базы. - Уже существующие замечания базы можно передать в
check-cf-modules.sh --baseline-diagnostics <json>: блокируют только новые. source_identity.loaded_match=not-verifiedозначает, что проверена установленная в ИБ конфигурация, а не локальные исходники.
Прямые вызовы Designer, ibcmd и клиента 1С запрещены. Платформенный запуск наблюдается по навыку 1c-observe-run. Проверка всей конфигурации может долго не печатать вывод; повторный запуск из-за паузы в выводе не делайте, смотрите <run-root>/observation.jsonl.
Внешние артефакты пакетом
Для набора EPF/ERF без платформы используйте ./scripts/qa/analyze-bsl-external.sh (--all-managed, имена или каталоги выгрузок, --extension, --declare-extension, --configuration-root). Выгрузки из ordinary/ этой командой не проверяются.
Итог
Команда печатает и пишет в <run-root>/summary.json:
target: configuration|extension|external <имя> (<корень>)
mode: full|fast|platform
static: passed|failed|not-run — <причина или доказательство>
platform: passed|failed|blocked|not-run — <причина>; platform <версия>, compatibility <режим>, modes <режимы>
overall: passed|failed|blocked|static-only
синтаксис: проверен|ошибки|не проверен
Коды выхода: 0 — passed или static-only; 1 — failed; 2 — неверный выбор модулей; 3 — проверка не выполнена или заблокирована.
Если ни анализатор, ни платформа недоступны, результат — синтаксис: не проверен. Сообщайте его пользователю как есть; не заменяйте проверку чтением кода.
Структурные проверки cf-validate, cfe-validate, epf-validate и XML не заменяют платформенную оценку.