1. 先说清楚:委外加工的钱到底乱在哪里
做了这么多年SAP FICO和MM顾问,最常被业务问住的问题之一就是:“为什么委外加工的价格老是跟PO单价对不上?系统里那些差异科目又是谁在过账?”
说实话,委外业务在系统里看着流程不复杂——你把原材料发给供应商,供应商加工完给你送回成品,你付加工费。但一落到财务账上,问题就全出来了:发票价格跟采购单不一样、来料数量跟发货数量对不上、供应商那边损耗怎么算、加工费要不要进存货成本、还是直接进费用……每个判断都会把差异引到不同的科目去。
这篇我按实际项目里处理过的逻辑,把委外价格差异的产生机制、科目配置的控制点、以及后台要动的关键配置完整梳理一遍。适合刚接手SAP FICO或MM模块的顾问,也适合企业里管成本会计、供应链财务的同事,看完能直接对着自己的系统查配置、捋差异。
先说个核心结论:委外业务的价格差异不是一个点的事,它是从采购订单建立那一刻就开始累积的,一直要走到物料账结账才算真正结束。控制点不在某一个事务码里,而在你对“标准价格/移动平均价/实际成本”这三套成本逻辑的掌控度上。
2. 委外价格差异是怎么一步一步积累出来的
2.1 从外包PO开始:价格源头就埋着雷
委外加工(Subcontracting)在SAP里本质上是“带料加工”:你给供应商供原材料,供应商加工完给你送半成品或成品。系统里它的标准路径是:
- 维护物料主数据的“委外采购”视图(采购类型 F,特殊采购类 30)
- 创建采购订单,订单类型 NB,项目类别 L
- 发货给供应商时使用移动类型 541(供应商库存发货)
- 供应商完工入库使用移动类型 101 + 收货时自动生成 543(消耗供应商库存)
很多人最容易忽略的第一颗雷,就是PO里那个不含税收购价(Net Price)是怎么来的。委外PO的价格通常有两种约定方式:一种是“加工费”,只代表供应商的劳务增值部分;另一种是“含料价”,即供应商采购回来已经含了料件的成本。这两种约定在系统里的财务处理逻辑完全不一样。
如果约定的是加工费,那么原材料成本理论上留在你账上(因为你发了料),供应商返回成品时系统只按加工费增值部分计入存货成本,这在SAP里叫“委外加工增值”。如果约定的是含料价,那本质上变成了一次普通采购,你不应该发541给供应商,否则成本会重复计算。
实际项目里常见的坑:业务方把“含料价”当成“加工费”来创建委外PO,发了料,又按全价收货,最后账上同一个物料出现两倍成本。排查时只能看物料凭证的移动类型和会计凭证的科目,反查PO的价格类型才能定位。
2.2 收货时点:差异第一次显形
委外PO收货时,系统会基于PO单价生成会计凭证,同时按物料主数据的计价方式,决定差异往哪走。
这块是核心,我展开讲。假设你给供应商的加工费PO单价是10元/件,而物料主数据里这个委外品的标准成本是12元/件。那收货的时候分两种情况:
- 物料使用标准价计价(S价):收货时系统按10元暂估入库,同时产生一笔“采购价格差异”过账到差异科目(通常会配置到 PRD 或 KDM 这类差异科目)。这个差异在收货时刻就已经产生了,等于系统告诉你:“你采购订单价格和标准成本之间差了2块钱,这2块钱先挂差异科目,月底参与差异分摊。”
- 物料使用移动平均价计价(V价):收货时系统按10元直接更新库存单价,不会单独产生价格差异。所有的差异积累在库存价值里,等发票来了再调整。
很多企业觉得“我用V价就没差异了”,其实不对。V价只是把差异“埋”进了库存单价,等发票价格一变,或者有跨期收货,差异照样会浮现。只是展现的科目和时点不同罢了。
控制点:委外物料的计价方式,直接影响差异科目的使用频次和月末结账压力。建议在做委外业务前认真评估——如果委外品的成本比较稳定,标准价更利于控制;如果委外价格波动大,移动平均价更贴合实际。
2.3 发票校验时点:差异第二次显形
发票校验(MIRO)是委外价格差异最集中的爆发点。因为业务上PO价格是“预估”,发票价格是“实际”,两者总有差额。
正常流程下,MIRO过账时系统会做三件事:
- 冲销收货时产生的GR/IR借方(暂估应付)
- 确认应付供应商的发票金额
- 将PO价与发票价的差额,依据物料计价方式过账到相应科目
如果是标准价物料,差额直接进“采购价格差异”科目。如果是移动平均价物料,系统会尝试更新库存单价——但这里有个容易翻车的地方:如果该物料当前库存为零,或者库存金额为负,系统不能自动把差异资本化到库存,只能把全部差异过账到“价格差异”科目(即便你的物料计价方式是V价)。
这个行为很多财务很不理解:“我明明是V价物料,怎么还有这么多差异科目余额?”原因就在这里——不是配置错了,而是当期的收货、发货、库存变化让系统无法完成价格更新,只能把差异暴露在损益里。
提示:判断V价物料是否能自动更新库存单价,一个核心逻辑是“库存数量必须为正”。库存为0或负库存时,SAP默认不更新移动平均价,差异落到损益。很多企业月底结账发现差异异常,一半以上是负库存或零库存引起的。
2.4 汇率、舍入与数量差异:容易忽略的隐形差异源
委外业务涉及外币采购时,汇率差异也经常被忽略。PO以美元创建,收货时按当日汇率折算成人民币入账;发票校验可能发生在下个月,汇率变了,系统会在MIRO时产生一笔汇率差异(科目通常是“外币评估差异”或“汇兑损益”)。
这不算委外特有的问题,但委外加工周期长——发料、加工、入库、开票往往跨月或跨季度,汇率差异会被放大。很多成本会计月底对GR/IR时,发现委外PO项下有大量的“未清差异”,其中一大部分就是汇率差异。
数量差异也一样。供应商完工入库数量小于发料数量时,多出来的材料要么算供应商损耗,要么算供应商遗失赔偿。此时541消耗的供应商库存会出现“余料”挂在供应商库存里,长时间不清就会积压在GR/IR侧。
实操提醒:建议每月用事务代码MD07查一次委外供应商库存的覆盖情况,及时处理未清的发料与收货差异,避免差异科目余额滚雪球。
3. 委外科目的控制点:每个科目背后都是一条业务规则
3.1 必须先搞懂的科目配置地图:OBYC的底层逻辑
委外加工的存货类科目,不是像普通总账科目那样在FS00里建个科目就能用的。它必须通过后台IMG路径“物料管理 → 评估和科目设置 → 科目确定 → 无向导科目确定 → 配置自动记账”里维护,也就是我们常说的OBYC配置。
OBYC配置的核心逻辑是“事务码 + 评估类 + 科目表”的唯一组合。对委外加工而言,最关键的几个事务码如下。
我先放一张核心科目映射表,这个表建议保存下来:
| 事务码 | 说明 | 业务场景 | 典型科目 |
|---|---|---|---|
| BSX | 库存记账 | 所有物料收发货的基础存货科目 | 存货(半成品/原材料) |
| WRX | 收货/发票收据差异(GR/IR) | 采购收货时暂估应付,发票校验时冲销 | 应付暂估-采购 |
| PRD | 采购价格差异 | 标准价物料在PO价与标准价不同时产生 | 材料价格差异 |
| KDM | 委外加工差异 | 委外PO收货时,与标准成本差异 | 委外加工成本差异 |
| FR1-FR4 | 采购运费/关税差异 | 采购附带运费或关税时使用 | 采购运费差异 |
| AKO | 成本中心消耗 | 非库存物料直接消耗到成本中心 | 物料消耗费用 |
| PRY | 库存重估差异 | 物料价格重估时产生的差异 | 价格重估差异 |
| KDF | 委外来料特殊库存差异 | 特殊库存“供应商委外”类型的差异 | 委外来料差异 |
从表里可以看到,委外业务至少触及BSX、WRX、PRD、KDM四个事务码,这还不算运费、关税、重估这些扩展场景。如果这四类科目配置不齐全,委外业务的会计凭证就会在过账时报错“科目确定错误”或者把金额挂到错误科目。
3.2 KDM到底管什么:委外差异的关键科目
很多人分不清PRD和KDM的区别,实际使用中我也见过不少顾问把两者混在一起。简单说:
- PRD:管标准价物料“采购订单价格与标准价格”之间的差异
- KDM:管委外特殊库存(O库存类型)在收货增值时,PO加工费与标准成本之间的差异
它们都是差异类科目,但适用场景、记账逻辑和月末处理方式都不一样。委外加工场景下,如果PO加工费是10元,物料标准成本是12元,那么101收货时,系统会把2元差异记到KDM(委外加工差异)科目,而不是PRD。这也符合“谁产生差异、谁承担差异”的精细化管控思路。
但要注意,如果供应商回货时系统发现你在BOM里的组件没有全部发放完,或者组件的价值与标准成本不一致,这部分差异也可能跳到KDM。比如你发给供应商的原材料成本是8元,而BOM标准成本里写的是7.5元,0.5元的差额就会挂到KDM下面。
实操建议:做委外业务上线前,先梳理清楚委外品的BOM结构和标准成本估算,避免上线后产生大量KDM差异挂在账上说不清。另外,KDM科目余额月底必须参与差异分摊或直接进损益,不能长期挂账。
3.3 委外发货的会计逻辑:541移动类型背后的科目流转
委外发料使用移动类型541,这个移动类型在OBYC里的配置很特别——它既不直接产生存货出库费用,也不产生应收应付,而是把库存从“普通库存”转成“供应商委托加工库存”。
这里要特别强调,财务上这叫什么?叫“库存地点转移”,不是消耗出库。所以541过账的会计凭证是:
- 借:委托加工物资(特殊库存-供应商)
- 贷:原材料/半成品存货(自有库存)
这比传统“借:委托加工物资,贷:原材料”多了什么?多了一个特殊库存标识O——系统里物料的库存类型从“自有”变为“供应商库存”,但金额并不真正离开存货大类。如果OBYC里没有为特殊库存O维护对应的科目(通常配置为“委托加工物资”),541就会过账失败。
提示:很多企业上线时只给BSX配了普通库存科目,没有给O库存类型单独配置科目,导致委外发料时系统报错。检查方式很简单:OBYC的BSX事务码里,是否有评估类与事务码BSX、库存类型O同时维护的记录。
3.4 委外收货的会计逻辑:101 + 543的联合凭证
委外入库使用移动类型101时,系统会同时生成两行物料凭证:一行“收货”(增加委托加工成品库存),一行“543消耗”(减少供应商库存组件)。会计凭证上就会反映为:
- 借:委外成品存货(BSX + 成品评估类)
- 贷:委外加工物资-组件消耗(BSX + 组件评估类,特殊库存O)
- 贷/借:委外加工差异(KDM),如果PO价与标准成本存在差异
这步处理的核心是“组件的价值怎么结转”。SAP会自动根据BOM展开,计算出消耗的组件成本,这部分成本会从“供应商库存”转入“完工品库存”里。如果再叠加PO加工费,完工品的收货成本 = 组件成本 + 加工费。
但组件成本怎么计算?取决于你在BOM里维护的数量和物料主数据的成本。
这里有个小坑,很多项目会踩:如果BOM里的组件数量和你实际发给供应商的数量不一致,系统收货时会按照BOM中维护的数量消耗供应商库存,而不是按你实际发货的数量。比如你发了120个备件给供应商,BOM里只写了100个,那收货时只冲销100个供应商库存,剩下的20个会一直挂在供应商库存里,同时委外加工物资科目余额也会多出20个备件的金额。
避坑建议:委外BOM的维护和实际发货数量保持一致。如果不一致,要么调整BOM,要么在收货前通过“委外库存调整”事务代码(如MB1C移动类型542/544)手动调整差异。
4. 后台配置流程:委外科目的完整控制点梳理
4.1 第一步:维护评估类和科目确定
委外公路上,至少需要维护以下评估类:
- 原材料:用于组件物料的库存记账
- 半成品或成品:用于委外加工完成品的库存记账
在“配置自动记账”界面,选中BSX事务码,双击进入“科目确定”维护界面,能看到“评估类 + 科目”的对应关系。注意这里还有个“估值类”(Valuation Class)的概念,SAP里物料主数据“会计1”视图维护的评估类,跟“评估控制”里的“估值类”配合使用。很多顾问在配置时只会把评估类映射到科目,却忽略了检查“估值类”是否为“空”,导致科目确定失败。
实操中我的习惯是:
- 用事务码OMWB查看当前评估类的配置状态
- 用事务码OBYC进入科目确定的维护界面
- 依次检查BSX、WRX、PRD、KDM、FR1-FR4的配置
- 特别检查“库存类型”字段,确保O库存类型(委外)有独立的科目行
4.2 第二步:配置GR/IR自动冲销
委外PO收货后会产生GR/IR科目余额,发票校验时冲销。SAP里GR/IR的处理有标准方案:收货时借GR/IR(实际应该叫“应付暂估”),发票校验时贷GR/IR。但GR/IR科目的清账逻辑需要配置好,否则月底对账时会有大量无法清账的未清项。
关键配置在“定义GR/IR清账的差异科目”里,IMG路径:物料管理 → 库存管理和实际库存 → 收货/发货 → 设置Key for GR/IR账户清账。
这里有个细节:如果PO存在“含税价”和“不含税价”两种价格口径,GR/IR冲销时会有税费差异。很多企业会把GR/IR设置成“始终显示税码”,避免系统默认按不含税价过账,导致月底应付账款与收货暂估不一致。
4.3 第三步:配置委外加工的收货差异科目
前面提到的KDM科目,配置路径是:物料管理 → 评估和科目设置 → 科目确定 → 无向导科目确定 → 配置自动记账,进入后找到KDM事务码,为对应的评估类维护科目。
但这里还有一个容易被忽视的增强点:委外加工收货时,系统允许你配置“差异的记账方式”,即在“定义评估控制的过账变式”里,可以设置“价格差异是进入损益科目还是资本化到库存”。
这个配置直接决定了委外价格差异是进当期损益还是进存货成本。对于生产周期长、成本波动大的企业,我一般建议把委外加工差异资本化到库存——因为这是真正意义上的“成本归集”,而不是费用化。但也有人会坚持全部费用化,减少月末差异分摊的复杂程度。没有绝对的对错,根据企业财务策略定。
4.4 第四步:补充价格重估和物料账配置
如果企业启用了物料分类账(Material Ledger)来精细化核算实际成本,那么委外业务还会涉及:
- 事务码CK24:价格重估,用于调整物料价格
- 事务码MR11:采购差异重估,用于将GR/IR差异分配到库存或消耗
- 事务码CKM3:物料价格分析,用于查看差异在库存与消耗之间的分摊逻辑
物料账模式下,委外加工的差异进入“单层价格差异”科目,月末结账时,通过CKM3分析差异去向,然后统一通过“物料账结账”事务码(如CO88或KOB1)将差异资本化到库存或过账到损益。
这个工作千万不要手工记账处理,一旦手工干预,物料账的“差异分配链”就会断裂,到下月结账时你会看到一串莫名其妙的“上期差异结转”借方/贷方余额,排查起来非常痛苦。
实操心得:凡是启用了物料账的公司,委外价格差异不允许手工清账,哪怕是财务总监催着“赶紧把这个科目清掉”,也不要直接在F-02里做一笔冲销凭证。正确做法是走MR11或CKM3跑分摊,让系统把差异分配到正确的库存或消耗对象上。
5. 常见问题与排查技巧实录
5.1 委外PO收货时报错“科目确定错误”
这是最常见的报错,通常原因是OBYC里BSX事务码缺少对应评估类+库存类型的科目行。排查步骤:
- 查看物料主数据“会计1”视图,确定评估类
- 用OBYC查BSX事务码下是否有该评估类
- 确认是否有特殊库存类型O的对应行
- 如果确认缺行,在OBYC里补充配置即可
5.2 委外发票校验时“GR/IR无库存收货”的差异处理
MIRO报“GR/IR无库存收货”,通常是采购订单已经做了部分或全部发票校验,但收货数量与发票数量出现偏差。此时不要强行过账,先把PO历史和物料凭证捋一遍,确定差异原因。
如果是“包装差异”(供应商多送、少送),需要补做收货或退货;如果是“价格差异”,确认发票单价跟PO单价的差额,在MIRO里用“差额”功能过账,系统会自动把差异转到价格差异科目。
5.3 委外加工品当月有入库,但KDM科目月末余额异常
月末检查KDM科目余额,发现明明当月委外入库了很多,但差异科目余额跟预想不符。这个多数是标准成本估算没有及时更新导致的。委外品的标准成本变了,但物料主数据里的标准价没有通过CK40N(成本估算)或CK24(价格重估)刷新,系统就会用旧标准价跟新PO价做差异,结果自然偏大。
建议:每月结账前,用事务码CK40N对委外品批量跑一次成本估算,再用CK24把新标准价发布到物料主数据,最后用CKM3检查差异分摊结果。这套组合拳打下来,委外差异科目基本不会出大问题。
5.4 供应商库存长期未清,541和543量不匹配
检查供应商库存量,可以用事务代码MBLB(供应商库存清单)或MD07。如果发现大量供应商库存挂在账上超过一个月,优先排查是否委外BOM维护的组件数量与实际发料数量长期不一致。
处理方式:如果供应商已经加工完但未来得及收货,可以立刻做收货冲销供应商库存;如果实际库存已消耗完,但系统没冲销,可以手动使用移动类型544做“委外供应商库存调整”来清零挂账库存。
5.5 委外价格差异与产品成本估算脱节
最后一个高级问题:委外加工费差异怎么进入产品成本?很多企业把委外PO价跟产品标准成本里的“外购加工费”共用同一个金额,但标准成本里的委外加工费需要单独维护。如果两者不一致,CKM3分摊后,差异可能会跳进“产出差异”或“输入价格差异”,而不是KDM。
处理建议:在标准成本估算结构里,单独维护“外包加工费”的价格字段,并确保与采购信息记录(事务码ME11/ME12)里的价格一致。用事务码CK13N查看标准成本构成,逐项比对委外加工费金额。
6. 我的控制点清单:上线前照着检查一遍
根据过往项目的经验,我整理了一份委外价格差异和科目控制的检查清单,建议上线前或每月结账前过一遍:
| 检查项 | 说明 | 涉及事务码 | 常见问题 |
|---|---|---|---|
| 委外物料主数据完整性 | 采购类型、特殊采购类、评估类设置正确 | MM01/MM02 | 特殊采购类缺失导致PO无法创建 |
| OBYC科目映射完备 | BSX/WRX/PRD/KDM均有评估类对应 | OBYC | 收货或发票校验报科目错 |
| 委外BOM与实际发料一致 | BOM组件数量与实际发放一致 | CS01/CS02 | 供应商库存长期挂账 |
| PO价格与采购信息记录一致 | PO价与ME11信息记录价格一致 | ME21N/ME11 | 收货价格差异异常 |
| 标准成本估算已发布 | 委外品标准成本反映了最新加工费 | CK40N/CK24/CK13N | KDM差异偏高 |
| 库存数量为正 | 避免V价物料因零库存产生意外差异 | MMBE | V价物料差异进损益 |
| GR/IR月结清账 | 未清GR/IR逐笔核对、及时处理 | F.13/MR11 | 应付暂估长期挂账 |
这份清单也是我在每次上线项目中给财务团队做培训用的底稿。每次照着查一遍,能把委外业务的大多数科目异常掐死在萌芽阶段。
7. 最后再分享一个踩过的坑
去年做一个制造企业的委外项目,上线三个月后财务突然说委外加工物资科目余额跟实物对不上,差异金额高达几十万。我们排查了一个下午,最后发现问题出在“委外BOM里有替代料”——物料A缺货时业务员用了物料B替代发给供应商,但系统里的委外BOM没有同步更新,导致541发货时按物料A过账、543收货时却按BOM里的物料A冲销,成本口径完全错乱。
所以给所有做委外业务的朋友一个铁律:业务上每一笔替代料的发放,都要同步维护委外BOM。否则你后面所有差异分析都会指向错误的方向,排查起来极其痛苦。
至于委外科目的控制点,说到底不是某一个后台科目配置的事,而是从业务发料、BOM维护、标准成本估算、PO价格、发票校验、月末分摊这一整条链路上,每一个环节都得有“差异敏感度”。把这套逻辑建立起来,委外的账就不会乱。