news 2026/10/15 20:58:57

SAP库存调拨MB1B移动类型详解:从311/313到在途库存与转储订单

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SAP库存调拨MB1B移动类型详解:从311/313到在途库存与转储订单

简介:一份系统讲解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 怎么选,以及转储订单为什么绕不开 MRP

3.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 或 UB),ME21N 建转储订单时系统才允许保存,否则会提示凭证类型不可用。

配置项路径典型值影响
分配凭证类型采购订单 → 设置库存调拨订单 → 分配凭证类型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 有没有遗留。这套流程看着简单,但能挡掉大部分调拨对账的坑,希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 20:58:30

LeetCode 437路径总和III:前缀和与哈希表优化解法

1. 题目背景与核心问题LeetCode 437题"路径总和 III"是二叉树类问题中的经典题目,主要考察对树结构的遍历和路径统计能力。题目要求:给定一个二叉树的根节点和一个目标和,找出路径和等于给定值的路径数量。这里的路径不需要从根节点…

作者头像 李华
网站建设 2026/10/15 20:57:37

GPU环境搭建指南:Anaconda、CUDA、TF2.0与Keras兼容配置

简介:一套面向深度学习入门者的环境搭建教程PPT,聚焦 Anaconda、CUDA、cuDNN、TensorFlow-gpu 与 Keras 的版本匹配和完整安装链路。PPT 从 Anaconda 下载安装讲起,逐步演示 NVIDIA 显卡驱动查看、CUDA 10.0 与 cuDNN 的下载及环境变量配置&a…

作者头像 李华
网站建设 2026/10/15 20:56:58

VST3插件开发实战:从两段式架构到process()避坑指南

简介:Steinberg官方发布的VST 3插件SDK压缩包,面向桌面与移动端音频开发者,用于在Windows、macOS、Linux和iOS平台构建音频效果器、合成器及处理工具。资源共7个文件,整体约405KB,包含txt说明、pdf协议与指南、md说明文…

作者头像 李华
网站建设 2026/10/15 20:53:54

PlanQA: A Benchmark for Spatial Reasoning in LLMs using Structured Representations

文章主要内容总结 背景与目的:现有大型语言模型(LLMs)在结构化推理方面表现出较强能力,但在物理环境中的空间推理能力仍待探索。在建筑设计、辅助规划等实际应用中,空间理解依赖JSON等结构化格式(包含物体位置、尺寸、方向等信息),而非图像或自然语言。因此,本文提出P…

作者头像 李华
网站建设 2026/10/15 20:52:56

FIR滤波器设计全攻略:从线性相位到窗函数与工程落地

1. 从一段真实经历说起:为什么 FIR 设计没那么简单我接过不少数字信号处理相关的任务,设计 FIR 滤波器算是其中出现频率最高的需求之一。很多人一开始觉得这事简单,MATLAB 里一行fir1或者 Python 里一句signal.firwin就完事了。但实际做起来&…

作者头像 李华
网站建设 2026/10/15 20:52:23

悬臂梁有限元建模与LQR主动振动控制全流程分析

悬臂梁结构在机械臂、精密仪器平台、大跨度建筑中都特别常见,它的振动控制问题可以说是结构动力学里最经典也最磨人的一个方向。很多做控制的人一开始都习惯直接写一个集中质量模型或者直接拿实验模态参数来设计控制器,但真到了工程落地阶段,…

作者头像 李华