1C HBK BSL
Инструменты для разработки на платформе «1С:Предприятие» / BSL: расширение для VS Code и Cursor, CLI-линтер, форматтер, а также LSP- и MCP-серверы для локальных интеграций.
Что это
onec-hbk-bsl помогает держать BSL-код в порядке:
- показывает диагностики в редакторе и CLI;
- включает 180 публичных диагностических правил;
- форматирует
.bsl/.os; - даёт навигацию, hover, completion, rename и inlay hints через LSP;
- умеет отдавать SARIF/JSON для CI;
- предоставляет MCP-инструменты для локальных AI-ассистентов.
Проект не запускает Java-анализатор в рантайме. В репозитории выпускаются два
связанных продукта: Toolkit (CLI, LSP, MCP и Python API) и расширение
VS Code / Cursor со встроенным сервером.
При установке из PyPI требуется Python 3.12 или новее. Платформенные VSIX содержат готовый бинарный файл и не требуют системного Python. Актуальное состояние подтверждают CI, проверка безопасности и артефакты конкретного релиза.
Быстрый старт
VS Code / Cursor
- Установите расширение
mussolene.1c-hbk-bsl. - Откройте каталог с исходниками 1С.
- Дождитесь запуска сервера: диагностики появятся в Problems, а форматирование и навигация заработают через LSP.
Поддерживаются VS Code / Cursor с API VS Code 1.85+ и платформенные сборки для macOS Apple Silicon, macOS Intel, Linux x64 и Windows x64.
Настройки редактора, команды и порядок поиска сервера описаны в руководстве по расширению.
CLI
uv tool install onec-hbk-bsl
onec-hbk-bsl check .
onec-hbk-bsl format . --check
onec-hbk-bsl check . --format sarif > bsl-results.sarif
Установка через pip:
pip install onec-hbk-bsl
Конфигурация
Основной файл проекта: onec-hbk-bsl.toml.
ignore = ["BSL012"]
exclude = ["vendor", "build", "*.gen.bsl"]
format = "text"
jobs = 0
insert-spaces = false
indent-size = 4
index-mode = "full" # off | symbols | full
index-max-bytes = 0 # 0 = unlimited
[per-file-ignores]
"legacy/*.bsl" = ["BSL002", "BSL011"]
Также поддерживается секция [tool."onec-hbk-bsl"] в pyproject.toml.
Основные правила разрешения настроек:
- явный параметр → переменная окружения → конфигурация проекта → встроенное значение по умолчанию;
jobs = 0включает адаптивное выполнение, аjobs = 1— последовательное;index-excludeуправляет областью навигации и по умолчанию наследуетexclude;- после изменения области индекса выполните
onec-hbk-bsl index . --force.
Полное руководство по конфигурации и публичным интерфейсам: Toolkit.
Диагностики и подавления
BSL### — стабильный код правила для вывода, --select, --ignore,
onec-hbk-bsl.toml и подавляющих комментариев noqa. Совместимые имена из
существующих BSL-проектов, например LineLength, также принимаются, но в
результатах всегда выводится код BSL###.
Все семейства подавляющих комментариев работают для одной строки и диапазона:
маркер после кода действует на текущую строку, а маркер на отдельной строке
открывает диапазон до noqa-enable, bsl-enable или совместимого BSLLS:…-on.
Пароль = "dev_only"; // noqa: BSL012
// bsl-disable: BSL002
// код без BSL002
// bsl-enable: BSL002
Полный перечень с RU/EN-описаниями, примерами и исключениями: опубликованный справочник диагностических правил.
Основные команды
| Задача | Команда |
|---|---|
| Проверить проект | onec-hbk-bsl check . |
| Получить SARIF для CI | onec-hbk-bsl check . --format sarif > bsl-results.sarif |
| Создать или применить baseline-файл | onec-hbk-bsl check . --update-baseline bsl-baseline.json / --baseline bsl-baseline.json |
| Проверить форматирование | onec-hbk-bsl format . --check |
| Запустить LSP | onec-hbk-bsl lsp |
| Запустить локальный MCP | onec-hbk-bsl mcp --stdio --workspace /path/to/project |
| Проверить состояние индекса | onec-hbk-bsl index . --status |
| Пересобрать индекс | onec-hbk-bsl index . --force |
Режимы индекса: off, symbols и full. Перед --clean остановите LSP и MCP.
Python и пакеты
from onec_hbk_bsl import check_files
diagnostics = check_files(["src/Модуль.bsl"], jobs=1)
for diagnostic in diagnostics:
print(diagnostic.code, diagnostic.file, diagnostic.line)
Публикуются два PyPI-дистрибутива:
| Пакет | Назначение |
|---|---|
onec-hbk-bsl-core |
CLI, форматтер, диагностики, Python API и LSP без MCP-зависимостей |
onec-hbk-bsl |
Полный совместимый пакет поверх onec-hbk-bsl-core[mcp] той же версии |
Место в экосистеме
onec-hbk-bsl отвечает за анализ и безопасное изменение кода в текущей рабочей
области. Централизованную справку предоставляет
onec-context-mcp, контекстные
пакеты конкретной версии проекта собирает
onec-context-toolkit, а
воспроизводимой средой выполнения управляет
1c-develop.
Эти проекты дополняют друг друга, но не требуются для установки Toolkit или расширения.
Документация
Полная документация публикуется на mussolene.github.io/1c_hbk_bsl. Она поддерживает русский и английский языки, системную светлую/тёмную тему, полнотекстовый поиск и прямые страницы всех 180 правил.
- Toolkit — установка, CLI, конфигурация, CI, LSP и MCP.
- Расширение VS Code / Cursor — установка, возможности, настройки и устранение проблем.
- Диагностические правила — 180 карточек с описаниями, примерами и подавлениями.
- Security policy и third-party notices — безопасность, лицензии и происхождение данных.
RU/EN-описания диагностик адаптированы из документационного корпуса BSL Language Server и распространяются с сохранением указанной в сторонних уведомлениях лицензии.
Разработка
git clone https://github.com/mussolene/1c_hbk_bsl
cd 1c_hbk_bsl
make install
make lint
make test
Для локальной сборки VSIX используйте make vsix.
Лицензия
MIT © 2024 1C HBK BSL Contributors
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file onec_hbk_bsl_core-0.8.48.tar.gz.
File metadata
- Download URL: onec_hbk_bsl_core-0.8.48.tar.gz
- Upload date:
- Size: 488.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6800a7356c8e1bfdf219b7dd70e2aabc048f8ec07c0053edd473a52beb5a81fb
|
|
| MD5 |
501f571c50e69e1a58a4d0426b6041af
|
|
| BLAKE2b-256 |
c0cd9b299557406bb59e753868c0b17767701b05eaaf1a35fbb004073180f650
|
Provenance
The following attestation bundles were made for onec_hbk_bsl_core-0.8.48.tar.gz:
Publisher:
release.yml on mussolene/1c_hbk_bsl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
onec_hbk_bsl_core-0.8.48.tar.gz -
Subject digest:
6800a7356c8e1bfdf219b7dd70e2aabc048f8ec07c0053edd473a52beb5a81fb - Sigstore transparency entry: 2390837791
- Sigstore integration time:
-
Permalink:
mussolene/1c_hbk_bsl@da377d9257296bbf9774596f1d748eeca8be10ed -
Branch / Tag:
refs/tags/v0.8.48 - Owner: https://github.com/mussolene
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@da377d9257296bbf9774596f1d748eeca8be10ed -
Trigger Event:
push
-
Statement type:
File details
Details for the file onec_hbk_bsl_core-0.8.48-py3-none-any.whl.
File metadata
- Download URL: onec_hbk_bsl_core-0.8.48-py3-none-any.whl
- Upload date:
- Size: 533.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
835677fb20041412895f11b9f629d3044b9aa8c54c431bd763aef270c50ae451
|
|
| MD5 |
ca2e98066559eb6962e6a2f335abcf38
|
|
| BLAKE2b-256 |
ba5d9a64acbc19f700fbc5406df2fad15b249383feb43fd187bf94f76fe4fd1e
|
Provenance
The following attestation bundles were made for onec_hbk_bsl_core-0.8.48-py3-none-any.whl:
Publisher:
release.yml on mussolene/1c_hbk_bsl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
onec_hbk_bsl_core-0.8.48-py3-none-any.whl -
Subject digest:
835677fb20041412895f11b9f629d3044b9aa8c54c431bd763aef270c50ae451 - Sigstore transparency entry: 2390837864
- Sigstore integration time:
-
Permalink:
mussolene/1c_hbk_bsl@da377d9257296bbf9774596f1d748eeca8be10ed -
Branch / Tag:
refs/tags/v0.8.48 - Owner: https://github.com/mussolene
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@da377d9257296bbf9774596f1d748eeca8be10ed -
Trigger Event:
push
-
Statement type: