ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SAP在制品科目计算逻辑详解:从WIP原理到CO88月结实操

SAP在制品科目计算逻辑详解:从WIP原理到CO88月结实操 第一次带着财务做月结看到生产订单里冒出一笔贷方分录时她一脸困惑“订单都没做完为什么还有成本往总账走”我打开凭证借方是“在产品”贷方是生产订单成本告诉她这就是SAP在制品科目在干活。在制品英文叫WIP很多项目里也叫在产品、半成品。月末跑结算时系统会把未完工生产订单上已经投入但尚未结转的成本单独拎出来挂到资产负债表上。整个逻辑听上去就是一句话没完工的订单不能把成本全部砸进当期损益。但真正落到KKA2、KKAO、CO88这些事务代码上有不少细节会直接影响这笔挂账金额对不对。这篇文章想顺着月末结账的视角把在制品科目计算逻辑讲透再配一个可以直接套用的完整示例。适合月末结账的财务、刚接手CO模块的顾问以及被生产订单结算折腾过的人。理解这个逻辑之后再看KKA2里的数字就不会觉得它是黑盒了。1. 在制品科目到底是什么资产负债表上的“半成品成本”1.1 未完工订单的成本不能全部进损益先说业务本质。企业生产一件产品材料领出来了、工时也报了、设备也转了但月底订单只完成一部分。会计上怎么处理这部分成本如果全部计入当期费用当月利润会被严重压低而仓库里的半成品和未完工订单对应的存货却没有任何金额资产负债表左右两边都对不上。所以SAP设置了一个中间过渡科目把完工部分对应的成本转去库存把未完工部分对应的成本留在“在制品”科目里。这个逻辑很像装修房子。装修才做完水电材料费和人工费已经花了十万但这十万不能全部算作当月“亏损”因为它对应的是一套还在施工中的房子应该作为“在建工程”挂起来。SAP里的生产订单就是这套房子在制品科目就是在建工程。订单最终完工并入库在制品被冲回成本才正式转进存货或者结转损益。1.2 在制品计算的核心公式与会计归属在制品科目的余额变化绕不开下面这个核心公式在制品金额 生产订单累计实际成本 - 累计已转出的收货成本 - 已结算到差异或其他科目的金额生产订单累计实际成本是订单借方发生的所有成本包括材料出库、报工确认的作业成本、费用分摊、外协加工费等。累计已转出的收货成本是订单收货到仓库时按标准价或计划价格结转出去的金额通常由MIGO或MB31收货过账产生。已结算到差异或其他科目的金额是指订单的成本已经通过差异结算、废品结算转走的那部分。这个公式算出来的结果最终会过账到资产负债表科目。换句话说在制品属于资产不是费用。所以每个月跑结算时系统不是简单地把订单成本“清零”而是把未完工那部分变成一项资产留在账上等后续完工再继续转。理解了这一层后面看凭证就不容易发晕。1.3 与目标成本、完工状态的关系在制品计算不是对所有订单都适用。生产订单有不同状态系统会根据状态判断要不要计算在制品。常见对应关系如下订单状态是否计算在制品说明CRTD已建立否订单还没下达没有实际成本不存在在制品REL已下达是可以领料和报工月末未完工需要计算PDLV部分交货是已经部分收货剩余成本形成在制品DLV完全交货是货已全部收完但技术上未完成仍可能残留差异TECO技术完成否订单已技术完成不再发生成本只做差异结算CLSD已关闭否订单彻底关闭不能再有业务过账这里最容易踩坑的是订单明明已经不再生产了却一直没有做TECO。这种情况下订单状态仍停留在REL或者DLV系统每个月都会把剩余成本当成在制品挂账久而久之资产负债表上就会滚出一个说不清来源的“在产品”这是月结中很常见的问题。另外在制品计算还会参考目标成本。SAP后台可以配置是否启用目标成本检查。如果启用系统会比较订单实际成本与目标成本当实际成本超过目标成本中未确认产出的部分超出部分会转入差异而不是全部作为在制品。这个逻辑在后面示例里会展开讲。2. 先把地基打好在制品计算需要的配置与前提2.1 结算规则决定订单“往哪走”生产订单创建时系统会依据订单类型自动带出一条结算规则告诉你这张订单的成本最终应该结到哪里。常见的目标是“物料”产成品、“成本中心”、“内部订单”或者“在制品/差异科目”。如果没有结算规则或者结算规则的目标类型不对月末跑CO88时会直接报错WIP金额也就无从谈起。创建或修改订单时通过CO02进入“结算规则”页签可以看到“结算类型”默认为PER期间结算下面有分配规则。生产订单的标准结算规则通常是“结算到物料”或“结算到成本中心”。对在制品计算来说结算参数文件中必须勾选“在制品计算”相关选项否则系统不会执行WIP计算。很多项目里订单类型复制时没注意这个字段导致月底个别订单类型怎么跑都没有WIP这种问题排查起来很隐蔽。我的建议是项目上线初期就用CO02抽查每个订单类型的默认结算规则并在OPPR订单类型配置里把“结算参数文件”和“在制品计算”标志一起检查。后面再出现WIP不计算的问题就不要在代码上折腾先看结算规则。2.2 在制品科目的后台定义在制品科目需要在后台提前定义不然结算过账时系统找不到科目。最常用的事务代码是OKB3。路径通常在“生产成本-成本对象控制-期末结算-在制品-定义在制品科目”下。配置时按评估范围或工厂维护一个总账科目这个科目一般是资产负债表科目比如“在产品”“自制半成品”“在产品-生产订单成本”等。很多顾问会把在制品科目和库存商品科目搞混。库存商品是已经完工入库的存货在制品是还没完工留在生产线的存货两者不能混在一个科目。如果项目中这两类都挂在同一个科目下月结后报表上很难解释清楚余额来源。建议至少按“在产品-材料”“在产品-工费”区分或设立独立科目便于审计和追溯。如果后台科目没配好CO88运行时通常会出现类似“科目未定义”或者“确定在制品科目失败”的消息。遇到这种问题不要急着改代码先回OKB3检查评估范围是否维护了科目再检查公司代码的科目表是否正确。2.3 作业价格与订单状态对计算结果的影响在制品计算的前提是订单上的实际成本要真实完整。很多项目月底发现WIP金额偏低原因不是逻辑错了而是报工没做或者作业价格没维护。作业类型价格来自KP26计划价格报工时会按计划价格记入订单。如果作业价格为零人工和机器成本就不会进入订单在制品自然小一大截。月底如果做了作业价格重估KSV5/KSII订单成本还会被重新调整。所以正确的月结顺序是先归集实际成本再运行作业价格重估再执行订单结算。如果先跑了CO88后面才发现作业价格漏了就得冲销结算重跑否则在制品金额口径不准次月再冲来冲去财务很难对账。订单状态方面前面表格已经列了。实际操作中建议在跑在制品计算前先跑一遍订单状态报表把所有PLD状态但长期不收货的订单拉出来。这类订单往往是关闭流程漏掉了需要逐个确认能TECO就TECO该报废就做报废否则WIP挂账会一直侵蚀报表可信度。3. 系统计算在制品的四个关键步骤3.1 归集订单实际成本整个计算链条的起点是订单上有没有足够的实际成本。材料出库时MB1A或者MIGO过账借生产订单初级成本要素贷原材料库存。报工时通过CO11N或CO15确认工时系统按作业类型和工时数量计算出作业成本借生产订单次级成本要素贷成本中心。制造费用如果通过成本核算单或分摊循环进入订单也会增加订单借方。这些过账动作都会累计到“订单实际成本”里。我在项目上遇到过很多次订单已经收货了但材料发料用的是“移动类型 261 倒冲”到了月底发现负责报工的人没有及时确认工时作业成本全没进去。结果订单实际成本只有材料WIP和差异全部偏小。所以说在制品计算前先做成本归集凭证检查比直接跑结算更重要。3.2 确认收货转出成本生产订单的产出部分是靠收货过账体现的。当产成品或半成品完成并入库时MB31或MIGO收货系统按物料主数据里的标准价格或计划价格从订单贷方转出成本借库存科目贷生产订单。这笔“转出成本”是计算在制品时要减掉的部分。这里有个关键点收货按标准价转出不是按订单实际单位成本转出。所以当订单实际成本低于标准价时收货越多订单贷方金额越大甚至会大于借方导致订单余额为负。如果订单尚未完工系统计算WIP时就会出现负数。实际发货时遇到这个问题要先看标准价是否合理再看成本是否核算过低而不是盲目去调WIP。3.3 用KKA2/KKAO/CO88算出WIP在制品计算和订单结算并在一起完成。单个订单可以先跑KKA2查看在制品和差异情况也可以直接运行KKAO做单订单结算。批量月结通常用CO88选择公司代码、订单类型、工厂等条件后勾选“结算”和“在制品”相关选项可以测试运行确认无误后正式执行。系统内部做的事可以拆成三步。第一步判断订单状态是否属于需要计算在制品的范围TECO和CLSD订单直接跳过。第二步汇总订单累计实际成本汇总累计收货数量及转出成本。第三步执行差额计算如果订单完工差额进差异科目如果未完工差额进在制品科目如果计算结果为负且超过允许范围则转入差异处理。从实际使用角度我一般跳过KKAO直接看KKA2优先。KKA2能按订单显示在制品和差异明细还能比较实际成本和目标成本。看到金额异常时双击行项目可以下钻到成本要素和凭证比CO88直接跑出来一个结果更容易定位问题。3.4 生成CO和FI凭证看懂“冲销重提”计算完成后系统会生成两张层面的凭证。CO层凭证反映的是成本对象之间的内部结转订单成本借到WIP。FI层凭证是真正的财务过账借记在制品科目贷记生产订单对应成本科目。举个例子借在产品-生产订单成本 4000元 贷生产订单成本 4000元更有意思的是这道WIP凭证不是永久挂账的。下期开始或下次再结算时SAP会先把上期WIP冲销再按当期累计成本重新计算本期WIP。这个机制叫“冲销重提”。所以你会发现每月CO88跑完系统里既有红字冲销凭证又有新的WIP计提凭证。这不是错误是SAP的标准做法目的是让在制品余额始终等于“截至当期累计投入与产出之差”。如果不懂这个机制很多人看到上期WIP被冲销会心里发慌以为数据被清掉了。实际上只要本期订单还是没有完工新的WIP凭证立马会补上余额只是在当月短暂归零再重新建立最终反映的还是最新的成本口径。4. 一个生产订单的在制品计算示例全过程4.1 基础数据准备拿一张常见的生产订单举例。订单号临时编作10012345生产物料A计划数量1000件。物料A的标准价格是10元/件所以订单的目标成本总额为10000元。到月末订单状态为“REL”只完成部分收货共收货600件没有做TECO。也就是说这张订单属于典型的未完工订单系统必须计算在制品。本月订单实际成本构成如下表成本项目金额元说明原材料4000生产领料人工作业成本1800报工确认工时机器作业成本3000机器工时分配制造费用1200费用分摊进入合计10000订单借方累计这个例子中订单累计实际成本恰好等于目标成本总额。这种情况在SAP里比较少但作为示例比较直观。实际业务中通常会有差异后面我会补充两种常见偏差情况。4.2 目标成本、实际成本与转出成本计算先算已转出成本。收货600件按标准价10元/件结转转出成本 600 × 10 6000元。再算订单累计实际成本由上面的表可以知道是10000元。由于订单未完工系统从订单主数据里取目标成本10000元并按收货比例计算“已确认产出的目标成本”也就是 10000 × 600÷1000 6000元。这个“已确认产出的目标成本”实际上和收货标准价转出成本是一致的都是6000元。它代表的意思很清晰这600件已经入库的完工产品按标准口径应该承担6000元成本。未确认产出的目标成本则是10000 - 6000 4000元对应仓库里还没收到的另外400件。4.3 不同实际成本情形下的在制品差异分析基础案例中实际成本等于目标成本那么在制品的计算就非常直接在制品 订单累计实际成本 - 累计已转出收货成本 10000 - 6000 4000元这4000元正好等于未确认产出的目标成本4000元。也就是说还有400件没完工这400件对应的成本挂到了资产负债表逻辑上非常工整。再看另一种常见情况如果本月实际成本不是10000而是11000元其他条件不变系统会怎么处理累计实际成本11000减去转出成本6000差额是5000元。但未确认产出的目标成本只有4000元说明有1000元的成本已经超出了剩余400件应有的标准成本。这部分超支其实是生产差异不应该继续资产化。所以系统会把这个差额拆分4000元进入在制品另外1000元转入生产差异科目。结果是在制品仍然等于4000元差异1000元。第三种情况是实际成本偏低比如本月实际成本只有5000元而转出成本已经6000元订单余额变成-1000元。如果按公式硬算在制品就是-1000元资产科目不能挂负数。系统一般不会确认负的在制品而是把-1000元视为有利差异转入差异科目在制品金额记为0。这个处理提醒我们看到“差异”和“在制品”的此消彼长背后很可能就是标准价偏高或成本回冲造成的。情形实际成本转出成本简单差额最终在制品差异成本正常100006000400040000成本偏高110006000500040001000成本偏低50006000-10000-10004.4 月末凭证核对与下期衔接月末正式结算时CO88会针对这张订单生成一个凭证。借方在制品科目4000元贷方生产订单成本4000元。总账里的“在产品”科目余额增加4000元生产订单的在制资产得到体现。到了下个月订单继续生产并最终完工。假设下月又发生实际成本2000元同时剩余400件全部收货累计实际成本变成10000200012000元累计产出的标准成本变成1000件×10元10000元。下月结算时系统先冲销上月WIP 4000元再重新计算。由于订单已全部收货不再有在制品订单余额12000-100002000元全部作为差异转入当期损益。最终WIP为0订单干净关闭。看这个过程你会发现WIP就像一个临时蓄水池。订单没完工时多投的成本先存在蓄水池里完工后再释放出来转入库存或损益。只要每个月都把池子里的水平调整到“截至当前真实投入与产出之差”资产负债表就不会失真。5. 常见问题与排查技巧实录5.1 WIP余额永远挂不平多半是订单状态没管好月结时经常遇到的一种情况是在制品科目余额不断上涨但生产车间说某些订单早就不做了。查起来订单状态还停在“REL”没有TECO也没有GL结算。系统当然会觉得这个订单永远未完工每个月都继续计提WIP。排查方法是先列一张“长期未TECO的生产订单”清单。用CO03逐个看订单状态用MB51或MD04查订单还有没有后续收货计划。如果确定不再生产直接CO02做TECO如果还有尾数要收先补齐收货再TECO。处理完后再跑KKA2WIP金额会立即变小甚至归零。这里有一个容易忽略的点TECO并不等同于关闭订单。TECO后订单还可以做少量收货也会产生后续差异结算但不会再计算WIP。所以那些“想彻底了结”的订单应该在TECO后尽快做CLSD防止之后再冒出后续成本过账。5.2 在制品变负数先查收货数量和成本回冲WIP出现负数是最让财务头疼的情况。我在项目上遇到过一次某订单标准价虚高物料实际成本却很低收货越多订单贷方就越大最后KKA2里WIP显示负数。系统通常不会把负数作为资产入账而是转成差异所以严格来说账面上看不到负WIP但差异数据的异常却能反映出来。遇到负WIP不要急着在后台改科目先做三件事。第一用MB51查看该订单所有收货凭证确认收货数量是不是超过了计划数量。第二用KOB1查看订单成本行项目看有没有材料退库、发票红冲带来的贷方冲减。第三用CK11N/CK24检查物料标准价是否长期偏离真实成本。标准价严重失真时优先调标准价而不是用财务手工调整去掩盖问题。5.3 重复结算与跨期不符理解冲销逻辑经常有人看到CO88跑完后WIP相关凭证一个月内出现两次一次是红字冲销一次是蓝字重新计提就以为重复计算了。其实这是SAP标准的“冲销重提”逻辑。每次运行结算时系统都会冲掉上期WIP再用当前累计成本算一遍新的WIP。所以“重复”只是过程最终科目余额只有一期。跨期对不上的时候重点检查两点一是上月结算是否真正完成了如果上月CO88只做了测试运行没有正式更新那本月冲销对象就会缺失二是本月是否有成本过账不及时比如材料发票没有及时录入、作业价格没有重估这些都会让“重新计提”的基数不完整。想验证WIP对不对可以拿KKA2的“在制品”视图手动算一遍累计投入减累计产出再和科目余额核对。5.4 用MD04和KKA2做数据追溯复核在制品计算牵涉到物料流、工时流和财务流复核时不能只看CO凭证。我习惯把MD04和KKA2结合着看。MD04能显示一个物料当前库存、计划订单、生产订单需求和收货情况帮我判断某个订单到底有没有后续业务KKA2则显示订单当前的WIP金额和实际成本差异。如果MD04显示订单还有大量收货计划而KKA2里WIP为0那订单基本有问题要么未报工要么结算没跑。MD07虽然更多用于汇总需求但在排查“某个物料为什么总在挂在制品”时也能用。它能看到未来需求来源识别订单是否已经没有对应销售需求或计划订单只是僵尸式地挂在系统里。对长期不动的WIP物料用MD07再配合库存报表能快速锁定是哪张订单在持续影响资产科目。数据追溯还可以延伸到FI端。用S_ALR_87012089等总账报表查看在制品科目余额按工厂、订单范围进一步细分。如果审计要求解释科目余额变动的来源KKA2的行项目下钻就是最直接的证据链。我在实际项目里的体会是在制品科目看似复杂本质上就是一个“未完工订单的成本蓄水池”。跑结算前别急着执行先把订单状态、收货数量、作业价格这几个前提检查一遍再让系统去算通常不会出大问题。如果某个月WIP突然异常不要怀疑系统逻辑回到订单上查成本归集和状态变更问题基本都能定位出来。最后再提醒一句所有后台配置都改完后一定要用一张真实订单从头到尾跑一遍测试确认KKA2数字、CO88结果和总账凭证三条线全部一致再通知财务月结。
返回列表