Применение БСП 3.1.11 в прикладной разработке

SkillFiles & storage

Development 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

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

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), модули *Переопределяемый (хук переопределения — БСП вызывает, прикладной код реализует, не вызывается напрямую).

Порядок работы

  1. Определи прикладную задачу и выбери по таблице ниже один основной reference. Подключай второй только для действительно сквозного сценария, например печати в фоне.
  2. Обязательно открой выбранный основной reference: одной таблицы маршрутизатора недостаточно для ответа. Не отвечай по памяти или общим знаниям платформы, пока не сверил конкретный сценарий БСП в reference. Найди сценарий по заголовкам ### и ключевым словам через rg -n; затем прочитай диапазон строк со сценарием, сигнатурами, примером и антипаттернами. Шаг завершён, когда правила и пример ответа сверены с этим диапазоном. Загружай файл целиком только когда чтение диапазона недоступно; не переноси в контекст несвязанные сценарии большого файла.
  3. Выбирай прямой вызов только из стабильного ПрограммныйИнтерфейс. Служебный или устаревший метод предлагай лишь с явным предупреждением и когда публичной альтернативы нет. Метод *Переопределяемый показывай как реализацию хука без прямого вызова через имя общего модуля.
  4. Если в проекте доступна выгрузка с CommonModules/, перед финальным ответом проверь каждую рекомендуемую сигнатуру через bsp_api.py. Если выгрузки нет, используй reference и явно не заявляй, что выполнил сверку с исходниками.
  5. В ответе дай выбранный API, контекст выполнения (клиент/сервер), минимальный BSL-пример и важные ограничения. Не выдумывай отсутствующие методы для симметрии с другими модулями. Отсутствующие, служебные и запрещённые вызовы описывай текстом или inline-кодом, но не помещай в исполняемый fenced BSL-блок: такой пример легко ошибочно скопировать как рекомендацию.

Навигация по задачам

По ключевой задаче выбери основной reference:

Задача / ключевые словаReferenceПодсистемы БСП
Суффиксы модулей, найти модуль, карта подсистем, stable/хукfundamentals.mdнавигатор
Сообщение пользователю (включая привязку к полю в серверной проверке), сериализация XML/JSON, реквизиты по ссылке, безопасное хранилище, строки, даты, временный каталогbase-common.mdБазоваяФункциональность; при проверке доп. реквизитов подключай forms-validation.md вторым
Фоновое задание, длительная операция, прогресс, регламентное заданиеlongs-and-jobs.mdБазоваяФункциональность, РегламентныеЗадания
Префикс номера объекта, префикс ИБ, область данныхprefixes.mdПрефиксацияОбъектов
Обновление ИБ, версия ИБ, миграция, обработчик обновленияupdate.mdОбновлениеВерсииИБ, ОбновлениеКонфигурации
Обмен данными, узлы обмена, регистрация измененийdata-exchange.mdОбменДанными
Электронная подпись (ЭП), МЧД, криптография, DSS, проверка подписиesign-mcd.mdЭлектроннаяПодпись, МашиночитаемыеДоверенности
Контактная информация, адрес, ОКТМО/КЛАДР, адресный классификаторcontact-info.mdКонтактнаяИнформация, АдресныйКлассификатор
Классификаторы (страны и пр. вне адресных)classifiers.mdклассификаторы
Валюты, курсы, банки, счета, графики/календари работыcurrencies-banks.mdВалюты, Банки, ГрафикиРаботы
Внешние компоненты, ODataexternal-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
72
Forks
9
Last commit
Sep 2026

Others that do the same job

Advanced
Item type
skill
Key
bsp-brake71
Source
github.com/brake71/1c-ssl-skills