表单添加Skill:一条命令为 1C 配置对象生成可用的管理表单
核心结论速览
- 表单添加Skill(form-add)是一个专为 1C(1С:Предприятие)配置开发场景设计的 AI 技能,用来把“手工创建管理表单”这件重复劳动变成一条命令。
- 它一次执行就能生成三样东西:表单元数据 XML(含 UUID)、Form.xml 表单描述、带 5 个区域和
ПриСозданииНаСервере事件的 BSL 模块,并自动在所属对象的根 XML 中注册。 - 支持文档、目录、信息寄存器、数据处理器、报表、会计科目表、交换计划、业务流程、任务等多种对象类型,覆盖 Object / List / Choice / Record 四种表单用途。
- 通过
--set-default可直接把新表单设为对象的默认表单,省去回到设计器里改属性的步骤。 - 它不是“生成一堆你不敢用的代码”,而是遵循 1C 标准目录结构与命名空间,生成结果可以直接进入后续的
/form-edit、/form-validate、/form-info工作流。
1. 该技能叫什么?如何一键安装 AI 技能提升开发效率?
基本信息
| 项目 | 内容 |
|---|---|
| 中文名 | 表单添加Skill |
| 英文名 | form-add |
| 技能ID | 11952 |
| 技能类型 | 命令式技能(斜杠命令 /form-add) |
| 依赖工具 | Bash、Read、Write、Edit、Glob、Grep |
| 适用技术栈 | 1C:Предприятие 配置对象 XML(元数据 + 表单 + BSL 模块) |
它到底解决什么问题?
在 1C 配置开发中,“给一个对象加一张表单”看起来简单,实际却是一串高度重复、又极易出错的动作:
- 在
Forms/目录下新建<FormName>.xml,并且必须写入唯一 UUID; - 新建
<FormName>/Ext/Form.xml,使用logform命名空间描述表单; - 再建
<FormName>/Ext/Form/Module.bsl,把 5 个标准区域和ПриСозданииНаСервере处理器写全; - 回到对象根 XML 的
ChildObjects里插入<Form>节点,且必须放在<Template>或<TabularSection>之前,否则结构顺序就错; - 如果这是该对象的“第一个”表单,还要手动填写
DefaultObjectForm、DefaultListForm、DefaultChoiceForm、DefaultRecordForm等属性。
这五步任何一步的拼写、顺序或命名空间出错,配置就可能无法通过完整性检查。表单添加Skill 的价值,就是把这一整套“样板 + 注册 + 默认值”的动作压缩成一次命令调用:你只需要告诉它对象路径和表单名称,剩下的结构它来搭。
一键安装的思路与步骤
安装 AI 技能提升开发效率,本质上是把“能力”装进你的 AI 编码助手,让它在需要时自动读取技能说明并执行脚本。通用流程如下(具体安装命令与技能市场入口以官方说明为准):
前提条件
- 已安装并可使用支持 Skill 机制的 AI 编码助手运行环境(如 Claude Code 类终端助手);
- 本地已有一份可编辑的 1C 配置导出目录(XML 形式),即
Documents/、Catalogs/、InformationRegisters/等结构存在; - 具备 PowerShell 执行能力(技能通过
powershell.exe -NoProfile -File ...调用脚本); - 工作目录下存在(或将被创建)
.claude/skills/技能目录。
安装步骤
- 通过技能市场或技能包安装:在技能平台搜索“表单添加Skill”或英文名
form-add,点击安装 / 添加到工作区。若使用命令行方式,请参照官方提供的技能安装命令(以官方说明为准)。 - 确认落盘位置:安装完成后,技能应出现在工作目录的
.claude/skills/form-add/下,且包含技能定义文件与scripts/form-add.ps1脚本。 - 确认依赖可用:检查技能声明允许的工具(Bash / Read / Write / Edit / Glob / Grep)在当前环境未被禁用,否则技能无法读写配置 XML。
- 重载会话:多数运行环境需要重新打开会话,让技能被重新扫描加载。
验证是否生效
- 在对话中直接输入
/form-add(不带参数),若技能正常加载,助手会依据argument-hint提示你应传入<ObjectPath> <FormName> [Purpose] [--set-default]; - 也可以直接问助手“当前可用的 form-add 技能怎么用”,看它是否能复述参数表与支持的对象类型;
- 更稳妥的验证方式:在一个测试对象上跑一次最小命令,观察
Forms/目录是否按预期生成三个文件。
提示:首次使用建议在配置副本或版本控制下的分支中试跑,确认生成结构无误后再应用到主配置。
2. 该技能的主要功能和特点
- 一次生成完整表单骨架(三件套):表单元数据 XML(带 UUID)、
Ext/Form.xml(logform 命名空间)、Ext/Form/Module.bsl(5 个区域 +ПриСозданииНаСервере)。不是只建一个空文件,而是把“能编译、能打开、能继续编辑”的完整框架一次搭好。 - 自动完成根 XML 注册:在对象的
ChildObjects中插入<Form>节点,并严格遵守“位于<Template>或<TabularSection>之前”的顺序约束,这是手工编辑最容易踩的坑。 - 默认表单自动管理:当对应
Default*Form属性为空时自动写入;也可通过--set-default显式指定为默认表单,主动覆盖或指定。 - 四种表单用途按语义分流:
Object(对象表单,组件为*Object.名称)、List(动态列表)、Choice(选择列表)、Record(信息寄存器记录管理器),并且会根据用途自动匹配“允许的对象类型”和对应的DefaultForm属性名——比如Record只对信息寄存器开放,用错会当场暴露,而不是等到运行时才发现。 - 支持面广:文档、目录、数据处理器、报表、外部数据处理器、外部报表、信息寄存器、会计科目表、特性类型表、交换计划、业务流程、任务。
- 同义词可自定义:通过
Synonym参数直接指定界面显示名称,例如--synonym "选择商品",避免生成后再进设计器改名。 - 可编排进流水线:官方给出了四步工作流——
/form-add搭框架 →/form-compile或/form-edit填充元素 →/form-validate校验 →/form-info分析结果。它不是一个孤立的玩具命令,而是一条工具链的入口。
和普通工具相比强在哪? 普通的 AI 助手会“帮你写一段 XML”,但它不知道 1C 的目录约定、不知道 UUID 必须唯一、不知道 <Form> 必须排在 <Template> 前面、也不知道 DefaultChoiceForm 只对特定对象有意义。这个技能把这些领域知识固化进了参数规则与脚本中,让生成结果是“结构正确的”,而不仅仅是“看起来像对的”。
3. 如何使用该技能?
命令语法
/form-add <ObjectPath> <FormName> [Purpose] [Synonym] [--set-default]
底层实际执行的是:
powershell.exe -NoProfile -File .claude/skills/form-add/scripts/form-add.ps1 -ObjectPath "<ObjectPath>" -FormName "<FormName>" [-Purpose "<Purpose>"] [-Synonym "<Synonym>"] [-SetDefault]
参数说明
| 参数 | 必选 | 默认值 | 描述 |
|---|---|---|---|
| ObjectPath | 是 | — | 对象 XML 文件路径,如 Documents/文档.xml |
| FormName | 是 | — | 表单名称,如 ФормаДокумента |
| Purpose | 否 | Object |
用途:Object、List、Choice、Record |
| Synonym | 否 | 等于 FormName | 表单同义词(界面显示名) |
| –set-default | 否 | 自动 | 设置为默认表单 |
四种 Purpose 的适用范围
| Purpose | 允许的对象类型 | 主要组件 | 触发的 DefaultForm 属性 |
|---|---|---|---|
| Object | 文档、目录、数据处理器、报表、外部数据处理器、外部报表、科目表、交换计划、业务流程、任务 | 对象(类型:*Object.名称) |
DefaultObjectForm(数据处理器/报表类为 DefaultForm) |
| List | 除数据处理器外的所有类型 | 列表(DynamicList) | DefaultListForm |
| Choice | 文档、目录、科目表、交换计划、业务流程、任务 | 列表(DynamicList) | DefaultChoiceForm |
| Record | 信息寄存器 | 记录(InformationRegisterRecordManager) | DefaultRecordForm |
分步操作指南
第 1 步:确认对象路径。 打开你的配置目录,找到目标对象的 XML,例如 Catalogs/Контрагенты.xml。路径是相对路径,需与你当前工作目录一致。
第 2 步:确定表单用途与名称。 想清楚这张表单是给谁用的:编辑单据用 Object,列表浏览用 List,选择器用 Choice,信息寄存器录入用 Record。表单名称建议遵循项目既有命名习惯。
第 3 步:执行命令。 按场景选择写法,以下是官方示例:
# 文档的对象表单
/form-add Documents/АвансовыйОтчет.xml ФормаДокумента --purpose Object
# 目录的列表表单
/form-add Catalogs/Контрагенты.xml ФормаСписка --purpose List
# 信息寄存器的记录表单
/form-add InformationRegisters/КурсыВалют.xml ФормаЗаписи --purpose Record
# 带同义词的选择表单
/form-add Catalogs/Номенклатура.xml ФормаВыбора --purpose Choice --synonym "选择商品"
# 创建并设为默认表单
/form-add Documents/Заказ.xml ФормаДокументаНовая --purpose Object --set-default
第 4 步:检查生成结果。 执行后你应看到如下结构:
<ObjectDir>/Forms/
├── <FormName>.xml # 表单元数据(含 UUID)
└── <FormName>/
└── Ext/
├── Form.xml # 表单描述(logform 命名空间)
└── Form/
└── Module.bsl # BSL 模块,含 5 个区域 + ПриСозданииНаСервере
同时,回看 <ObjectPath>,应能在 ChildObjects 中找到新增的 <Form> 节点,且位置在 <Template> 或 <TabularSection> 之前;若该对象此前没有默认表单,对应的 Default*Form 属性也应被写入。
第 5 步:继续填充与校验。 用 /form-compile 或 /form-edit 往 Form.xml 里加控件与绑定,再用 /form-validate 检查正确性,最后用 /form-info 分析结果。
输入输出小结: 输入是“对象路径 + 表单名 + 可选语义参数”,输出是“一套符合 1C 约定的表单文件 + 一处根 XML 注册 + 可能的一处默认表单属性更新”。它不负责业务逻辑,Module.bsl 里只有标准区域骨架和 ПриСозданииНаСервере 事件,业务代码仍需你自己写——这是它的边界,也是它安全的地方。
4. 同类型竞品对比分析
| 方案名称 | 定位 | 核心功能 | 安装/使用门槛 | 适用场景 | 优势与不足 |
|---|---|---|---|---|---|
| 表单添加Skill(form-add) | AI 技能,命令行式表单脚手架生成器 | 一条命令生成三件套 + 自动注册 + 默认表单管理 + 四种用途分流 | 需 Skill 运行环境与 PowerShell;安装入口以官方说明为准;学习成本主要是记住参数 | 批量补表单、标准化项目脚手架、AI 辅助开发流水线 | 优势:语义化参数、结构正确、可编排进 /form-validate 等工作流;不足:只搭骨架不做业务逻辑,依赖 1C XML 导出目录结构 |
| 1C 设计器手工创建 | 官方 IDE 可视化操作 | 拖拽生成表单,自动维护元数据 | 零额外安装,但需要熟悉设计器界面 | 单张复杂表单、需要即时可视化预览 | 优势:所见即所得、行为最权威;不足:重复劳动多、难以批量、无法被 AI 编排,跨对象批量创建时效率低 |
| 手工编写/复制 XML | 直接编辑配置 XML | 完全自由控制 | 门槛最高,需精通元数据格式、UUID、节点顺序 | 极特殊结构、需要精确控制每一个节点 | 优势:无额外依赖;不足:极易因节点顺序、命名空间、UUID 重复而报错,可维护性差 |
| 通用 AI 编码助手(无该技能) | 通用对话式代码生成 | 能写 XML 片段、解释 1C 概念 | 门槛低 | 咨询、片段级代码 | 优势:灵活;不足:不了解 1C 目录约定与 Default*Form 规则,容易生成“看起来对但注册不上”的结果,需要人工逐项核对 |
选型建议: 如果你只是偶尔改一张表单,设计器仍然最稳;如果你要在一个项目里成批补齐标准表单、并希望把这一步接入 AI 工作流,form-add 的收益最明显;纯手工编 XML 只建议在需要突破常规结构时使用。
5. 该技能的典型应用场景与实际体验情况
场景一:新项目快速铺开标准表单
角色: 1C 配置开发工程师。
痛点: 新立项时,十几个目录和文档都需要“对象表单 + 列表表单 + 选择表单”三件套,纯手工要花掉半天以上,而且命名风格容易不统一。
使用方式: 按对象批量执行 --purpose Object / List / Choice,统一表单命名规则,并对主表单加 --set-default。
实际体验: 上手难度低,命令结构固定,跑通第一个之后基本靠复制粘贴改路径。效果最明显的是“一致性”——所有表单的模块区域和事件处理器结构完全一致,后续代码评审和团队交接成本明显下降。注意事项:批量执行前务必确认对象路径无误,建议在版本控制下操作以便随时回滚。
场景二:给已有对象补一张选择表单
角色: 维护遗留配置的开发者。
痛点: 老配置里某目录只有对象表单,业务上需要在另一个文档里选它,必须新增选择表单并设置 DefaultChoiceForm,但很容易漏配。
使用方式: /form-add Catalogs/Номенклатура.xml ФормаВыбора --purpose Choice --synonym "选择商品"。
实际体验: 同义词参数省掉了二次进设计器改名的步骤,Choice 用途会自动对到 DefaultChoiceForm,避免“表单建了但选择器不生效”的经典问题。注意事项:Choice 并非对所有对象类型开放,脚本会按规则拒绝不合法的组合。
场景三:信息寄存器录入表单
角色: 负责核算/汇率类寄存器模块的开发人员。
痛点: 记录表单的组件类型是 InformationRegisterRecordManager,与普通对象表单完全不同,手写容易混淆。
使用方式: /form-add InformationRegisters/КурсыВалют.xml ФормаЗаписи --purpose Record。
实际体验: 这是最能体现“领域知识固化”的场景——选对用途后,组件类型和 DefaultRecordForm 都会自动正确。注意事项:寄存器记录表单通常需要自定义字段布局,生成后仍需用 /form-edit 补齐控件。
场景四:把表单创建接入 AI 开发流水线
角色: 探索 AI 辅助开发的技术负责人。
痛点: 想让 AI 参与配置开发,但担心它“自由发挥”破坏元数据结构。
使用方式: 固化流程为 /form-add → /form-edit → /form-validate → /form-info,每一步都有明确输入输出。
实际体验: 分段式流程让 AI 的介入被限制在可控范围内,校验环节兜底。注意事项:这是官方给出的工作流建议,实际项目中建议把 form-validate 设为强制执行环节,避免未经校验的 XML 进入主干。
6. 该技能能为用户带来的价值
效率提升:把“半天”压缩到“几条命令”。 手工创建一张表单涉及 4~5 个文件的创建与修改,其中根 XML 注册和默认属性填写是最耗时也最容易返工的部分。技能把这三类动作合并为一次调用,单张表单的机械劳动时间可大幅压缩,对象越多、收益越明显。
质量提升:把易错点交给规则处理。 <Form> 节点必须在 <Template> / <TabularSection 之前、UUID 必须唯一、Default*Form 与 Purpose 必须匹配、Record 只能用于信息寄存器——这些“只有踩过坑才知道”的约束被写进了技能逻辑,减少了因结构错误导致的配置完整性报错。
门槛降低:新手也能产出规范结构。 团队成员不必先背熟 1C 元数据 XML 规范才能参与开发,只要理解“对象 / 列表 / 选择 / 记录”四种用途的语义,就能生成结构正确的表单,把学习曲线从“记格式”转移到“懂业务”。
长期价值:标准化与可编排。 当表单创建被标准化为一条命令,它就变成了流水线中的一个节点,可以被脚本批量调用、被 Code Review 规则约束、被 AI 工作流串联。对团队而言,这意味着配置骨架的产出不再依赖某位资深开发者的手感,而是依赖一套可复现的流程。
7. 常见问题 FAQ
Q1:这个技能怎么安装?装在哪里?
A:通过技能市场或技能包将“表单添加Skill / form-add”安装到工作目录的 .claude/skills/form-add/ 下,确保其中包含脚本 scripts/form-add.ps1。具体安装命令与市场入口以官方说明为准。安装后重新打开会话,在对话中输入 /form-add 看是否返回参数提示,即可验证是否生效。
Q2:它是收费的吗? A:技能本身的价格策略(免费或付费)取决于发布方与所在技能平台的规则,请以官方说明为准。需要注意的是,该技能依赖 PowerShell 与你的本地配置目录运行,不涉及额外的运行时授权成本。
Q3:它适合谁用?零基础能用吗? A:主要面向 1C 配置开发人员、1C 项目实施团队,以及希望用 AI 辅助配置开发的技术负责人。零基础用户需要先理解 1C 的“对象 / 表单 / 模块”基本概念,尤其是四种 Purpose 的含义,否则容易选错用途。命令本身很简单,难的是语义判断。
Q4:生成的代码能直接用吗?会不会破坏我的配置?
A:工具生成的是标准表单骨架:元数据 XML、Form.xml 和包含 5 个区域的 Module.bsl(含 ПриСозданииНаСервере),不包含业务逻辑,控件与绑定需要通过 /form-compile 或 /form-edit 继续填充,再用 /form-validate 校验。它只会在对象根 XML 的 ChildObjects 中新增 <Form> 节点并按需更新 Default*Form 属性,不会删除既有内容。仍建议在版本控制下或配置副本中首次试用。
Q5:和直接在 1C 设计器里建表单相比,我该选哪个? A:单张、需要即时可视化调整的复杂表单,设计器更合适;需要成批创建、统一命名风格、或要把创建动作接入 AI 工作流时,form-add 优势明显。两者也能配合使用:用技能生成规范骨架,再进设计器微调布局。
Q6:为什么我的 --purpose Record 执行失败了?
A:Record 用途只允许用于信息寄存器,其他对象类型会不符合规则。同理,Choice 只对文档、目录、科目表、交换计划、业务流程、任务开放;List 不支持数据处理器。遇到失败先核对对象的类型与用途是否匹配。