技能使用指南

form-add(表单添加)Skill 是什么?能一键生成 1C 表单吗?

表单添加Skill(form-add)让 1C 配置开发告别手工建表单:一条命令生成元数据 XML、Form.xml 与 BSL 模块,并自动在对象根 XML 中注册、设置默认表单,支持对象/列表/选择/记录四种用途。本文详解安装验证、参数用法、竞品对比与真实应用场景,帮团队把表单创建标准化,立即了解如何用它提升配置开发效率。

表单添加Skillform-add
19 个章节 约 22 分钟阅读 AI 智能生成

表单添加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 配置开发中,“给一个对象加一张表单”看起来简单,实际却是一串高度重复、又极易出错的动作:

  1. 在 Forms/ 目录下新建 <FormName>.xml,并且必须写入唯一 UUID;
  2. 新建 <FormName>/Ext/Form.xml,使用 logform 命名空间描述表单;
  3. 再建 <FormName>/Ext/Form/Module.bsl,把 5 个标准区域和 ПриСозданииНаСервере 处理器写全;
  4. 回到对象根 XML 的 ChildObjects 里插入 <Form> 节点,且必须放在 <Template> 或 <TabularSection> 之前,否则结构顺序就错;
  5. 如果这是该对象的“第一个”表单,还要手动填写 DefaultObjectForm、DefaultListForm、DefaultChoiceForm、DefaultRecordForm 等属性。

这五步任何一步的拼写、顺序或命名空间出错,配置就可能无法通过完整性检查。表单添加Skill 的价值,就是把这一整套“样板 + 注册 + 默认值”的动作压缩成一次命令调用:你只需要告诉它对象路径和表单名称,剩下的结构它来搭。

一键安装的思路与步骤

安装 AI 技能提升开发效率,本质上是把“能力”装进你的 AI 编码助手,让它在需要时自动读取技能说明并执行脚本。通用流程如下(具体安装命令与技能市场入口以官方说明为准):

前提条件

  • 已安装并可使用支持 Skill 机制的 AI 编码助手运行环境(如 Claude Code 类终端助手);
  • 本地已有一份可编辑的 1C 配置导出目录(XML 形式),即 Documents/、Catalogs/、InformationRegisters/ 等结构存在;
  • 具备 PowerShell 执行能力(技能通过 powershell.exe -NoProfile -File ... 调用脚本);
  • 工作目录下存在(或将被创建).claude/skills/ 技能目录。

安装步骤

  1. 通过技能市场或技能包安装:在技能平台搜索“表单添加Skill”或英文名 form-add,点击安装 / 添加到工作区。若使用命令行方式,请参照官方提供的技能安装命令(以官方说明为准)。
  2. 确认落盘位置:安装完成后,技能应出现在工作目录的 .claude/skills/form-add/ 下,且包含技能定义文件与 scripts/form-add.ps1 脚本。
  3. 确认依赖可用:检查技能声明允许的工具(Bash / Read / Write / Edit / Glob / Grep)在当前环境未被禁用,否则技能无法读写配置 XML。
  4. 重载会话:多数运行环境需要重新打开会话,让技能被重新扫描加载。

验证是否生效

  • 在对话中直接输入 /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 不支持数据处理器。遇到失败先核对对象的类型与用途是否匹配。