
简介一份系统讲解SAP MM模块库存调拨与发货流程的图文资料面向SAP顾问、ERP实施人员及供应链相关从业者帮助理解MB1B事务代码在库存地间、工厂间及状态转变场景中的实际用法。资料以单个Word文档形式提供压缩包内共1个docx文件约2.25MB便于直接查阅。目前已吸引1519人学习下载适合需要快速梳理后台配置与流程步骤的读者。内容覆盖一步转储311、二步转储313/315、工厂间转储301/303/305、物料到物料方式309及限制/冻结状态转变344/343等常见操作并结合采购订单凭证类型、转储单范围等后台设置加以说明便于读者对照配置并规避MRP运算与在途库存处理中的常见问题。1. 库存调拨为什么不能当发货做先把 MB1B 的三种移动方式立住刚接触 SAP 库存业务的同事最容易把库存调拨当成“发货”来理解结果把 MB1B 用成了移动类型 201后面 MRP、库存账、物料凭证全部对不上。库存调拨的本质是一张物料凭证在两个库存对象之间“搬家”不是给客户发货也不是采购收货。SAP 里调拨的入口事务代码是 MB1B它背后是三种不同逻辑转移过账、状态变化、物理地点变化。其中物理地点变化又分一步转储和二步转储二步转储才会产生“在途库存”这个概念。这篇笔记围绕 MB1B 的移动类型选择、在途库存的查询、工厂间转储的后台配置展开适合正在做 MM 模块上线、库存盘点对账、或刚接手调拨业务的内部顾问直接拿来对照操作。2. 库存地间调拨311 一步、313/315 二步与在途库存的完整拆解2.1 先把移动类型选对311、313、315 这几个数字别再死记很多同事背移动类型是死记的311 是什么313 是什么315 又是什么。其实这几个数字背后是两条完全不同的过账路径。311一步转储同一工厂内库存地 A 转到库存地 B一张物料凭证同时记发出和接收。313二步转储的第一步从库存地 A 发出物料挂在“在途库存”。315二步转储的第二步对 313 的物料凭证做收货库存地 B 正式入库。换句话说311 是一步到位313 315 是先把货“发出去”再等目标库存地“收进来”。中间那段时间库存既不在 A 也不在 B而是挂在“在途库存”或叫“转储库存”的特殊库存状态下。实际项目里同一个工厂内、距离近、当天能到的调拨一般直接用 311。如果要求发货方和接收方各自确认或者两个库房分属不同责任人、不同账套就必须用 313/315 拆成两步。下面这张表可以先存着后面操作步骤都按这个来移动类型方向是否产生在途典型场景311库存地 A → 库存地 B否同厂内一步调拨313库存地 A 发出是同厂内二步调拨发货315库存地 B 收货核销在途同厂内二步调拨收货301工厂 A → 工厂 B否跨工厂一步调拨303工厂 A 发出是跨工厂二步调拨发货305工厂 B 收货核销在途跨工厂二步调拨收货351按转储单发货视配置转储订单一步发货101按采购订单收货否转储订单收货2.2 311 一步转储从打开 MB1B 到过账完成的完整操作先看一段标准操作流我习惯把事务代码和输入项一起写成速查格式/n MB1B 移动类型311 物料物料编号 工厂1000 发出库存地0001 接收库存地0002 数量90 移动原因0001可选 过账这里拆开说每个字段的用途。移动类型 311 决定了这是一次同工厂内的一步转储。工厂 1000 表示这次调拨发生在同一个工厂内部库存地从 0001 发到 0002。数量 90 是本次调拨的物料数量。移动原因不是必填项但如果公司启用了移动原因管控建议随手填上后面做库存分析时能直接筛出“调拨”这类业务。过账之后系统自动生成一张物料凭证发出库存地和接收库存地同时更新库存总账不产生在途。想看这张凭证用 MB03 输入物料凭证号即可。实际操作中有一个细节经常被忽略311 过账后如果两个库存地属于不同的成本控制范围或物料启用了批次管理系统会额外要求输入批次和估值类信息。做 311 之前先确认目标库存地是否运行批次否则过账时会卡在批次确定那一步白白浪费时间。2.3 313/315 二步转储把那 10 个“在途”说清楚二步转储最典型的场景是A 库存地调 90 个物料到 B 库存地313 先发货 90 个B 库存地实际只收到 80 个还有 10 个挂在在途库存里。结合笔记中那张“发货应为 313总数应为 90 个有 10 个为在途库存”的说明实际在系统里是这样运作的。第一步发货方执行 313/n MB1B 移动类型313 物料物料编号 工厂1000 发出库存地0001 数量90 过账过账完成后库存地 0001 减少 90 个但这 90 个并不会自动出现在库存地 0002 的可用库存里而是出现在“在途库存”状态。这里最容易让新人发懵明明发了 90 个怎么对方库存没变不是系统丢了凭证而是 313 只完成了“发出”这一步。第二步接收方执行 315 或直接用 MIGO 做“对物料凭证收货”/n MB1B 移动类型315 工厂1000 接收库存地0002 数量80 参照物料凭证号313 生成的凭证号 过账注意 315 的参照是整个二步转储的关键。收货数量可以是 80 个也可以是 90 个但不能大于 313 的发出数量。超出部分由差异处理逻辑接管比如物流损耗、计量差异会产生新的移动类型 316 或库存差异。如果 B 库确认只收到 80 个那 10 个在途库存就继续挂着直到后续 315 补收或做差异处理。用 MIGO 做 315 收货的路径是MIGO → 货物移动 → 移动类型 315 → 参照物料凭证输入 313 凭证号。效果与 MB1B 完全一致只是界面更图形化生产环境里我更建议操作员用 MIGO。2.4 在途库存去哪看MMBE、MB52、MB5T 三个工具别混用在途库存的查看是调拨业务里最容易“查错账”的地方。同一笔库存用 MMBE、MB52、MB5T 查出来的口径是不一样的。MMBE单工厂或多工厂的库存总览能看到“在途/转储库存”这一行适合核对某一笔调拨的在途状态。MB52标准库存清单主要看工厂级可用库存、总库存不显示在途行适合日常库存量核对。MB5T跨工厂在途库存报表专门查“A 工厂转到 B 工厂”的在途数量按期间展示是工厂间转储对账的主力工具。举一个实战例子。工厂 1000 的 A 库房给工厂 2000 的 B 库房调拨物料用 303 发出后普通库存报表看不到这批货MMBE 里能看到“在途库存”行MB5T 则把这个在途数量列成一张表精确到工厂、物料、数量。每次月结前我一般会强制跑一遍 MB5T把在途库存全部核销掉否则库存账上会一直挂着一堆“半路”的物料。事务代码适用场景是否显示在途MMBE单工厂/跨工厂库存总览是MB52标准库存清单否MB5T跨工厂在途库存报表是专门看在途3. 工厂间转储301/303/305 怎么选以及转储订单为什么绕不开 MRP3.1 工厂间一步 301一张凭证跨工厂搬家同公司内跨工厂调拨最简单的做法是 MB1B 301。操作方式和 311 类似只是把“工厂”字段从单一工厂变成两个工厂/n MB1B 移动类型301 物料物料编号 发出工厂1000 发出库存地0001 接收工厂2000 接收库存地0001 数量50 过账301 的特点是一步过账发出工厂库存减少接收工厂库存增加中间没有在途库存状态。适合两个工厂距离近、当天到货、不要求分步确认的紧急调拨。301 有一个必须注意的边界它不会向 MRP 传递任何需求信号。发出工厂 1000 的库存减了接收工厂 2000 的库存增了但系统不会自动认为“2000 工厂需要补货”。如果调拨的目的是为了满足接收工厂的生产需求只用 301 做账MRP 在接收工厂跑需求时根本不知道这批货是计划内的调拨结果就是重复采购或重复生产。这个坑在项目上线初期经常翻车后面避坑部分再展开。3.2 工厂间二步 303/305把跨厂调拨拆成发货与收货二步工厂间转储用 303 和 305 成对出现。303 是发出工厂发货305 是接收工厂收货中间的在途库存挂在“跨工厂转储库存”下。/n MB1B 移动类型303 物料物料编号 发出工厂1000 发出库存地0001 数量50 过账303 过账后工厂 1000 库存减少数量进入在途状态。接收工厂 2000 在收到实物前不能看到这批货的可用库存只能通过 MB5T 查询在途数量。实物到达后接收工厂执行 305/n MB1B 移动类型305 接收工厂2000 接收库存地0001 数量50 参照物料凭证号303 生成的凭证号 过账305 过账后在途库存核销工厂 2000 库存增加。这个流程和库存地间的 313/315 逻辑完全一致只是从“工厂内库存地”扩展到了“工厂间”。3.3 转储订单为什么 MRP 运算绕不开它301/303/305 都属于“手工调拨”有它的适用边界偶尔调拨、紧急调拨、不需要计划驱动时。但如果工厂间转储是常态业务比如供货工厂定期给接收工厂补货就必须用转储订单原因就是 MRP。手工调拨不会把“接收工厂的需求”传递给“供货工厂”MRP 在接收工厂跑需求时看不到未来要到的调拨入库在供货工厂也看不到需要备货的调拨需求。结果就是两头脱节。转储订单的本质是一张特殊类型的采购订单接收工厂作为“客户/采购方”供货工厂被建模为“供应商”需求通过转储订单传递MRP 可以识别并参与运算。实务里实现转储订单有两条路径MM 功能和 SD 功能。MM 功能下转储订单用 ME21N 创建凭证类型可以是 UB 或 NB发货用 MB1B 351收货用 MIGO/MB1B 101/n MB1B 移动类型351 工厂1000 库存地0001 数量50 参照转储订单号4500 开头的采购凭证号 过账351 是“按转储订单发货”的一步式移动类型过账时库存从供货工厂发出同时记到接收工厂。如果后台配置的是二步方式系统会走 353 发货 101 收货的组合。351 和 301 的本质区别就在于351 必须参照一张转储订单需求逻辑完整301 是自由调拨不参照任何单据。SD 功能则是把转储订单扩成“跨工厂销售/交货”模式发货要生成出货单适合有完整物流链、需要跟踪装运数据的场景。这一部分的后台配置说实话比 MM 功能复杂第 4 章专门写。3.4 物料状态转变 343/344 及 309 的慎用场景除了库存地、工厂之间的物理移动MB1B 还承担“状态变化”类调拨典型的是非限制库存与冻结库存互转343冻结库存 → 非限制库存344非限制库存 → 冻结库存这两组移动类型不产生实物移动只改库存状态质检判定合格后转可用库存或质量异常时转冻结库存都会用到。还有一个 309物料到物料的调拨处理的是“同一物料不同价值的库存转换”。但这里有个现实问题不同仓库或工厂对同一物料可能用不同的移动平均价直接做 309 调拨容易把价值差异搅乱产生库存差异过账。除非公司财务规则明确允许价值差异进入差异科目否则我不建议业务上常规使用 309优先用转储订单加正规定价逻辑。4. 后台配置凭证类型、装运数据与 4500 范围的逐项落位4.1 先确认凭证类型分配凭证类型是转储订单的入口转储订单能不能建第一步看后台有没有“分配凭证类型”。路径是SPRO → 物料管理 → 采购 → 采购订单 → 设置库存调拨订单 → 分配凭证类型这一步的核心是把“接收工厂”和“凭证类型”绑定起来。只有分配了凭证类型NB 或 UBME21N 建转储订单时系统才允许保存否则会提示凭证类型不可用。配置项路径典型值影响分配凭证类型采购订单 → 设置库存调拨订单 → 分配凭证类型UB / NB决定转储订单可用的凭证类型定义工厂的装运数据采购订单 → 设置库存调拨订单 → 定义工厂的装运数据工厂客户、一步/二步标识决定发货走 MM 还是 SD转储单类型同上NB决定转储订单的默认类型出货单生成标识同上空 / SD 标识空则不生成出货单走 MM 过账4.2 定义工厂的装运数据一步一步确认装运方式如果转储订单要启用 SD 功能需要配置“定义工厂的装运数据”路径同上。配置内容主要有几项工厂客户供货工厂和接收工厂都要维护对应的客户主数据。工厂间转储的“供应商/客户”本质上是工厂SAP 用客户主数据挂靠。是否采用一步转储勾选则按一步方式发货不勾则按二步方式发货。转储单类型一般填 NB。这里有一个经常搞反的点一步/二步的选择直接决定发货移动类型。勾选一步转储时发货用 MB1B 351不勾选时二步转储用 353 发货、101 收货中间产生在途库存。如果项目上线时没想清楚先配了一部后续又要改二步光改配置还不够已经产生的转储单还要逐单调整装运数据。4.3 UB 转储单不生成出货单MM 和 SD 两条路径的配置分叉笔记里那段“UB 不采用 SD 方式不生成出货单正确配置如下此处填写则会生成出货单采用的是 SD 方式”对应的就是装运数据里的“出货单生成标识”。常见做法是转储单类型为 UB 时如果不希望走 SD 交货流程出货单生成标识保持为空。这样 MB1B 351 过账后就是纯 MM 库存移动不产生交货单也不占用装运点。如果填了出货单相关配置系统生成出货单后续要走 VL01N 或 VL10B 做交货这就切到了 SD 功能。两种路径对财务过账结果影响不大但对物流执行影响很大SD 流程有交货单、有装运跟踪MM 流程只有物料凭证。我的习惯是公司没有独立物流部门做装运跟踪时一律走 MM 功能出货单标识留空等业务量上来、需要跟踪发货状态时再把 SD 功能逐步放开。4.4 4500 范围从哪来装运数据缺失的默认值很多同事第一次做 351 转储发货时系统提示“未给转储单分配范围”生成或参照的转储单显示范围是 4500。这不是报错而是没维护装运数据时的系统默认值。4500 是标准 SAP 里常见的缺省范围。如果公司有自己的装运范围/交货范围必须在“定义工厂的装运数据”里维护工厂客户对应的范围并传到物料凭证否则这个 4500 会一路带到交货单和相关报表里到月结对账时才发现口径不对。给一个小建议上线前把“工厂、库存地、装运数据、凭证类型”四件套先一次性配齐配一张检查表每个工厂逐行核对。这样做比出了 4500 再回头查原因省事得多。5. 避坑指南MB1B 调拨最常见的五个翻车现场与排查思路5.1 移动类型与在途库存相关的三个坑坑一301 调拨后 MRP 毫无反应月底缺料。现象工厂 1000 给工厂 2000 做了一笔 301 调拨库存账是对的但工厂 2000 的 MRP 跑出来仍然缺料计划员又下了采购订单。 原因301 是自由调拨不传递需求信号。MRP 不知道这笔调拨是计划内的供给当然不会把它算进可用库存。 解决常态化补货不要用 301改走转储订单ME21N 建 UB 单发货 MB1B 351收货 101。转储订单进入 MRP 运算后需求和供给就闭环了。坑二313 过账后接收库存地数量没变以为凭证丢了。现象313 发货 90 个库存地 0001 数量减了库存地 0002 没看到入库业务员反复检查物料凭证都正常。 原因313 只是二步转储的发货环节物料挂在在途库存目标库存地没有可用库存变化。 解决用 MMBE 查看“在途/转储库存”行确认物资在途数量实物到达后用 315 对凭证收货。以后凡是用 313第一反应就是去查在途不要再翻 MB52。坑三315 收货数量大于 313 发货数量系统拒绝过账。现象313 发了 90 个315 想收 95 个系统报错数量不可用。 原因315 必须在 313 的发出数量范围内收货不能凭空多收。 解决核对差异来源。如果是运输补货先做 313 补发再 315 收货如果是计量差异需要走库存差异处理流程用 316 或差异移动类型调整而不是硬怼 315。5.2 后台配置与转储单相关的两个坑坑四配了 UB 转储单但 351 发货时系统提示“转储单不存在/无交货单”操作不下去。现象ME21N 已经建好了 UB 转储单账面也能查到但 MB1B 351 参照时找不到数据。 原因最常见的两个原因一是“分配凭证类型”没做ME21N 建的凭证类型不是有效库存调拨凭证类型二是工厂装运数据里没有给该工厂组合维护对应数据系统无法判断发货方式。 解决先回 SPRO 检查分配凭证类型和定义工厂装运数据两步配置再回头查转储单的工厂代码、凭证类型是否和配置一致。这属于典型配置没落位不完全是操作问题。坑五4500 范围出现在所有转储单上月结报表按 4500 汇总数据没法看。现象转储单全部默认 4500 范围项目组没人说得清 4500 是哪个工厂的。 原因工厂装运数据没有维护完整的范围系统用缺省值 4500。 解决在“定义工厂的装运数据”中补全工厂对应的范围必要时为每个工厂或库存地维护独立范围。后续新转储单刷新配置后再创建旧单可以批量调整或通过报表映射处理。6. 收尾技巧用 MIGO 验证一次调拨全流程并把移动类型速查表带进项目313/315、303/305 这类操作我最终统一让业务用户切到 MIGO 来做而不是 MB1B。原因很简单MIGO 支持参照物料凭证收货批量、批次、序列号处理都在一个界面里误操作率比 MB1B 低。用 MIGO 做 315 收货的操作方式/n MIGO 货物移动 → 移动类型315 参照凭证 → 输入 313 或 303 的物料凭证号 接收库存地0002 数量80 过账MIGO 会直接把参照凭证的物料、数量带出来只修改实际收货数量和库存地即可比 MB1B 一行行手工输入安全很多。老板再问“调拨发了多少、在途多少”用 MB5T 拉一张表就能直接对上。作为上线顾问每次调拨业务启用前我都会强制走一遍这个三连动作MB51 查物料凭证流、MMBE 看在途、MB52 核可用库存。三者都对上才算这笔调拨真正闭环。从那以后我每次给新工厂上线转储订单都强制把“移动类型 → 是否产生在途 → 用什么凭证核销”三个小因素过一遍先把速查表发给业务再让操作员用 MIGO 练两单最后检查 MB5T 有没有遗留。这套流程看着简单但能挡掉大部分调拨对账的坑希望帮到你。本文还有配套的精品资源点击获取