Перейти к содержимому
XBSL (1C:Element)
Русский
Esc
navigateopen⌘Jpreview
На этой странице

Быстрый старт

Поставить инструментарий, сгенерировать данные о языке из своего дистрибутива 1С:Элемент и получить первую проверку.

Что нужно, чтобы линтер начал отвечать на ваших исходниках: пакет, данные о языке из вашего дистрибутива и язык вывода.

Как всё устроено

Движок один, дотянуться до него можно тремя способами: редактор говорит с долгоживущим сервером, агент зовёт те же операции инструментами MCP, терминал запускает CLI. Исходники на диске – то, что все трое читают и пишут.

Весь путь: сверху источники установки – Open VSX с расширением, PyPI с движком и elemctl, дистрибутив платформы, отдающий справку с типами движку и debug-адаптер elemctl; ниже редактор с движком читают исходники проекта, а elemctl несёт деплой и отладку на стенд платформы

Дальше на этой странице – как до этого дойти: пакет, данные, язык вывода.

Подробности установки

pip install xbsl              # или из клона репозитория: pip install -e .
xbsl путь/к/исходникам        # или: python -m xbsl путь/к/исходникам
xbsl self-update              # обновиться до последней версии с PyPI

self-update обновляет пакет распаковкой колеса прямо в site-packages – это безопасно, даже когда pip install --upgrade падает с WinError 32 из-за занятых exe (типовой случай: xbsl-lsp.exe держит LSP-сервер VS Code, xbsl-mcp.exe – MCP-сессию агента). Занятые стабы не трогаются и при следующем запуске вызывают уже новый код; долгоживущие процессы после обновления нужно перезапустить. --version X.Y.Z ставит конкретную версию. В editable-установке из клона команда откажет – там обновляет git pull.

Горячие модули (лексер и парсер) могут компилироваться mypyc’ом в C-расширения: XBSL_MYPYC=1 при сборке (нужны mypy и C-компилятор: Windows – MSVC Build Tools, macOS – Xcode CLT, Linux – gcc). Пользователю компилятор не нужен: готовые нативные колёса собирает CI (native-wheels.yml), а без подходящего колеса пакет работает обычным Python – без компилятора и без потери функциональности.

Данные о языке

Линтер работает по таблицам языка (двуязычные ключевые слова, операторы), каталогу типов stdlib и метамодели конфигурации (свойства элементов). XBSL реализован на Eclipse Xtext + ANTLR; эти данные извлекаются из вашего дистрибутива 1С:Элемент (грамматика InternalBsl.g, документация и метамодель .xcore) и в репозиторий НЕ включены. Сгенерируйте их локально:

xbsl extract --dist "<каталог дистрибутива 1С:Элемент>"          # весь датасет разом
xbsl extract --dist ... --only stdlib,terms                      # подмножество шагов
xbsl extract --dist ... --skip docs                              # docs строит большой индекс

Команда прогоняет шесть экстракторов в правильном порядке (uischema читает результат docs); из клона репозитория те же точки входа – python tools/extract.py и отдельные tools/extract_<шаг>.py. Версию платформы экстракторы определяют сами и кладут данные в xbsl/data/element/<версия>/ (каталог в .gitignore). Без данных линтер и тесты подскажут, что их нужно сгенерировать. Ключ --data-dir (или env XBSL_DATA_DIR) кладёт данные в другое место – например в закрытый пакет, который их и поставляет, см. Расширение.

Язык вывода

Заголовки правил и тексты замечаний – на русском и английском. Язык выбирается так: --lang ru|en > env XBSL_LANG > локаль системы > русский. Имена типов, ключевые слова и прочий XBSL-текст внутри сообщения не переводятся – только формулировки вокруг них. MCP-сервер и веб-панель подчиняются той же настройке (в веб-панели есть ещё переключатель RU/EN на странице).

Последнее обновление 10 августа 2026 г.

Эта страница была полезной?