mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-10 16:14:54 +03:00
refactor(form-info): trim SKILL.md from 217 to 47 lines
Remove redundant output format docs — the output is self-documenting. Keep only: command, parameters, and a compact legend for abbreviations. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -10,22 +10,7 @@ allowed-tools:
|
||||
|
||||
# /form-info — Компактная сводка формы
|
||||
|
||||
Читает Form.xml управляемой формы и выводит компактную сводку: дерево элементов, реквизиты с типами, команды, события. Заменяет необходимость читать тысячи строк XML.
|
||||
|
||||
## Использование
|
||||
|
||||
```
|
||||
/form-info <FormPath>
|
||||
```
|
||||
|
||||
## Параметры
|
||||
|
||||
| Параметр | Обязательный | По умолчанию | Описание |
|
||||
|-----------|:------------:|--------------|---------------------------------------------|
|
||||
| FormPath | да | — | Путь к файлу Form.xml |
|
||||
| Expand | нет | — | Раскрыть свёрнутую секцию по имени, `*` — все |
|
||||
| Limit | нет | `150` | Макс. строк вывода (защита от переполнения) |
|
||||
| Offset | нет | `0` | Пропустить N строк (для пагинации) |
|
||||
Читает Form.xml и выводит дерево элементов, реквизиты с типами, команды, события. Заменяет чтение тысяч строк XML.
|
||||
|
||||
## Команда
|
||||
|
||||
@@ -33,184 +18,29 @@ allowed-tools:
|
||||
powershell.exe -NoProfile -File .claude/skills/form-info/scripts/form-info.ps1 -FormPath "<путь к Form.xml>"
|
||||
```
|
||||
|
||||
Раскрыть содержимое страницы:
|
||||
```powershell
|
||||
powershell.exe -NoProfile -File .claude/skills/form-info/scripts/form-info.ps1 -FormPath "<путь>" -Expand "Основное"
|
||||
```
|
||||
## Параметры
|
||||
|
||||
Раскрыть все свёрнутые секции:
|
||||
```powershell
|
||||
powershell.exe -NoProfile -File .claude/skills/form-info/scripts/form-info.ps1 -FormPath "<путь>" -Expand "*"
|
||||
```
|
||||
| Параметр | Обязательный | Описание |
|
||||
|----------|:------------:|----------|
|
||||
| FormPath | да | Путь к файлу Form.xml |
|
||||
| Expand | нет | Раскрыть свёрнутую секцию по имени или title, `*` — все |
|
||||
| Limit | нет | Макс. строк (по умолчанию 150) |
|
||||
| Offset | нет | Пропустить N строк (пагинация) |
|
||||
|
||||
С пагинацией:
|
||||
```powershell
|
||||
powershell.exe -NoProfile -File .claude/skills/form-info/scripts/form-info.ps1 -FormPath "<путь>" -Offset 150
|
||||
```
|
||||
## Легенда вывода
|
||||
|
||||
## Чтение вывода
|
||||
**Элементы**: `[Group:V]` `[Group:H]` `[Group:AH]` `[Group:AV]` — UsualGroup с ориентацией; `[Input]` `[Check]` `[Label]` `[LabelField]` `[Table]` `[Button]` `[Pages]` `[Page]` `[CmdBar]` `[Popup]` `[Picture]` `[PicField]` `[BtnGroup]` `[Calendar]`
|
||||
|
||||
### Заголовок
|
||||
**Флаги**: `[visible:false]` `[enabled:false]` `[ro]` `,collapse`
|
||||
|
||||
```
|
||||
=== Form: ФормаДокумента — "Реализация товаров и услуг" (Documents.РеализацияТоваровУслуг) ===
|
||||
```
|
||||
**Привязки**: `-> Объект.Поле` (DataPath), `-> Команда [cmd]` (команда формы), `-> Close [std]` (стандартная)
|
||||
|
||||
Для заимствованных форм расширения (с `<BaseForm>`):
|
||||
```
|
||||
=== Form: ФормаЭлемента [EXTENSION] (Catalogs.Валюты) ===
|
||||
```
|
||||
**События**: `{OnChange, StartChoice}`, для расширений `{OnChange[Before]}`
|
||||
|
||||
Имя формы, заголовок (Title) и контекст объекта определяются из пути к файлу и XML.
|
||||
**Заголовок**: `[title:Текст]` — только если отличается от имени
|
||||
|
||||
### Properties — свойства формы
|
||||
**Реквизиты**: `*` и `(main)` — основной; `DynamicList -> Table` — MainTable; `ValueTable [col: type, ...]` — колонки
|
||||
|
||||
Только нестандартные свойства (отличающиеся от умолчания). Title показывается в заголовке, не здесь:
|
||||
**Параметры**: `(key)` — ключевой
|
||||
|
||||
```
|
||||
Properties: AutoTitle=false, WindowOpeningMode=LockOwnerWindow, CommandBarLocation=Bottom
|
||||
```
|
||||
|
||||
### Events — обработчики событий формы
|
||||
|
||||
```
|
||||
Events:
|
||||
OnCreateAtServer -> ПриСозданииНаСервере
|
||||
OnOpen -> ПриОткрытии
|
||||
```
|
||||
|
||||
Для расширений с callType:
|
||||
```
|
||||
Events:
|
||||
OnCreateAtServer[After] -> Расш1_ПриСозданииПосле
|
||||
OnOpen[Before] -> Расш1_ПриОткрытии
|
||||
```
|
||||
|
||||
### Elements — дерево UI-элементов
|
||||
|
||||
Компактное дерево с типами, привязками к данным, флагами и событиями:
|
||||
|
||||
```
|
||||
Elements:
|
||||
├─ [Group:AH] ГруппаШапка
|
||||
│ ├─ [Input] Организация -> Объект.Организация {OnChange}
|
||||
│ └─ [Input] Договор -> Объект.Договор [visible:false] {StartChoice}
|
||||
├─ [Table] Товары -> Объект.Товары
|
||||
│ ├─ [Input] Номенклатура -> Объект.Товары.Номенклатура {OnChange}
|
||||
│ └─ [Input] Сумма -> Объект.Товары.Сумма [ro]
|
||||
└─ [Pages] Страницы
|
||||
├─ [Page] Основное (5 items)
|
||||
└─ [Page] Печать (2 items)
|
||||
```
|
||||
|
||||
**Сокращения типов элементов:**
|
||||
|
||||
| Сокращение | Элемент |
|
||||
|---|---|
|
||||
| `[Group:V]` | UsualGroup Vertical |
|
||||
| `[Group:H]` | UsualGroup Horizontal |
|
||||
| `[Group:AH]` | UsualGroup AlwaysHorizontal |
|
||||
| `[Group:AV]` | UsualGroup AlwaysVertical |
|
||||
| `[Group]` | UsualGroup (ориентация по умолчанию) |
|
||||
| `[Input]` | InputField |
|
||||
| `[Check]` | CheckBoxField |
|
||||
| `[Label]` | LabelDecoration |
|
||||
| `[LabelField]` | LabelField |
|
||||
| `[Picture]` | PictureDecoration |
|
||||
| `[PicField]` | PictureField |
|
||||
| `[Calendar]` | CalendarField |
|
||||
| `[Table]` | Table |
|
||||
| `[Button]` | Button |
|
||||
| `[CmdBar]` | CommandBar |
|
||||
| `[Pages]` | Pages |
|
||||
| `[Page]` | Page (свёрнут — показывает кол-во элементов; раскрывается через `-Expand`) |
|
||||
| `[Popup]` | Popup |
|
||||
| `[BtnGroup]` | ButtonGroup |
|
||||
|
||||
**Флаги** (только при отклонении от умолчания):
|
||||
- `[visible:false]` — элемент скрыт (Visible=false)
|
||||
- `[enabled:false]` — элемент недоступен (Enabled=false)
|
||||
- `[ro]` — ReadOnly=true
|
||||
- `,collapse` — Behavior=Collapsible (для групп)
|
||||
|
||||
**Привязка к данным**: `-> Объект.Поле` — DataPath
|
||||
|
||||
**Привязка к команде**: `-> ИмяКоманды [cmd]` — команда формы, `-> Close [std]` — стандартная команда
|
||||
|
||||
**События**: `{OnChange, StartChoice}` — имена обработчиков; `{OnChange[Before]}` — с callType для расширений
|
||||
|
||||
**Заголовок**: `[title:Текст]` — только если отличается от имени элемента
|
||||
|
||||
### Attributes — реквизиты формы
|
||||
|
||||
```
|
||||
Attributes:
|
||||
*Объект: DocumentObject.РеализацияТоваров (main)
|
||||
Валюта: CatalogRef.Валюты
|
||||
Итого: decimal(15,2)
|
||||
Таблица: ValueTable [Номенклатура: CatalogRef.Номенклатура, Кол: decimal(10,3)]
|
||||
Список: DynamicList -> Catalog.Пользователи
|
||||
```
|
||||
|
||||
- `*` и `(main)` — основной реквизит формы (MainAttribute)
|
||||
- Типы ValueTable/ValueTree раскрывают колонки в `[...]`
|
||||
- DynamicList показывает MainTable через `->`
|
||||
|
||||
### Parameters — параметры формы
|
||||
|
||||
```
|
||||
Parameters:
|
||||
Ключ: DocumentRef.ЗакупкаТоваров (key)
|
||||
Основание: DocumentRef.*
|
||||
```
|
||||
|
||||
- `(key)` — ключевой параметр (KeyParameter)
|
||||
|
||||
### Commands — команды формы
|
||||
|
||||
```
|
||||
Commands:
|
||||
Печать -> ПечатьДокумента [Ctrl+P]
|
||||
Заполнить -> ЗаполнитьОбработка
|
||||
```
|
||||
|
||||
Для расширений с callType на Action:
|
||||
```
|
||||
Commands:
|
||||
Подбор -> Расш1_ПодборПеред[Before], Расш1_ПодборПосле[After]
|
||||
```
|
||||
|
||||
Формат: `Имя -> Обработчик [Сочетание]`
|
||||
|
||||
### BaseForm (расширения)
|
||||
|
||||
Для заимствованных форм в конце выводится:
|
||||
```
|
||||
BaseForm: present (version 2.17)
|
||||
```
|
||||
|
||||
## Что пропускается
|
||||
|
||||
Скрипт убирает 80%+ XML-объёма:
|
||||
- Визуальные свойства (Width, Height, Color, Font, Border, Align, Stretch)
|
||||
- Автогенерированные ExtendedTooltip и ContextMenu
|
||||
- Мультиязычные обёртки (v8:item/v8:lang/v8:content)
|
||||
- Namespace-декларации
|
||||
- Атрибуты id
|
||||
|
||||
Для точечного изучения деталей — используйте grep по имени элемента из сводки.
|
||||
|
||||
## Когда использовать
|
||||
|
||||
- **Перед модификацией формы**: понять структуру, найти нужную группу для вставки элемента
|
||||
- **Анализ формы**: какие реквизиты, команды, обработчики задействованы
|
||||
- **Навигация по большим формам**: 28K строк XML → 50-100 строк контекста
|
||||
|
||||
## Защита от переполнения
|
||||
|
||||
Вывод ограничен 150 строками по умолчанию. При превышении:
|
||||
```
|
||||
[TRUNCATED] Shown 150 of 220 lines. Use -Offset 150 to continue.
|
||||
```
|
||||
|
||||
Используйте `-Offset N` и `-Limit N` для постраничного просмотра.
|
||||
**Расширения**: `[EXTENSION]` в заголовке, `[callType]` на событиях/командах, `BaseForm: present (version X)` в конце
|
||||
|
||||
Reference in New Issue
Block a user