desko77/cursor-1c-skills/1c-bsp-api

Claude Code and agent skill by desko77/cursor-1c-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Справочник программного интерфейса Библиотеки стандартных подсистем (БСП) 1С - какие общие модули существуют, какие у них экспортные методы, сигнатуры, типы параметров, контексты выполнения и переопределяемые обработчики. Используй когда пишешь код на конфигурации с БСП и нужно узнать имя модуля или метода, его сигнатуру, серверный он или клиентский, какой переопределяемый обработчик реализовать под задачу; а также чтобы ПРОВЕРИТЬ вызов перед тем, как его написать: имя модуля БСП, отсутствующее в библиотеке, по виду не отличается от настоящего, поэтому вызов сверяется со справочником. Работает офлайн, платформа и EDT не нужны. НЕ для API самой платформы (там 1c-platform-docs) и НЕ для прикладных конфигураций ERP, ЗУП, БП

Install

npx vskill@latest install desko77/cursor-1c-skills/1c-bsp-api

SKILL.md

Справочник API БСП

Офлайн-справочник по программному интерфейсу БСП: 2624 метода в 284 модулях, 71 подсистема, версии 3.1.11 и 3.2.1. Собран из двух источников одновременно - структура и сигнатуры из документации, модули и экспортность из самой библиотеки. Каждая версия документации сведена со своим дистрибутивом, поэтому различия между версиями видны, а не усреднены.

Назначение написано нами: одна строка у каждого из 284 модулей и у 440 методов ядра. Описательный текст документации ИТС в справочник не переносится.

Справочник больше мегабайта, в контекст целиком не грузится. Он спрашивается по месту.

Главное правило

Не пиши вызов метода БСП, не проверив его. Имена в БСП длинные и составные, поэтому правдоподобная выдумка выглядит как настоящее имя. Классические несуществующие: ФайловаяСистемаКлиентСервер, JSONСтрокой, Пользователи.СсылкаТекущегоПользователя.

bash
python skills/1c-bsp-api/scripts/bsp-api.py check ФайловаяСистемаКлиентСервер.ПолучитьФайл

Код возврата 1, если вызова нет. При промахе инструмент подсказывает похожие имена - и по модулю, и по методу.

Как устроена библиотека

Суффикс имени модуля - это контекст выполнения, а не тематика. Один механизм разложен по нескольким модулям, и выбор между ними определяется тем, откуда идет вызов:

СуффиксГде исполняетсяПример
без суффикса или Серверсервер, толстый клиент, внешнее соединениеОбщегоНазначения
Клиенттонкий и толстый клиентОбщегоНазначенияКлиент
КлиентСервери там, и тамОбщегоНазначенияКлиентСервер
ВызовСерверасервер, вызывается с клиента напрямуюОбщегоНазначенияВызовСервера

Отсюда частая ошибка: серверный метод вызывают из клиентского кода. Контекст каждого метода есть в справочнике, отбор - ключом --av (S сервер, T тонкий, F толстый, E внешнее соединение, C вызов сервера).

Три вида модулей по назначению:

  • Обычные - публичный интерфейс, их и вызывают: ОбщегоНазначения, Пользователи,

УправлениеПечатью.

  • `Переопределяемый` - точки расширения. Их не вызывают, в них ПИШУТ: обработчик вызывает

библиотека, а тело пишет внедряющая конфигурация. Таких методов 372.

  • `Служебный` - внутренняя реализация библиотеки. В программный интерфейс не входит ни один

служебный метод, и вызывать их нельзя: они меняются между версиями без объявления.

Еще два суффикса встречаются реже: ПовтИсп - модуль с повторным использованием возвращаемых значений, Локализация - национальная специфика.

Часть интерфейса объявлена не в общих модулях. Обмен данными опубликован модулями объектов обработок (Обработка.УниверсальныйОбменДаннымиXML, Обработка.КонвертацияОбъектовXDTO). В справочнике они есть наравне с общими модулями.

Запросы

bash
B=skills/1c-bsp-api/scripts/bsp-api.py
python $B find печать # поиск по имени, модулю, подсистеме, назначению
python $B find "реквизит объект" # ищутся все слова запроса сразу, не подстрока
python $B find файл --av T # только то, что доступно на тонком клиенте
python $B show ОбщегоНазначения.ЗначениеРеквизитаОбъекта # карточка метода
python $B show ЗначениеРеквизитаОбъекта # все модули, где есть метод с таким именем
python $B module Пользователи # состав модуля целиком
python $B modules контакт # какие вообще есть модули
python $B subsystem печать # модули и механизмы подсистемы
python $B overrides обновлен # переопределяемые обработчики под задачу
python $B check Пользователи.ТекущийПользователь
python $B stats # что вообще в справочнике

Общие ключи отбора: --av, --sub <подсистема>, --version 3.2.1, --limit N.

Как читать выдачу

