在同一个 client 端,如果不用 FS15 / FS16,要把公司代码 A 的会计主数据(公司代码层)搬到公司代码 B,大体有 3 条思路,按“能不能直接搬表”分成两类:
一、直接搬系统表(最快,后台或开发权限即可,不做 FS15/FS16)
找出公司代码层的核心表
SKB1 – 公司代码层科目主记录
SKA1 – 科目表层(如果 B 的科目表层也缺,也要搬)
T077S – 允许记账的科目类型/税务类别
T001-KTOPL – 公司代码对应的科目表(先确认 A、B 用的是同一科目表,否则后续还要改)用 SAP 标准工具拷贝
SE16 → 选中 SKB1 → 输入 A 公司 → 菜单“表内容”→ “复制”
在弹出的批量修改屏幕里把 BUKRS 字段统一改成 B 公司,保存即可。
如果条目很多,可用 SE16N 的“/BULK/CHANGE”按钮,或让开发同事写一段
INSERT INTO skb1 … SELECT … FROM skb1 WHERE bukrs = 'A'
并把 bukrs 字段硬编码成 B。同步把必须的公司代码层配套记录也按上一步搬过去(T077S、T001 等)。
完成后用 FSS0 或 SE16 抽查几个科目,确认字段(如科目货币、字段状态组、税务类型)无误即可投入使用。
注意:
业务发生以后就不建议直接改表,容易和凭证表(BKPF/BSEG)不一致;
如果 A、B 的科目表层(SKA1)也完全不同,可先把 SKA1 也按同样办法从 A 搬到 B,或用 OBY9 打传输请求。
二、用 LSMW / SHDB 录屏(不碰底表,纯前台模拟)
用 SHDB 录一段 FSS0“新建公司代码层视图”的操作;
把录制包做成 LSMW 模板,数据源就是 A 公司 SKB1 的导出文件;
跑 LSMW 批量在 B 公司生成科目。
速度比 FS15/FS16 慢,但不需要开发机权限,也不违反“只读表”原则。
三、手工一条一条 FSS0(科目少时可用)
打开 FSS0,选“复制”按钮,以 A 公司某科目为模板,把公司代码改成 B,保存即可。几十条以内可以忍受,上千条就不现实。
总结
在同一个 client 且尚未发生业务的前提下,“直接复制 SKB1 并把 BUKRS 改成新公司”是最快、最省事、完全不依赖 FS15/FS16 的做法,也是很多 BASIS / 实施顾问在测试机快速搭公司代码时的常用技巧;如果已上线或没有后台权限,就退而求其次用 LSMW 录屏批量建。