Создание объекта конфигурации в 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). Без суффикса .Объект платформа не привяжет код к объекту.