Строка вида ОбщегоНазначения.ЗначениеРеквизитаОбъекта SFE - это модуль, метод и контексты.

Пометка `[?]` означает, что модуль выведен, а не подтвержден. Документация БСП называет механизм, а не модуль, поэтому у части методов модуль восстановлен по примеру вызова или по совпадению контекстов. В карточке (show) последняя строка всегда говорит, откуда взято имя модуля. Метод с пометкой перед использованием стоит сверить с конфигурацией проекта.

Пометка стоит у 117 методов из 2624, это около четырех процентов. Еще у 37 модуль определить не удалось вовсе - они собраны под именем ?. Это не значит, что метода нет: значит, одно и то же имя объявлено в нескольких модулях, и документация не говорит, о каком из них статья.

Пометка `[!]` означает, что между версиями метод изменился. Карточка тогда содержит строку "ВНИМАНИЕ, в <версия> иначе" с прежней сигнатурой. Таких методов 27, и часть изменений ломающие: ОбщегоНазначения.ВыполнитьМетодКонфигурации из процедуры стал функцией, а у ДобавитьПоказатель новый параметр вставлен не в конец, а первым. Код, написанный по новой сигнатуре, на старой версии передаст аргументы не туда и об этом не сообщит.

Частые ошибки

  • Выдуманный модуль. Проверять check, а не полагаться на память.
  • Серверный метод в клиентском коде. Смотреть контексты; для клиента почти всегда есть

парный модуль с суффиксом Клиент.

  • Вызов служебного модуля. Если в имени есть Служебный - это не интерфейс.
  • Попытка вызвать переопределяемый обработчик. В него пишут тело, а не вызывают его.
  • Метод из другой версии. У каждой записи указано, в каких версиях БСП она есть. Метод,

помеченный только 3.2.1, на 3.1.11 не существует. А метод с пометкой [!] существует в обеих, но вызывается по-разному - смотреть карточку до того, как писать вызов.

  • Расчет на то, что у метода тот же набор параметров, что был раньше. Сигнатура в

справочнике полная, включая значения по умолчанию - брать оттуда.

Границы

Справочник знает ИМЕНА, СИГНАТУРЫ и КОНТЕКСТЫ, а назначение - строкой, написанной нами. Развернутого описания в нем нет: текст документации ИТС лицензионный и сюда не переносится. Строка назначения есть у каждого модуля, но у методов пока только у ядра - базовых модулей ОбщегоНазначения*, длительных операций, пользователей, строковых функций, файловой системы и журнала регистрации. Когда нужно понять механизм глубже, а не форму вызова - идти в документацию ИТС по подсистеме, которую покажет subsystem.

Не покрыты: HTTP-сервисы и веб-сервисы библиотеки, макеты, роли, права, состав метаданных подсистем. Только программный интерфейс кода.

Сборка справочника

Готовый справочник лежит в references/bsp-api.jsonl и обновлять его нужно только при переходе на новую версию БСП. Пересборка требует двух источников, оба лицензионные и в репозиторий не входят: скрапа документации с ИТС и дистрибутива библиотеки.

bash
python -m v8unpack -E 1Cv8.cf E:\bsp\3_2_1 --temp E:\bsp\_tmp # распаковать дистрибутив
python skills/1c-bsp-api/scripts/bsp-build.py \
--docs "3.1.11=E:\scrape\bsp3111doc" --docs "3.2.1=E:\scrape\bsp321doc" \
--lib "3.1.11=E:\bsp\3_1_11" --lib "3.2.1=E:\bsp\3_2_1" \
--purposes skills/1c-bsp-api/references/purposes.json \
--out skills/1c-bsp-api/references/bsp-api.jsonl \
--map skills/1c-bsp-api/references/subsystem-map.md

Формулировки назначения ведутся отдельно, в references/purposes.json: раздел modules и раздел methods с ключами вида Модуль.Метод. При сборке они подмешиваются в справочник, а имена, которых в нем нет, генератор называет в отчете - это ловит и опечатку, и формулировку к методу, которого в этой версии уже не существует.

Ключи --docs и --lib указываются по одному на версию и связываются префиксом. Связывать обязательно: если сшивать документацию 3.1.11 с библиотекой 3.2.1, методы, убранные в новой версии, будут объявлены несуществующими. Библиотека без префикса версии берется для всех.

Брать надо 1Cv8.cf - чистую библиотеку, а не 1Cv8_demo.cf: демонстрационная конфигурация несет объекты, которых в поставке нет. Распаковка идет без платформы и Конфигуратора.

Скрипты на Python, PowerShell-порта нет: сборка нужна редко, а поиск идет по готовому файлу.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
5

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/desko77/cursor-1c-skills/1c-bsp-api/badge)](https://verified-skill.com/skills/desko77/cursor-1c-skills/1c-bsp-api)

Something wrong with this skill or its page? Tell us.