---
name: kd-enterprise-project
description: 企业版工程管理与业务对象设计规范。命名/组织/业务对象扩展。
alwaysApply: false
---

# 企业版工程与设计规范

## AI 工程策略（硬答，优先读）

1. **空目录不能**用 kcode **脚手架完整 .NET 插件工程**（无 `dotnet new` 整包生成 csproj 的产品能力）。
2. **`kd-enterprise-csharp` 前提**：目录里**已有** `.sln`/`.csproj`（类库或 WPF 控件工程）且能挂 `Kingdee.BOS` 引用；先认工程再写插件。
3. **`kcode init --enterprise`**：只生成 `.trellis`/`.kcode`/产品画像与协作配置，**不会**生成 `.csproj`。
4. 开发者用 Visual Studio 建 .NET Framework 4.5+ 类库（或 WPF 控件工程）并引用金蝶 DLL 后，再用 skill 写代码。

## 工程管理

- 【强制】工程命名：`{开发商标识}.{项目}.{工程归类}`（如 `PPAB.K3Cloud.PrintingSystem`）
- 【强制】命名空间必须与工程名、生成的程序集名称一致，大驼峰法则
- 【强制】禁止将源码上传 GitHub 等公开平台
- 【强制】编译后的组件不允许修改名称后部署到生产环境
- 【强制】必须使用协同开发云，代码通过应用源码服务管理
- 【推荐】表单插件工程：`{标识}.{项目}.{归类}.XxxxxBusinessPlugIn`
- 【推荐】服务操作插件工程：`{标识}.{项目}.{归类}.XxxxxServicePlugIn`

## 业务对象命名
- 【强制】扩展或新增业务对象 Key 以开发商代码+下划线排头（`PAAB_xxxxx`），长度 ≤ 30 字符
- 【强制】扩展字段标识必须以开发商代码+下划线排头（`F_PAAB_xxxxx`）
- 【强制】扩展的任何元素（标签/页签/面板等）标识以开发商代码+下划线排头

## 业务对象设计
- 【强制】不允许对一个业务对象进行多个平级扩展（多安装包/行业产品导致的平行扩展必须显式指定加载顺序）
- 【推荐】一个单据的数据库表字段总数原则上不超过 50 个
- 【强制】框架布局下，停靠上/下/左/右的元素 ≤ 1 个，中间停靠 = 1 个
- 【强制】网控必须配置（防止并发修改数据导致错误）
- 【推荐】基础资料表单主键建议使用整型（否则不支持单据转换）
- 【强制】禁止在基对象上新增字段（子对象表结构不会自动刷新）
- 【强制】禁止多层扩展中重复加入相同标识的字段
- 【强制】禁止对同一父节点在同一层级扩展多次
- 【强制】禁止相同开发商在同一个业务对象上多次扩展
- 【强制】系统已设置为禁止扩展的业务对象，禁止非法解除封禁
- 【强制】系统预置的数据或规则，禁止非法解除预置状态
- 【强制】禁止直接修改元数据（`BusinessInfo` / `LayoutInfo`）
- 【强制】禁止修改领域模型元数据定义（`T_MDL_*` 相关表）
- 【强制】使用过的反写规则禁止删除（不使用时可以禁用）
- 【强制】禁止对 `t_bf_instance_*` / `t_bf_tabledefine` 表进行增删改

## 开发环境
- 【推荐】建议部署 DEV / SIT / UAT / PRO 四套环境，版本和补丁保持一致
- 【推荐】通过在线构建的 `kdpkg` 包统一管理制品
- 【强制】AI 编码假定工程已存在：先识别 `.sln`/`.csproj` 与 `Kingdee.BOS` 引用再写插件；**禁止**在空目录脚手架整套 .NET 工程
- 【强制】**禁止**声称 kcode 可一键生成完整企业版插件 csproj 工程
- 【推荐】`kcode init --enterprise` 仅初始化协作配置与产品画像，不替代 csproj
