☰
SAP寄售结算规则全解析:从信息记录到MRKO的配置与实操
2026/10/4 6:42:13 网站建设 项目流程

干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调整价格,但寄售库存属于特殊库存O,MR21能不能直接改要看系统版本和配置,项目上经常要辅以财务手工调整凭证,或者做一笔寄售负债的调整分录。

我的经验是:寄售调价尽量选在结算周期边界,不要把调价和结算混在同一天。比如先跑完MRKO把截至上月底的消耗全部结算掉,再执行新价格,这样新旧价格的边界非常清晰,对账和审计都少很多麻烦。反过来,如果调价发生在月中,未结算消耗横跨两个价格区间,系统不会自动帮你分两段算,对账时说不清楚。

4.2 外币供应商与FAGL_FCV重估

寄售供应商如果是外币,结算规则会多一层汇率问题。消耗时按当天的记账汇率确认寄售负债,MRKO结算时按结算日汇率生成供应商应付,付款时又按付款日汇率清算,这中间会天然产生汇兑差异。月末跑外币评估(FAGL_FCV)时,系统会对未清的外币应付做重估,生成评估损益凭证。

有个实际案例:去年我在一个项目上,客户跑FAGL_FCV外币评估,系统直接报错“无法过账财务凭证,ECS凭证编号 '$000000001',ECS年度 '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未结算清单导出跟业务确认一遍,确认所有消耗都真实有效,再跑结算,这样能省掉大量反复冲销的功夫。

另外一个实用的小习惯,是在寄售信息记录维护界面的价格条件里加上生效日期和备注,把调价依据、审批人、生效日期全部记录下来,这样将来审计也好,供应商对账也好,都有据可查。寄售业务本身并不复杂,复杂的是规则边界没理清时,所有差异都会堆积到财务核算上。把“何时作价、按什么价结算、结算到哪里”这三个问题解决掉,寄售结算就成功了一大半。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询