XBSL Skills AI-инструменты для 1С:Элемент
Скиллpython3

xbsl-meta-add

Создание объекта конфигурации в 1С:Элемент (XBSL). Используй этот скилл когда пользователь хочет создать новый объект метаданных в проекте

Создание объекта конфигурации в 1С:Элемент

HttpСервис — быстрый путь

Если тип объекта HttpСервис — используй скрипт вместо шагов 1–4:

Шаг 1 — Dry-run

python3 .claude/skills/xbsl-meta-add/scripts/generate_http.py \
  --name <ИмяСервиса> \
  --url /api/<ресурс> \
  --routes "GET /, POST /, GET /{id}" \
  --root <корень>

Опциональные флаги: - --subsystem <ИмяПодсистемы> — если нужно выбрать конкретную подсистему - --access РазрешеноАутентифицированным — контроль доступа (по умолчанию РазрешеноВсем)

Показать вывод пользователю. Если ⚠️ Сервис уже существует — спросить: заменить или отмена. Если скрипт завершился с ошибкой — сообщи пользователю и остановись.

Шаг 2 — Применить (только после подтверждения)

python3 .claude/skills/xbsl-meta-add/scripts/generate_http.py \
  --name <ИмяСервиса> --url /api/<ресурс> --routes "..." --root <корень> --apply

Шаг 3 — Итог

Перечислить созданные файлы из вывода скрипта: - <ИмяСервиса>.yaml — объект HttpСервис с маршрутами - <ИмяСервиса>.xbsl — заготовки обработчиков


Добавление маршрутов в существующий сервис

Если пользователь хочет добавить endpoint в уже существующий HttpСервис:

Шаг 1 — Dry-run

python3 .claude/skills/xbsl-meta-add/scripts/generate_http.py \
  --service <ИмяСервиса> \
  --add-routes "DELETE /{id}, GET /{id}/items" \
  --root <корень>

Показать вывод пользователю. Если ⚠️ обработчик уже существует — он будет пропущен.

Шаг 2 — Применить

python3 .claude/skills/xbsl-meta-add/scripts/generate_http.py \
  --service <ИмяСервиса> --add-routes "..." --root <корень> --apply

Шаг 3 — Итог

  • <ИмяСервиса>.yaml — добавлены новые ШаблоныUrl
  • <ИмяСервиса>.xbsl — добавлены новые методы-обработчики

Все остальные типы объектов

Шаг 0: Определи тип объекта

Из запроса пользователя определи ВидЭлемента:

ВидЭлемента Когда использовать
Перечисление Фиксированный набор значений (статусы, приоритеты, виды)
Справочник Хранилище записей (сотрудники, контрагенты, товары)
Документ Бизнес-событие с историей (заказы, накладные, акты)
РегистрСведений Срезы данных по измерениям (курсы валют, цены)
РегистрНакопления Обороты или остатки (продажи, складские остатки)
ОбщийМодуль Переиспользуемый код (утилиты, сервисы)
Структура DTO / value object (данные для передачи между методами)
ЛокализованныеСтроки Тексты интерфейса (один объект на подсистему)
HttpСервис REST API (эндпоинты для внешних систем)
ГлобальноеКлиентскоеСобытие Событие между подсистемами (оповещение об изменении)
КлючДоступа Маркер прав доступа (роль, владелец)
Отчет Аналитический отчёт с визуализацией (остатки, продажи, анализ данных)

Шаги 1 и 2: выполни параллельно

Шаг 1 — Загрузи спецификацию. Прочитай файл спецификации для нужного типа:

references/{ТипОбъекта}.md

Для объектов с реквизитами (Справочник, Документ, РегистрСведений, РегистрНакопления) дополнительно прочитай references/types.md.

Для Отчет — читай references/Отчет.md; если есть ПараметрыЗапроса — дополнительно прочитай references/types.md.

Если в запросе упоминаются табличные части (ТЧ, строки, таблица, колонки) — дополнительно прочитай references/ТабличныеЧасти.md.

Шаг 2 — Разведка проекта. Используй скилл xbsl-explore, передав тип объекта и имя (если известно из запроса).

Если xbsl-explore вернул пустой список projectsостановись и предложи пользователю сначала создать проект через скилл xbsl-init, затем повторить запрос.

Шаг 3: Сгенерируй UUID

Из спецификации узнай, сколько UUID нужно (1 на объект + по 1 на каждый реквизит/элемент/измерение/ресурс). Посчитай точное количество и вызови скилл xbsl-uuid с этим числом.

Шаг 3а: Проверь межподсистемные ссылки

Для каждого ссылочного реквизита (<Имя>.Ссылка?) из запроса определи подсистему объекта-источника.

Как определить подсистему источника: - Из результатов xbsl-explore (шаг 2) извлеки корень проекта - Найди файл <Имя>.yaml в дереве проекта: <root>/**/<Имя>.yaml - Имя папки-родителя этого файла — подсистема Y источника - Имя папки из suggested_path нового объекта — подсистема X

Если подсистема Y источника отличается от подсистемы X нового объекта:

Файл Действие
<ПодсистемаY>/<Источник>.yaml Прочитай. Если ОбластьВидимости: ВПодсистеме — изменить на ВПроекте
<ПодсистемаX>/Подсистема.yaml Добавить Y в список Использование (если Y ещё не в списке)
Новый объект (создаётся в Шаге 4) Включить поле Импорт: [Y] (объединить все внешние подсистемы одним списком)

Для каждого изменённого существующего файла кратко сообщи пользователю: - «Обновлён ОбластьВидимостиВПроекте в Основное/Склады.yaml» - «Добавлено Использование: [Основное] в Закупки/Подсистема.yaml»

Если объект-источник не найден в проекте — действуй по текущему правилу (ставь Тип: Строка, предупреди пользователя).

Шаг 4: Создай файлы

  • Создай {ИмяОбъекта}.yaml по структуре из спецификации, в suggested_path из разведки
  • Создай {ИмяОбъекта}.xbsl только если пользователь явно запросил методы

Шаг 5: Движения по регистру (только для Документа)

Если создаётся Документ и пользователь упоминает движения, регистр накопления, регистр сведений, приход, расход, списание, поступление, проведение — после создания .yaml вызови скилл xbsl-pattern-register.

Скилл напишет код в файл <ИмяДокумента>.Объект.xbsl (не .xbsl). Без суффикса .Объект платформа не привяжет код к объекту.