ARTICLE DETAIL

资讯详情

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

SAP寄售结算规则全解析:从信息记录到MRKO的配置与实操

SAP寄售结算规则全解析:从信息记录到MRKO的配置与实操 干SAP项目这么多年寄售结算规则这块我见过太多次上线后被财务追着问的场景。明明库存数量能对上供应商对账单金额却怎么都平不了明明做了MRKO结算应付账款还是挂在暂估里下不来。说到底大家不是不会跑流程而是没把寄售结算规则背后那套“何时作价、按什么价结算、结算到哪里”的逻辑吃透。这篇内容想把我做MM/FICO项目时关于寄售结算的配置思路、实操步骤和踩坑记录完整过一遍尤其适合刚接手寄售业务的MM顾问、FICO顾问以及供应链上天天跟对账打交道的业务同事。1. 寄售结算的底层逻辑与适用场景1.1 寄售业务到底长什么样寄售Consignment在SAP里的本质是供应商把货放在你的仓库但物权在消耗之前一直属于供应商。你用多少就跟供应商结算多少用不掉的可以随时退回去。很多做装配的企业螺丝、包材、油漆这类物料特别喜欢走寄售因为库存资金占用一下子降下来了供应商也能拿到长期稳定的订单双方各取所需。这个模式和普通采购有一个非常关键的区别普通采购收货那一刻物权已经转移给你库存价值和应付义务同时确认寄售则把“物权转移”和“资金结算”拆成了两个动作。物资先到厂SAP里记一笔寄售库存特殊库存类型O财务上没有应付也没有存货价值直到你把它用掉物权才真正转移财务上才确认成本和负债。这个“拆成两步”的设计是整个寄售结算规则所有配置和逻辑的出发点。我用一张对比表来说明项目上跟业务解释时这张表基本够用对比维度普通采购寄售采购物权转移时点收货时消耗时收货是否记应付记形成GR/IR不记只记寄售库存数量财务入账时点收货时消耗时发票来源采购订单收货走MIRO基于消耗走MRKO库存类型自有库存特殊库存O供应商寄售这个差别看着简单但牵扯出来的配置和流程细节非常深。很多项目上线后对账不平根子就出在业务人员把寄售当成普通采购来管或者反过来把普通采购的发票流程硬套在寄售上。1.2 结算规则到底在“结”什么我拆解寄售结算规则时习惯把所有问题收敛成四句话结给谁、结多少、按什么价结、什么时候结。结给谁结算对象是供应商。但SAP里还要限制在哪个工厂产生的消耗同一个供应商在不同工厂的寄售结算是分开的。结多少结算数量以消耗量为准。消耗多少就结多少没消耗的还留在寄售库存里。按什么价结寄售结算的价格用的是消耗那一刻寄售库存的账面价值而寄售库存的账面价值是收货时按采购信息记录价格锁定的。什么时候结结算时点由财务控制通常月末或某个结算周期用MRKO批量处理。很多人会把第四条理解成“结算时重新从信息记录取价格”这是大坑。我在测试环境里验证过很多次供应商调了价你把采购信息记录改了新收货肯定按新价进寄售库存但之前已经收进来、还没消耗的老库存金额并不会跟着变。哪怕库存数量和实物一模一样账面金额也是老价格。MRKO在结算时汇总的是消耗动作产生的负债不是结算那一刻的信息记录价格。这一点不理解后面所有对账问题都会反复出现。“结给谁、按什么价结”这两条落到系统里就是结算规则的核心供应商、工厂、物料、价格来源。我觉得把它说成“结算四要素”也不为过后面所有配置和实操都围绕这四个要素展开。2. 结算规则的核心配置从信息记录到OBYC科目2.1 寄售信息记录与价格来源寄售结算的价格来源最上游是寄售信息记录。用事务码ME11创建物料、供应商、工厂填好后在采购组织数据里维护条件净价就是将来收货时的移转价格。有人会问既然结算按消耗时的库存账面价值那信息记录价格到底什么时候起作用答案是700收货寄售收货那一刻。SAP收到701时会按信息记录里的条件价格给这批寄售库存计算一个账面价值数量进特殊库存O金额挂在寄售库存上。这个价格一旦锁进去后续消耗、结算都以它为准。所以寄售信息记录里的价格不是结算时才用而是收货时就“锁定”了。这也是为什么我反复跟项目上的采购同事强调寄售涨价不是改了信息记录就完事要处理老库存的差额问题。这个问题后面专门展开讲。实践中有个细节一个物料完全可以同时有寄售信息记录和普通采购信息记录SAP是支持的。但我在项目上不建议这么搞日常业务很容易把采购订单类型搞混消耗一方不知道自己用的是寄售库存还是自有库存月底对账就乱。如果确实要两种模式并存必须在物料主数据、货源清单、采购订单类型上严格控制。2.2 移动类型与库存状态寄售库存的移动类型和普通库存不一样这是配置和日常操作最容易出错的地方。标准SAP里常用的几个寄售移动类型我列一下移动类型业务含义是否更新财务701寄售库存收货否只记数量和寄售账面价值702寄售库存退货否411寄售库存转自有库存是借自有库存贷寄售负债412寄售库存消耗到成本中心/生产订单/资产等是借费用或成本对象贷寄售负债451/452将自有库存退回寄售库存是重点说一下701做MIGO收货时很多人看到“没有会计凭证”就以为出了错其实不是701本来就不产生财务凭证。因为物权还在供应商手里你不用确认应付也不用确认存货。这个动作在系统里只是一个“数量价值的入库动作”价值挂在特殊库存O上。411和412才是真正让财务“心动”的步骤。411是把寄售库存转成自己的自有库存之后再用201、261之类正常发料412则是直接消耗到成本中心或者生产订单一步到位。项目上最大的坑是把201或261用在寄售库存上。普通移动类型消耗掉的是自有库存系统根本不会把它算进寄售结算池结果就是实物消耗了、MRKO里看不到未结算项目、供应商对账单对不上。遇到这种问题先别急着调配置直接查MB51里的移动类型就能定位。2.3 OBYC科目配置与KDM交易寄售结算的财务科目确定核心在OBYC里配一个交易KDM。这个交易对应的科目是“寄售负债”也就是确认对供应商应付暂估的科目。411/412消耗寄售库存时贷方科目就是KDM下配的科目。到MRKO结算时系统会做一笔“借寄售负债、贷供应商应付”的分录把暂估负债转成正式应付。我见过不少项目图省事没配KDM直接借用了普通采购的GR/IR科目。短时间看也能过账但月底报表里寄售负债和GR/IR混在一起区分度很差想单独看这个供应商还有多少寄售消耗没结算根本拆不出来。我的建议是单独配一个寄售负债科目哪怕和GR/IR科目在同一个科目表范围也分开设科目编码。OBYC里另一个相关交易是BSX它管库存记账科目。比如411把寄售库存转成自有库存借方就是BSX找到的存货科目。如果你启用了“评估类型/评估类别”物料还要按工厂、按批次、按评估类型分别做分拆评估BSX的科目确定会加上评估修改这一层。寄售库存同样可以参与分拆评估但配置复杂度会往上走项目上要提前谈好批次级库存估价到底按什么维度展开。现在很多企业上S/4HANA会顺手做批次级库存估价寄售这块经常被忽略等消耗凭证出来后才发现科目取错了。另外供应商清账时会用到特别总账标志寄售结算生成的应付凭证如果带了特殊总账标识F-44清账时要特别留意别选错行项目。3. 完整实操寄售结算流程一步步跑通3.1 创建信息记录与采购订单第一步是ME11创建寄售信息记录。进入后选择“寄售”标识维护供应商、物料、采购组织、工厂然后在条件页签里维护净价。规范项目一般还会把货源清单也维护掉否则后面创建采购订单时系统会提示必须维护货源清单才能创建采购订单这个管控逻辑有时候会拦掉正常业务需要在项目初始化时统一约定。第二步是ME21N创建采购订单。采购订单类型可以用NB但行项目类别必须改成K寄售。这里有个容易忽略的点寄售采购订单在收货时不像普通采购订单那样形成采购订单历史里的发票校验状态因为后面根本不走MIRO而是走MRKO结算。所以看采购订单历史时会觉得“怎么没有发票”这是正常的。标准SAP其实也允许不建寄售采购订单直接用701往寄售库存里收货只要有寄售信息记录就能做。但我强烈建议规范项目还是走采购订单哪怕只是一个框架协议式的寄售PO因为供应商、工厂、物料、价格这些信息都能在采购订单层面管控住MRKO结算也更容易追溯。3.2 收货与消耗的凭证流收货用MIGO移动类型701输入采购订单号确认数量后过账。过账后看不到FI凭证只看到一张物料凭证。这时候可以用MMBE查一下物料会出现特殊库存O的寄售库存数量增加但自有库存数量不变。消耗环节分两种常见业务先转自有库存再发料用MB1A做411把寄售库存转到非限制使用库存。财务凭证是“借原材料/半成品等存货科目BSX贷寄售负债KDM”。转完后再用201或261正常发料。直接消耗到成本中心或生产订单用MB1A做412输入成本中心或生产订单。财务凭证是“借制造费用/生产成本等科目贷寄售负债KDM”。第一种方式适合物料领用不规律、需要先入库再慢慢发料的场景第二种适合消耗节奏明确、一领出就直接进成本对象的场景。从内控角度消耗到生产订单比消耗到成本中心更精细但操作成本也高。项目上要根据企业的成本核算颗粒度来定不能一刀切。消耗完MRKO的未结算清单里就会出现这笔未结算项金额就是消耗数量和收货锁定单价的乘积。到这里为止系统里对供应商的负债还是暂估状态挂在KDM科目下。3.3 MRKO结算操作要点MRKO是寄售结算的核心事务码界面打开后输入供应商、工厂系统会把当前未结算的寄售消耗项列在下面。实际操作时我会强烈建议先做“测试运行”勾上测试运行再执行系统会告诉你将会生成哪些结算凭证但不会真正过账。确认无误后再去掉测试运行正式执行。MRKO支持按“各类标记”选择结算行项目也可以让系统按结算日期自动圈定范围比如只结算某个截止日期之前的所有未结算项目。这种“批处理”方式适合月末结账一次性结算完整个期间的所有寄售消耗。正式执行后SAP会生成一张结算凭证同时生成对应的财务凭证借方是寄售负债KDM科目贷方是供应商应付。这时候供应商主数据里的应付余额才真正增加。你去FB03查凭证流能看到从收货物料凭证、消耗物料凭证到结算发票凭证的完整链路。MRKO结算后如果想冲销回到MRKO界面菜单里有“冲销结算凭证”的选项输入结算凭证号即可。注意如果供应商应付已经做了清账得先把清账冲掉再冲销寄售结算凭证顺序反了系统会报错。3.4 清账与凭证流核对寄售结算生成应付后财务用F-44清账付款这个动作和其他采购发票的付款清账没有本质区别。真正要花精力的是核对三个数MMBE里寄售库存特殊库存O的数量和金额对应的是“还在供应商手里的货”MRKO界面的未结算清单对应的是“我们已经消耗但还没结算的钱”供应商应付款余额对应的是“已经结算还没付的钱”。这三个数分别代表寄售业务的不同阶段经常出现对不上的情况不是系统错了而是业务卡在了某个环节。比如消耗了但没跑MRKO那第二个数会很大第三个数很小跑完MRKO但还没付款第二个数为零第三个数变大。我整理了一个简单的对账顺序先看MMBE数量对不对再看MRKO未结算清单是否为零最后看供应商应付余额和对方的对账单是否一致。每一步都有明确的业务动作对应问题定位很快。4. 进阶场景价格变更、外币重估与生产订单差异4.1 信息记录价格变更怎么办寄售价格变更是项目上最麻烦的事因为SAP的机制是“收货锁定价格消耗确认负债”。如果不做任何处理改完信息记录只影响新收货的部分老库存的账面价值纹丝不动结算起来就是“混着新旧价格”。处理方式取决于企业和供应商的调价约定如果调价只针对新到货那非常简单直接改信息记录生效日期新货按新价收货老货按老价结算。如果调价要追溯执行即老库存未消耗部分也要按新价结算那就需要在信息记录改价后对寄售库存账面价值做重估调整。SAP里可以尝试MR21调整价格但寄售库存属于特殊库存OMR21能不能直接改要看系统版本和配置项目上经常要辅以财务手工调整凭证或者做一笔寄售负债的调整分录。我的经验是寄售调价尽量选在结算周期边界不要把调价和结算混在同一天。比如先跑完MRKO把截至上月底的消耗全部结算掉再执行新价格这样新旧价格的边界非常清晰对账和审计都少很多麻烦。反过来如果调价发生在月中未结算消耗横跨两个价格区间系统不会自动帮你分两段算对账时说不清楚。4.2 外币供应商与FAGL_FCV重估寄售供应商如果是外币结算规则会多一层汇率问题。消耗时按当天的记账汇率确认寄售负债MRKO结算时按结算日汇率生成供应商应付付款时又按付款日汇率清算这中间会天然产生汇兑差异。月末跑外币评估FAGL_FCV时系统会对未清的外币应付做重估生成评估损益凭证。有个实际案例去年我在一个项目上客户跑FAGL_FCV外币评估系统直接报错“无法过账财务凭证ECS凭证编号 $000000001ECS年度 2026”。这个报错看着吓人其实问题不在寄售结算本身而是新年度会计期间没有开、凭证编号范围没维护好。遇到这种带ECS凭证编号、ECS年度的报错优先检查OB52会计期间是否已打开再检查FBN1里对应凭证类型的编号范围是否正确维护了新年度的字段。如果这两处都没问题再回头看外币评估方法本身的科目配置。操作上有个小习惯月末外币评估跑之前先把该跑的MRKO寄售结算全部跑完把寄售负债转成供应商应付。这样一来FAGL_FCV重估的对象就是实实在在的供应商应付余额而不是一堆还挂在暂估科目里的未结算项。如果你习惯用旧的事务码或者手工过账外币调整凭证思路也是一样先把暂估负债清干净再对外币应付做重估账务层次会清楚很多。4.3 生产订单消耗寄售与KO88结算用412把寄售物料直接投到生产订单是离散制造里比较常见的做法。好处是物料消耗直接对应成本对象省掉“先转自有库存再投料”的中间步骤。但这里有个连锁反应412消耗时生产订单收到的实际成本是按寄售库存的账面价值也就是收货时锁定价格计入的而供应商最终发票MRKO结算也是按这个价值结转应付款两者一般是一致的。真正让“生产订单结不平”的往往不是寄售结算本身而是生产订单收货和投料之间的价格差。比如成品收货用的是标准成本或移动平均价而生产订单实际成本里受寄售物料消耗价格、其他投料价格波动、废料等多种因素影响最终KO88结算时会出现差异。如果项目上还开了物料分类账寄售差价还会参与单层或多层差异分摊差异链路更长。排查生产订单结不平我的建议是按这个顺序走先看订单状态对不对再看KO88报什么错然后看生产订单的成本报表确认差异科目通常走PRD有没有在OBYC配好。如果这些都正常最后才考虑是不是寄售物料消耗价格和发票结算价格存在时间差导致的差异。很多时候问题不在寄售而在标准成本估算的模板价格已经过时没有在MRP策略组、成本变式里及时更新。我特别提醒一点生产订单消耗寄售物料时尽量保证当月消耗、当月结算。如果拖到次月才做MRKO消耗那个月的生产订单已经做过差异结算了寄售结算产生的差异会落到别的期间月结报表对这种跨期差异非常敏感财务会很想拍桌子。5. 常见问题与排查避坑实录5.1 为什么MRKO看不到未结算项目MRKO界面干干净净一条未结算项都没有但业务明明消耗了很多寄售料。这个问题我遇到不下五次最常见的原因是消耗时用了错误的移动类型。用MB51查过账的移动类型如果发现是201、261、262这类普通移动类型那就说明业务把寄售库存当自有库存发掉了系统根本不会计入寄售结算池。还有一种情况是消耗的物料根本不在寄售库存状态里。比如先做了411转自有库存再发料那MRKO里当然没项目因为411那一刻已经把寄售负债确认掉了。再往下想连411都没做只是做了一笔库存转移那寄售库存根本没消耗MRKO里没有是正常的实物还在账上挂着。排查时用MMBE按工厂、物料、库存类型查一遍看清楚寄售库存余额是增加了还是减少了。如果余额没减少说明消耗没发生在寄售库存上如果余额减少了但MRKO没项目先查移动类型再查是否有程序或后台作业已经自动结算过了。5.2 结算金额与供应商发票不一致这个问题的根源通常还是价格锁定机制。供应商对账时拿他系统里的发货单价格来算而你的寄售库存收货时锁定了当时的信息记录价格。如果中间供应商调过价两边算出来的金额必然不一样。处理这类差异不是去改MRKO的结算金额而是要在结算之外做后续调整。标准做法是用MIRO做一笔贷项或借项凭证把差额补上或者由财务手工做一张调整记账凭证把寄售负债或成本费用科目调平。业务层面必须和供应商确认一个调价基准日按基准日之前、之后分成两段计算不然这个差异永远说不清。我在项目上最喜欢做的一件事是引导采购在供应商调价邮件发出来的当天就在SAP里把信息记录价格更新掉并在注释里写明生效日期。虽然这只影响新收货但至少让系统里的状态和业务实际状态保持同步后续对账和审计都有据可查。5.3 MIGO检查时物料被锁定MIGO做寄售收货或消耗时偶尔会提示物料被锁定过账不进去。最常见的原因是有其他用户或后台作业正在操作同一个物料尤其是月末大批量过账、批导程序跑得正欢的时候。系统里用SM12看锁对象一般能看到谁锁了这个物料锁了多久。处理起来就两条路等锁自动释放或者由管理员手工删除锁条目。我建议不到万不得已不要手工删锁因为删锁时可能伤到正在执行的事务导致数据不一致。最好的办法是把寄售收货、消耗、MRKO结算这类批量操作统一安排在低峰期执行并做好作业错峰。另外如果项目上有BADI或者增强在做物料主数据检查MIGO保存时也会加重锁的持仓时间这点容易被忽略。5.4 常见问题速查表症状可能原因排查/处理方式MRKO未结算清单为空但实物已消耗用了201/261等普通移动类型消耗寄售库存MB51查移动类型按411/412重做或调整凭证MRKO结算金额和供应商发票不一致收货锁定价格与供应商调价存在时间差先确认调价基准日做后续借项/贷项或手工调整凭证MIGO过账提示物料被锁其他用户/后台作业并发操作SM12查锁错峰作业不要轻易手工删锁外币评估报ECS凭证编号、年度错误新年度期间未开或编号范围未维护检查OB52、FBN1先跑完MRKO再做外币重估生产订单KO88结不平标准价/消耗价差异、PRD科目配置、WIP计算按订单状态、成本报表、OBYC-PRD顺序排查701收货后财务没有任何凭证这是正常现象寄售收货不更新FI不需要处理消耗411/412时才生成财务凭证供应商对账单里有退货SAP账上没体现702退货没做或退回批次未同步核对702凭证检查退货物料凭证流转状态这张表不完整但基本覆盖了我这几年项目上被问到最多的问题类型。每一条背后都可能还有更深的环境差异排查时结合系统版本、后台配置和业务场景综合判断。6. 结语前的一个建议最后再说一点个人体会。我每次做寄售结算项目都会专门跟财务确认KDM科目清账逻辑很多人不清楚“消耗时贷KDM”和“MRKO结算时借KDM”这两个动作的含义导致月结时总盯着GR/IR科目看却不知道寄售负债分布在另一个科目里。建议月结前把MRKO未结算清单导出跟业务确认一遍确认所有消耗都真实有效再跑结算这样能省掉大量反复冲销的功夫。另外一个实用的小习惯是在寄售信息记录维护界面的价格条件里加上生效日期和备注把调价依据、审批人、生效日期全部记录下来这样将来审计也好供应商对账也好都有据可查。寄售业务本身并不复杂复杂的是规则边界没理清时所有差异都会堆积到财务核算上。把“何时作价、按什么价结算、结算到哪里”这三个问题解决掉寄售结算就成功了一大半。
返回列表