Отличие от других скиллов форм
xbsl-form-add и xbsl-form-cards создают формы для конкретного объекта
(Справочника, Документа). Этот скилл создаёт независимую форму типа Форма
без привязки к объекту — главную страницу с виджетами и динамическими данными.
Алгоритм
Шаг 0 — Определить виджеты
Из запроса пользователя выделить список виджетов. Сопоставить с паттернами P1–P9:
| Паттерн | Когда применять |
|---|---|
| P1 KPI | «счётчик», «количество», «итого», динамическое число |
| P2 Навигация | «ссылка на раздел», «перейти», «открыть список» |
| P3 Таблица | «список последних», «таблица», «курсы», данные массивом |
| P4 Баннер | «баннер», «заглавный блок», «картинка с текстом» |
| P5 Диаграмма | «воронка», «диаграмма», «круговая», «аналитика» |
| P6 Карусель | «карусель», «слайдер», «прокрутка», «отзывы» |
| P7 Бенто | «плитка», «категории», «bento», сетка разного размера |
| P8 Поиск | «поиск», «поисковая строка», «фильтр» |
| P9 Статика | «преимущества», «возможности», без динамических данных |
Уточнить:
- Имя формы (по умолчанию ГлавнаяСтраница)
- Подсистема (если явно не указана — найдёт xbsl-explore)
Шаг 1 — Разведка
python3 .claude/skills/xbsl-explore/scripts/explore.py \
--type КомпонентИнтерфейса --name <ИмяФормы> --root <корень>
suggested_path— куда создавать файлыconflict— если форма уже существует, спросить: Заменить или Отмена
Шаг 2 — Загрузить спецификацию
Читать файлы из references/ выборочно — только нужные для конкретного запроса.
Всегда читать (3 файла):
- references/базовая-структура.md — YAML-скелет и правила компоновки
- references/критические-правила.md — правила из тестирования (кавычки, SVG, видимость и др.)
- references/регистрация.md — как подключить форму к навигации
По паттернам из Шага 0:
- P1 → references/p1-kpi.md
- P2 → references/p2-навигация.md
- P3 → references/p3-таблица.md
- P4 → references/p4-баннер.md
- P5 → references/p5-диаграмма.md
- P6 → references/p6-карусель.md
- P7 → references/p7-бенто.md
- P8 → references/p8-поиск.md
- P9 → references/p9-статика.md
Дополнительно:
- Если есть P4 или упоминание кастомных цветов/шрифтов → references/стилизация.md
- Если есть P1, P2, P3 или P5 (динамические данные) → references/xbsl-шаблон.md
Шаг 3 — Сгенерировать UUID
python3 -c "import uuid; print(str(uuid.uuid4()))"
Шаг 4 — Создать <ИмяФормы>.yaml
По базовой структуре из reference + карточки из шага 0.
Обязательные правила:
- ВидЭлемента: КомпонентИнтерфейса
- ОбластьВидимости: ВПодсистеме
- Наследует.Тип: Форма
- ВключатьВАвтоИнтерфейс: Ложь — всегда
- ПовторноеИспользованиеФормы: Истина — всегда (для производительности)
- Импорт: — добавить все подсистемы, из которых берутся данные
- KPI-компоненты (Надписи со значениями) должны иметь уникальные Имя: — они обновляются из .xbsl
Шаг 4.5 — Проверить видимость целевых форм (если есть навигация)
Если в виджетах P2 или P7 есть переходы в формы из других подсистем — перед написанием
обработчиков проверить ОбластьВидимости каждой целевой формы:
grep "ОбластьВидимости" <путь>/<Подсистема>/<ФормаСписка>.yaml
ВПроекте— доступна, всё хорошоВПодсистеме— исправить наВПроектедо генерации, иначе ошибка компиляции:Variable "ХххФормаСписка" is not defined
Шаг 5 — Создать <ИмяФормы>.xbsl
Создать только если есть виджеты с динамическими данными (P1, P3, P5) или обработчиками навигации (P2, P7). Для чисто статических страниц (только P4, P6, P7, P9) — .xbsl не нужен.
Шаблон файла смотри в references/xbsl-шаблон.md.
Шаг 6 — Итог и инструкции по регистрации
Перечислить созданные файлы. Вывести важное напоминание:
Форма не появится в приложении автоматически. Нужно зарегистрировать её в навигации.
Важно: для
Тип: Форманет автокоманды=ГлавнаяСтраница.Открыть— толькоНавигационнаяКомандасТипФормы.
- Проверить: есть ли в проекте
КомпонентИнтерфейсасТип: СтандартноеКлиентскоеПриложениеСРазделами- Если нет (авто-навигация) — создатьПриложение.yamlсКомандныйИнтерфейсПанелиНавигации- Если есть — добавитьНавигационнаяКоманда ТипФормы: <ИмяФормы>в его навигацию```yaml
В КомандныйИнтерфейсПанелиНавигации первым элементом:
- Тип: НавигационнаяКоманда Представление: Главная Изображение: Плюс.svg ТипФормы: <ИмяФормы> ```
Подробный шаблон
Приложение.yaml— вreferences/регистрация.md.