Применение БСП 3.1.11 в прикладной разработке
SkillFiles & storageDevelopment and review of 1C application code with the Standard Subsystems Library (БСП/SSL) 3.1.11. Use when selecting SSL common modules and public methods, verifying API signatures and regions, and generating BSL code for background and scheduled jobs, data exchange, printing, files, access, upda
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Применение БСП 3.1.11 в прикладной разработке skill
What this skill tells your AI
The instructions your AI receives, as published by brake71/1c-ssl-skills in skills/bsp/SKILL.md and read by ahel’s review.
Скил учит правильно применять Библиотеку стандартных подсистем 1С (версия
3.1.11) в прикладном коде: какие общие модули и методы вызывать, с какими
параметрами, какие нюансы и антипаттерны. Скил самодостаточен — в нём нет
ссылок на внешнюю документацию и хардкод-номеров строк; параметры и рабочие
примеры даны inline в references/.
Каждый reference — workflow-сценарии вида «задача → функция (полная сигнатура
- регион) → параметры → пример → нюансы/антипаттерны». Это не карта методов (которую отдаёт греп), а знание как применять БСП правильно.
Подтверждение сигнатур/регионов — по исходникам src/cf/ через скрипт
scripts/bsp_api.py или греп (см. ниже). Регион БСП = имя #Область …:
ПрограммныйИнтерфейс (stable, вызывать), СлужебныйПрограммныйИнтерфейс /
СлужебныеПроцедурыИФункции (⚠️ служебный), УстаревшиеПроцедурыИФункции
(⚠️ deprecated), модули *Переопределяемый (хук переопределения — БСП
вызывает, прикладной код реализует, не вызывается напрямую).
Порядок работы
- Определи прикладную задачу и выбери по таблице ниже один основной reference. Подключай второй только для действительно сквозного сценария, например печати в фоне.
- Найди внутри reference подходящий сценарий по заголовкам
###и ключевым словам черезrg -n; затем прочитай диапазон строк со сценарием, сигнатурами, примером и антипаттернами. Загружай файл целиком только когда чтение диапазона недоступно; не переноси в контекст несвязанные сценарии большого файла. - Выбирай прямой вызов только из стабильного
ПрограммныйИнтерфейс. Служебный или устаревший метод предлагай лишь с явным предупреждением и когда публичной альтернативы нет. Метод*Переопределяемыйпоказывай как реализацию хука без прямого вызова через имя общего модуля. - Если в проекте доступна выгрузка с
CommonModules/, перед финальным ответом проверь каждую рекомендуемую сигнатуру черезbsp_api.py. Если выгрузки нет, используй reference и явно не заявляй, что выполнил сверку с исходниками. - В ответе дай выбранный API, контекст выполнения (клиент/сервер), минимальный BSL-пример и важные ограничения. Не выдумывай отсутствующие методы для симметрии с другими модулями. Отсутствующие, служебные и запрещённые вызовы описывай текстом или inline-кодом, но не помещай в исполняемый fenced BSL-блок: такой пример легко ошибочно скопировать как рекомендацию.
Навигация по задачам
По ключевой задаче выбери основной reference:
| Задача / ключевые слова | Reference | Подсистемы БСП |
|---|---|---|
| Суффиксы модулей, найти модуль, карта подсистем, stable/хук | fundamentals.md | навигатор |
| Сообщение пользователю, сериализация XML/JSON, реквизиты по ссылке, безопасное хранилище, строки, даты, временный каталог | base-common.md | БазоваяФункциональность |
| Фоновое задание, длительная операция, прогресс, регламентное задание | longs-and-jobs.md | БазоваяФункциональность, РегламентныеЗадания |
| Префикс номера объекта, префикс ИБ, область данных | prefixes.md | ПрефиксацияОбъектов |
| Обновление ИБ, версия ИБ, миграция, обработчик обновления | update.md | ОбновлениеВерсииИБ, ОбновлениеКонфигурации |
| Обмен данными, узлы обмена, регистрация изменений | data-exchange.md | ОбменДанными |
| Электронная подпись (ЭП), МЧД, криптография, DSS, проверка подписи | esign-mcd.md | ЭлектроннаяПодпись, МашиночитаемыеДоверенности |
| Контактная информация, адрес, ОКТМО/КЛАДР, адресный классификатор | contact-info.md | КонтактнаяИнформация, АдресныйКлассификатор |
| Классификаторы (страны и пр. вне адресных) | classifiers.md | классификаторы |
| Валюты, курсы, банки, счета, графики/календари работы | currencies-banks.md | Валюты, Банки, ГрафикиРаботы |
| Внешние компоненты, OData | external-components.md | ВнешниеКомпоненты, ИнтерфейсOData |
| Пользователи, доступ, RLS, группы доступа, профили групп | users-access.md | Пользователи, УправлениеДоступом |
| Почта, SMS, шаблоны сообщений, обсуждения, взаимодействия | comms.md | РаботаСПочтовымиСообщениями, ОтправкаSMS, ШаблоныСообщений, Обсуждения, Взаимодействия |
| Бизнес-процессы, задачи | bp-tasks.md | БизнесПроцессыИЗадачи |
| Завершение работы пользователей, удаление помеченных, профили безопасности | admin-tools.md | ЗавершениеРаботыПользователей, УдалениеПомеченныхОбъектов, ПрофилиБезопасности |
| Резервное копирование ИБ | backup.md | РезервноеКопированиеИБ |
| Оценка производительности, центр мониторинга, контроль работы пользователей | perf-monitoring.md | ОценкаПроизводительности, ЦентрМониторинга, КонтрольРаботыПользователей |
| Защита персональных данных (ПДн), грифы | protection-pd.md | ЗащитаПерсональныхДанных |
| Подключаемые команды, дополнительные отчёты/обработки (ВПФ/ОРФ) | commands-external.md | ПодключаемыеКоманды, ДополнительныеОтчетыИОбработки |
| Печать, менеджер печати, варианты отчётов, СКД | print-reports.md | Печать, ВариантыОтчетов |
| Запрет редактирования реквизитов, свойства, даты запрета изменения | forms-validation.md | ЗапретРедактированияРеквизитовОбъектов, Свойства, ДатыЗапретаИзменения |
| Файлы (справочник Файлы), тома, версии объектов, выгрузка в файл | files-and-versions.md | РаботаСФайлами, ВерсионированиеОбъектов, ВыгрузкаОбъектовВФайлы |
| Мультиязычность, НСтр, текущий язык, локализация | multilang.md | Мультиязычность |
| Поиск дублей, групповое изменение, структура подчинённости | report-dedup.md | ПоискИУдалениеДублей, ГрупповоеИзменениеОбъектов, СтруктураПодчиненности |
Если задача не попадает в таблицу — начни с fundamentals.md (карта подсистем,
логика суффиксов/stable). Часть подсистем БСП намеренно вне скила (нет
востребованного прикладного API) — см. fundamentals.md.
Шаблоны поиска по выгрузке конфигурации
Экспортные методы модуля:
rg -n "^(Функция|Процедура)\s+\w+.*Экспорт" src/cf/CommonModules/<Модуль>/Ext/Module.bsl
Метод по имени во всех модулях:
rg -l "^(Функция|Процедура)\s+<Метод>\b" src/cf/CommonModules/
Регион метода (проверить stable/служебный/устаревший):
rg -n "^#Область\s+(ПрограммныйИнтерфейс|СлужебныйПрограммныйИнтерфейс|СлужебныеПроцедурыИФункции|УстаревшиеПроцедурыИФункции|ПереопределениеВызовов)" src/cf/CommonModules/<Модуль>/Ext/Module.bsl
Подсистема, содержащая общий модуль (по ссылкам в XML подсистем):
rg -l "CommonModule\.<Модуль>" src/cf/Subsystems/
⚠️ «Найти подсистему объекта (Catalog/Document)» простым текстовым поиском нельзя —
нужен XML-разбор Subsystems/<Имя>.xml (теги <Item> со ссылками
Catalog./Document./CommonModule.). При необходимости — ручной шаг:
открыть Subsystems/СтандартныеПодсистемы/Subsystems/<Имя>.xml и найти
<Item> со ссылкой на объект.
Скрипт scripts/bsp_api.py
Три команды, --src <path> обязательный (путь к корню выгрузки конфигурации с
CommonModules/, напр. src/cf). Вместо <skill-dir> подставь каталог, где
лежит этот SKILL.md:
# Найти модуль + полную сигнатуру + имя региона + doc-комментарий + путь + диапазон строк.
# Если метод в нескольких модулях с разными сигнатурами — уточни --module.
python <skill-dir>/scripts/bsp_api.py method <ИмяМетода> [--module <ИмяМодуля>] --src src/cf
# Все экспортные методы одного модуля с сигнатурами + регион + диапазон строк.
# Для модулей *Переопределяемый помечает, что методы — хуки переопределения.
python <skill-dir>/scripts/bsp_api.py module <ИмяМодуля> --src src/cf
# Модули со stable API (регион ПрограммныйИнтерфейс + экспортные методы).
python <skill-dir>/scripts/bsp_api.py modules --src src/cf
Разница module (один модуль, все регионы) vs modules (список модулей, только
stable) — ключевая, не путать. Вывод method помечает ⚠️ хуки переопределения
(модуль *Переопределяемый), deprecated и служебные методы — чтобы не выдать их
как «вызови из прикладного кода».
--src обязателен, без автоопределения. Неверный путь или отсутствие
CommonModules/ — ненулевой код возврата.
Signals
- GitHub stars
- 61
- Forks
- 5
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
bsp- Source
- github.com/brake71/1c-ssl-skills