简介:这份文档面向制造业与流通业中从事SAP实施、运维及成本核算的顾问与业务人员,聚焦按销售订单采购生产这一典型场景,帮助读者理解系统配置与业务流程的落地方法。资源为单个doc文件,压缩包约122KB,内容以WORD整理版形式呈现,结构清晰,便于按章节查阅。文档围绕无差异模式与有差异模式两种业务场景展开,涵盖生产订单结算、销售订单成本控制、结果分析及结算等配置要点,并梳理了创建物料、BOM、工艺路线、销售订单、按单采购、生产订单、发料报工、收货发货过账、开票及成本要素分割等完整操作步骤。目前已有488人学习,适合需要系统掌握按单采购生产结算逻辑、对照配置清单查漏补缺的读者参考。
1. 按销售订单结算的两条路:无差异模式和有差异模式到底怎么选
制造业里接单生产最怕什么?不是产能不够,是财务月底跑来问你:“这批货到底赚没赚钱?” SAP 里按销售订单采购生产这套流程,核心就解决一个问题——把一张销售订单从采购、生产、发货到结算的成本链条串起来,让每一单的料、工、费都能追溯到具体客户订单上。这份 WORD 整理版资料拆的就是这条链路,覆盖无差异模式和有差异模式两种业务场景,从后台配置到前台操作步骤全部走了一遍,包括生产订单结算参数文件、销售订单结果分析码、差异码这些容易配漏的关键点。适合正在做 SAP CO 模块按单结算配置的顾问、制造业财务信息化人员,以及需要理解按单生产结算逻辑的 PP/MM 模块从业者。两种模式的核心分水岭就一个:库存评不评估。
2. 无差异模式的系统配置:从结算参数文件到结果分析码
2.1 生产订单结算参数文件怎么定
无差异模式最关键的配置入口是生产订单的结算参数文件。缺省对象类型选 SDI,意思是生产订单的结算接收方直接指向销售订单,生产成本不走物料中转,一步结算到销售成本。实际成本/销售成本选“将被全部结算”,有效接收方里物料和销售订单都设为“可选结算”。
这里有个血泪教训:分配结构必须定义。如果结算参数文件里不配分配结构,创建销售订单时系统直接报错,而且报错信息不一定指向分配结构缺失,排查起来容易绕弯路。分配结构的作用是告诉系统哪些成本要素区间走初级成本、哪些走次级成本,以及接收方怎么分。
# 检查结算参数文件分配结构是否维护 SPRO > 控制 > 内部订单 > 结算 > 维护结算参数文件 # 选中对应参数文件,双击“分配结构” # 确认初级成本要素区间和次级成本要素区间均已维护配置路径在 SPRO 控制模块下,结算参数文件维护界面里,分配结构是独立一屏。初级成本要素区间一般覆盖 40000000 到 49999999,次级成本要素区间覆盖 90000000 以上,具体区间按企业科目表实际范围调整。接收方分配里,物料和销售订单都要勾上,否则结算时系统找不到接收方。
2.2 需求层和评估标记的联动逻辑
需求层配置是销售订单成本控制的枢纽。路径在 SPRO > 销售和分销 > 基本功能 > 科目分配/成本 > 维护成本/科目分配的需求类别。把科目分配类别、销售订单结算参数文件、结果分析码分配给需求层 040,再把需求层 040 分配给需求类别 KE,需求类别 KE 分配给策略组 20。
评估标记是区分两种模式的开关。无差异模式下评估留空,意味着不进行库存评估。这个空值带来的连锁反应很直接:生产订单收货时不产生会计凭证,销售订单发货过账时也不产生会计凭证,生产订单不能计算差异和在制品,结算接收方只能是销售订单。有差异模式下评估选 M,带参照销售凭证/项目的单独评估,产成品按销售凭证中标准价格计入成本,生产订单收货和销售订单发货过账都产生会计凭证,结算接收方变成物料。
注意:评估标记一旦有业务数据后再改,历史凭证不会自动调整,切换模式前务必确认当期没有未结算的生产订单。
2.3 结果分析码的评估方法配置
结果分析码决定销售订单结算时在制品、准备金、销售成本怎么算。1000 控制范围下 000004 结果分析码用的是简单模式,双击进入评估方法配置。结果分析方式选 05,表示在结算过程中将未实现的成本资本化。状态控制里 REL 表示销售订单行项目状态为 REL 时才做结果分析,FNBL 表示该状态下实际成本全部结转为销售成本,不留在在制品或准备金里。
利润基值有两个选项:销售订单的成本估算和销售订单物料的标准价格。选成本估算时,销售成本先取销售订单成本估算的计划成本,实际成本加在制品超过计划成本时才取实际值。选标准价格时逻辑类似,只是基准换成物料标准价。评估等级选总计层评估,表示在成本总计层面做结果分析,不逐行标示展开。基础数量选 B,表示以开票数量为结果分析基础,未开票数量的成本计入在制品。
行标示配置在结果分析分配里维护,1000 控制范围下 000004 结果分析码对应 4 个行标示,分别绑定成本要素区间。结果分析更新里定义每个行标示对应的次级成本要素,结算时系统按这个映射生成 CO 凭证。财务会计记账规则里配好 WIPR(在制品)、RUCR(未实现成本储备)、COSR(销售成本)对应的损益类和资产负债类科目,41010900 生产成本转出-在制品、14010201 在制品、51211000 主营业务成本-国内、51210011 销售成本结转,这些科目号按企业实际科目表替换。
2.4 销售订单结算参数文件的差异
销售订单自身的结算参数文件和生产订单的不一样。因为销售订单不需要再结算到其他成本对象,实际成本/销售成本选“不要结算”,有效接收方里任何接收方都设为“不容许结算”。分配结构和结算凭证编号范围可以复用生产订单那套,不用重复建。
# 销售订单结算参数文件检查清单 1. 实际成本/销售成本 = 不要结算 2. 有效接收方 = 不容许结算(全部) 3. 分配结构 = 复用生产订单分配结构 4. 结算凭证编号范围 = 确认已分配编号范围维护在 SPRO > 控制 > 内部订单 > 结算 > 定义结算凭证的编号范围,确保当前年度编号范围已存在且未耗尽。编号范围耗尽是月底结算批量跑时容易翻车的地方,提前查一下当前用到哪个号段。
3. 无差异模式全流程操作:从创建物料到销售订单结算
3.1 主数据准备:物料、BOM、工艺路线、作业价格
创建产成品物料用 MM01,标准价格设为 0,因为无差异模式下不评估库存,物料标准价不参与成本结转。物料类型选 FERT,视图至少维护基本数据、销售、采购、MRP、成本核算相关视图。成本核算视图里不勾选“带数量结构”以外的特殊标记,标准成本估算暂时不做。
BOM 用 CS01 创建,组件挂原材料,数量按单位用量维护。工艺路线用 CA01,工作中心对应成本中心 100800,工序里维护标准工时和作业类型。成本中心用 KS01 创建,为了方便单独看结算结果,用 KSH1 建一个成本中心组 1010 把 100800 挂进去。计划作业价格用 KP26 维护,选成本中心 100800、作业类型、期间 10 月,价格单位按小时或按件,取决于作业类型定义。
# 主数据创建顺序不能乱 MM01 -> CS01 -> KS01 -> KSH1 -> KP26 -> CA01 -> CR02 # CR02 维护工作中心对应成本中心 # 工作中心 W001 对应成本中心 100800工作中心和成本中心的对应关系在 CR02 里维护,如果对应错了,报工时作业成本会记到错误的成本中心,月底结算时销售订单成本归集就会串。这个坑在新建产线或调整组织架构时特别容易踩。
3.2 销售订单到生产订单的创建链路
销售订单用 VA01 创建,订单类型按企业实际选,行项目类别要确认已分配给按单生产的项目类别。创建时输入客户、物料、数量、交货日期。保存后记下销售订单号,后面生产订单和采购都要引用。
按单采购用 ME21N,采购订单行项目里输入对应的销售订单号,收货用 MIGO。无差异模式下采购收货产生的会计凭证里,原材料成本直接记入销售订单,不经过生产订单。CO 凭证同时生成,成本对象就是销售订单。
生产订单用 CO08 根据销售订单创建,输入销售订单号和行项目,系统自动带出物料、数量、BOM 和工艺路线。生产订单号 200000082 这类内部编号由系统分配。发料用 MB1A,无会计凭证和 CO 凭证产生,因为库存不评估。报工用 CO15,输入生产订单号、工序、报工数量、作业类型,系统按计划作业价格计算作业成本,产生会计凭证和 CO 凭证。
# 生产订单创建后检查三件事 1. 结算规则是否自动带出 SDI 接收方 2. 订单状态是否为 REL(已释放) 3. 工艺路线工序是否完整带出结算规则在生产订单创建时自动生成,接收方是销售订单。如果没带出来,检查需求层配置里结算参数文件是否分配正确。订单状态必须是 REL 才能报工和收货,创建后记得释放。
3.3 收货、发货、开票的凭证流向
生产订单收货用 MB31,无差异模式下无会计凭证产生,只有物料凭证。销售订单发货过账用 VL01N,先对销售订单重新执行可用性检查,确认可交货数量,然后创建交货单 80000018 并过账。同样无会计凭证,因为库存不评估。
销售开票用 VF01,根据交货单开票,产生会计凭证和 CO 凭证。收入记入销售订单,成本在结算时才结转。成本中心费用实际过账用 F-02,记生产性成本中心与作业相关的实际费用 450 元。成本要素分割用 KSS2,对成本中心 100200 做分割,把与作业相关的实际费用按比例分到作业类型上。
计算实际作业价格用 KSII,根据实际费用和报工实际数量算出实际作业价格。作业价格重估用 MFN1,对单张生产订单做重估,把实际作业价格重估到订单。这一步做完,生产订单上的作业成本从计划价调整为实际价。
3.4 结算生产订单与销售订单结果分析
结算生产订单用 KO88,输入生产订单 200000082。因为结算接收方是销售订单,不能计算差异,无会计凭证产生,只有 CO 凭证。CO 凭证里作业成本从生产订单转到销售订单。
销售订单结果分析用 KKA3,输入销售订单号。系统按结果分析码 000004 的评估方法计算在制品、准备金和销售成本。全部收货、全部发货、全部开票的情况下,结果分析结果直接结转到销售成本。销售订单结算用 VA88,产生会计凭证,销售成本正式落账。
# 结算顺序不能颠倒 KO88(生产订单结算)-> KKA3(结果分析)-> VA88(销售订单结算) # 颠倒会导致在制品计算错误注意:KO88 结算生产订单时如果报“不能计算差异”,检查需求层评估标记是否为空。无差异模式下这是正常提示,不是错误。
3.5 部分开票场景的在制品处理
实际业务很少一次性全部开票。销售订单 92 对应生产订单 200000088,全部发料、部分报工 5 个、部分收货 5 个的情况下,KKA3 结果分析会把 5 个报工的作业成本和直接原材料生产成本投入记入在制品。VA88 结算时在制品不转销售成本。
继续报工 2 个、收货 2 个、发货 7 个、开票 7 个后,KKA3 结果分析显示第一次 383 元在制品转出,2 个产品报工的 100 元成本与在制品结转至销售成本。VA88 产生会计凭证。剩余 3 个报工、收货、发货、开票后,第二次 207 元在制品转出,3 个产品报工的 150 元作业成本及转出在制品结转至销售成本。
这个分批结转的逻辑是:已开票数量对应的成本从在制品转销售成本,未开票数量对应的成本继续留在在制品。结果分析码里基础数量选 B 就是按开票数量来切分。
4. 有差异模式的配置差异:库存评估和差异计算
4.1 评估标记 M 带来的连锁变化
有差异模式和无差异模式配置上最大的区别就一个:需求层里评估标记从空改成 M。M 表示带参照销售凭证/项目的单独评估,产成品按销售凭证中标准价格计入成本。这个改动带来的连锁反应覆盖采购、生产、销售、财务四个环节。
采购环节不能做按单采购,因为库存评估了,采购收货必须走常规采购流程,原材料先入库再发料。生产环节生产订单收货时产生会计凭证,生产成本转出到产成品。销售环节销售订单发货过账时产生会计凭证,产成品成本结转至销售成本。财务环节先结算生产订单,接收方是物料,再结算销售订单。
# 有差异模式配置检查清单 1. 需求层评估 = M 2. 生产订单结算接收方 = 物料 3. 差异码已分配给工厂 4. 结果分析行标示 SET 包含差异成本要素4.2 差异码和差异变式的配置
差异计算的前提是差异码配置。SPRO > 控制 > 产品成本控制 > 成本对象控制 > 按订单计算的产品成本 > 差异 > 定义差异码。勾选“废料”则废料产生的差异纳入总差异计算,不勾选则排除。勾选“写行项目”则 KOB3 查看差异行项目时能显示明细,不勾选只显示汇总。
差异码定义后分配给工厂,路径在定义每个工厂的差异码。差异变式在检查差异变式里维护,决定显示哪些差异类别。小差异按总差异百分比计算,一般设 5% 到 10%,低于阈值的差异不单独显示。目标成本版本里把差异变式分配给版本,控制成本选“实际成本”,目标成本选“当前标准成本估算”。
# 差异计算前确认生产订单状态 1. 订单状态 = TECO 或 DLV 2. 目标成本版本已分配差异变式 3. 差异码已分配给工厂 4. KKS2 输入订单号执行差异计算4.3 结果分析行标示的差异成本要素
无差异模式的结果分析分配里,行标示 SET(已结算的成本)只配了 41010600 生产成本转出。有差异模式需要配 41010700 生产成本转出-差异,否则差异成本在结果分析时找不到归集路径,销售订单结算会漏掉差异部分。
在产品评估变式里,优先级设置决定在制品和废品按哪个成本估算。一般选当前标准成本估算优先,保证在制品金额和标准成本口径一致。差异凭证编号范围单独维护,和生产订单结算凭证编号范围分开,方便对账时区分。
4.4 有差异模式操作流程的关键差异点
创建物料用 MM01,产成品标准价格设为 30,不是 0。BOM 和工艺路线创建逻辑相同,成本中心换成 100888,成本中心组 1088。计划作业价格用 KP26 维护。销售订单用 VA01 创建,订单号 96。
采购走常规采购,ME21N 创建采购订单时不输入销售订单号,MIGO 收货入库。生产订单用 CO08 创建,订单号 200000093。发料用 MB1A,产生会计凭证和 CO 凭证,因为库存评估了。报工用 CO15,产生会计凭证和 CO 凭证。生产订单完全收货用 MB31,产生会计凭证和 CO 凭证,订单状态变为 DLV。
销售订单发货过账前先用 VA02 重新做可用性检查,生成可交货计划行,VL01N 发货过账产生物料凭证、会计凭证和 CO 凭证。VF01 开票产生会计凭证和 CO 凭证。费用实际过账 F-02,成本要素分割 KSS2,计算实际作业价格 KSII,作业价格重估 MFN1。
生产订单差异计算用 KKS2,输入订单号。原材料价格无差异,作业价格目标与实际差异 100,输入价格差异 100。差异计算完成后结算生产订单,接收方是物料,产生会计凭证和 CO 凭证。再结算销售订单,结果分析行标示里差异成本要素已配置,差异随销售成本一起结转。
5. 避坑与排查:按单结算配置中最容易翻车的五个点
5.1 创建销售订单时报“分配结构未定义”
现象:VA01 保存销售订单时系统报错,提示分配结构缺失或结算参数文件不完整。原因:生产订单结算参数文件里没有维护分配结构,或者分配结构里成本要素区间为空。解决:SPRO 控制 > 内部订单 > 结算 > 维护结算参数文件,选中对应参数文件,双击分配结构,维护初级和次级成本要素区间,确认接收方物料和销售订单都设为可选结算。
5.2 KO88 结算生产订单时提示“不能计算差异”
现象:无差异模式下 KO88 结算生产订单,系统提示不能计算差异。原因:需求层评估标记为空,系统按设计不计算差异,这是正常行为不是错误。解决:确认业务模式确实是无差异模式,忽略该提示继续结算。如果业务需要计算差异,把评估标记改成 M,但注意历史数据不会追溯调整。
5.3 KKA3 结果分析在制品金额与预期不符
现象:销售订单部分开票后 KKA3 结果分析显示的在制品金额和手工估算对不上。原因:结果分析码里基础数量没选 B,系统按总计层评估而不是按开票数量切分;或者行标示成本要素区间配置遗漏了某些成本要素。解决:检查结果分析码评估方法,基础数量选 B,评估等级选总计层评估,行标示分配里确认所有相关成本要素区间都已覆盖。
5.4 生产订单收货后销售订单成本没更新
现象:无差异模式下生产订单收货后,销售订单成本报表里看不到新增成本。原因:生产订单结算规则接收方不是销售订单,或者结算参数文件缺省对象类型不是 SDI。解决:检查生产订单结算规则,确认接收方是销售订单行项目。检查需求层配置里结算参数文件是否分配正确。如果结算规则已生成但接收方错误,手动修改结算规则或重建生产订单。
5.5 月底结算编号范围耗尽
现象:VA88 或 KO88 批量结算时部分订单报“编号范围已满”。原因:结算凭证编号范围当前年度未维护或号段用尽。解决:SPRO 控制 > 内部订单 > 结算 > 定义结算凭证的编号范围,检查当前年度编号范围是否存在,已用号段是否接近上限。提前在月初检查编号范围使用率,必要时新增号段。
6. 进阶技巧:用 KKA3 和 KKS2 交叉验证结算结果
结算跑完之后怎么确认数据是对的?我一般用 KKA3 和 KKS2 交叉验证。KKA3 看销售订单结果分析,KKS2 看生产订单差异计算,两个报表的数据要能对上。
先跑 KKS2 看生产订单差异。有差异模式下,生产订单状态为 DLV 或 TECO 后执行 KKS2,输入订单号,系统按差异变式计算总差异。差异类别里输入价格差异、资源使用差异、效率差异分别列示。如果差异码里勾了“写行项目”,KOB3 能看到每笔差异的明细行。差异计算完再跑 KO88 结算生产订单,接收方是物料,差异随生产成本一起转出。
再跑 KKA3 看销售订单结果分析。输入销售订单号,系统按结果分析码计算在制品、准备金、销售成本。重点看三个数:在制品金额是否等于未开票数量对应的成本,销售成本是否等于已开票数量对应的成本,准备金是否等于未实现成本储备。这三个数加起来应该等于销售订单归集的总成本。
# 交叉验证检查表 KKS2 生产订单差异 = 输入价格差异 + 资源使用差异 + 效率差异 KKA3 销售订单结果 = 在制品 + 准备金 + 销售成本 销售订单总成本 = 生产订单结算转入 + 按单采购直接计入 # 三个等式都成立才算结算正确最后跑 VA88 结算销售订单,产生会计凭证。凭证里 WIPR 对应在制品科目,RUCR 对应未实现成本储备科目,COSR 对应销售成本科目。拿 VA88 的会计凭证和 KKA3 的结果分析报表对,金额应该一致。如果对不上,检查财务会计记账规则里科目分配是否和结果分析码的行标示匹配。
有个容易忽略的点:销售订单结算后再发生成本怎么办?结果分析版本里如果勾了“相关销售订单产品中的定单”,结算完销售订单后生产订单成本又变了,只需要再结算一次销售订单就能把新成本结转出来。不勾的话必须先结算生产订单把成本转到销售订单,再结算销售订单。这个选项在结果分析版本配置里,路径是 SPRO > 控制 > 产品成本控制 > 成本对象控制 > 按销售订单计算的产品成本 > 结果分析 > 定义结果分析版本。
从那以后我每次配完按单结算,都强制走一遍 KKS2 到 KKA3 到 VA88 的交叉验证,三个报表对不上绝不往下一步走。希望帮到你。
本文还有配套的精品资源,点击获取