name: form-info description: 分析1C管理表单结构(Form.xml)— 元素、属性、命令、事件。用于理解表单 — 在编写表单模块、分析处理程序和元素时使用。 argument-hint: <FormPath> allowed-tools:
- Bash
- Read
- Glob
/form-info — 表单紧凑摘要
读取管理表单的Form.xml并输出紧凑摘要:元素树、带类型的属性、命令、事件。替代了阅读数千行XML的必要性。
使用方法
/form-info <FormPath>
参数
| 参数 | 必填 | 默认值 | 描述 |
|---|---|---|---|
| FormPath | 是 | — | Form.xml文件的路径 |
| Limit | 否 | 150 |
最大输出行数(防溢出保护) |
| Offset | 否 | 0 |
跳过N行(用于分页) |
命令
powershell.exe -NoProfile -File .claude/skills/form-info/scripts/form-info.ps1 -FormPath "<路径到 Form.xml>"
带分页:
powershell.exe -NoProfile -File .claude/skills/form-info/scripts/form-info.ps1 -FormPath "<路径>" -Offset 150
阅读输出
标题
=== Form: ФормаДокумента — "Реализация товаров и услуг" (Documents.РеализацияТоваровУслуг) ===
表单名称、标题(Title)和对象上下文从文件路径和XML确定。
Properties — 表单属性
仅非标准属性(与默认值不同)。Title在标题中显示,不在此处:
Properties: AutoTitle=false, WindowOpeningMode=LockOwnerWindow, CommandBarLocation=Bottom
Events — 表单事件处理程序
Events:
OnCreateAtServer -> ПриСозданииНаСервере
OnOpen -> ПриОткрытии
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(显示元素数量而不是展开) |
[Popup] |
Popup |
[BtnGroup] |
ButtonGroup |
标志(仅当与默认值不同时):
[visible:false]— 元素隐藏(Visible=false)[enabled:false]— 元素不可用(Enabled=false)[ro]— ReadOnly=true,collapse— Behavior=Collapsible(用于组)
数据绑定:-> Объект.Поле — DataPath
命令绑定:-> ИмяКоманды [cmd] — 表单命令,-> Close [std] — 标准命令
事件:{OnChange, StartChoice} — 处理程序名称
标题:[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]
Заполнить -> ЗаполнитьОбработка
格式:Имя -> Обработчик [组合键]
省略内容
脚本省略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] 显示150行中的150行。使用 -Offset 150 继续。
使用-Offset N和-Limit N进行分页查看。