news 2026/10/31 7:10:10

SAP现金销售订单BV流程:单据流与科目确定配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SAP现金销售订单BV流程:单据流与科目确定配置

简介:SAP现金销售订单从建单到清账的完整操作与配置手册,面向SD顾问、财务与仓库录单人员,帮助解决现金销售流程中订单类型选错、发货与开票脱节、清账环节繁琐等实务问题。内容按目的、适用范围、业务操作、配置实现逐层展开:业务端覆盖创建销售订单(订单类型BV、行项目类别BVN、客户与物料信息、现金支付条件)、拣选与发货过账、发票创建核对与收款清账;配置端细化订单类型BV、行项目类别BVN、计划行类别ZP、移动类型Z01、定价过程ZKD04与ZKD05、开票类型BV及现金科目确定等要点。其思路是把现金销售从标准销售中剥离,订单保存即自动生成交货单,发票打印前置于拣配发货,发货过账可设为后台定时作业,出纳收款后直接开票清账,省去预收与清账往返环节。包内为1个PDF文件,约756KB,共十余页,已有101人学习。

1. 现金销售真正难的环节:让凭证一步落到现金科目上

某子公司的现金销售柜台,收银员收了钱、仓库当天发了货,财务在系统里翻凭证流却发现主营业务成本挂了两遍,或者发出商品科目余额一年比一年高,成了行里说不清的长期未清项。问题多半出在把现金业务硬套进标准销售流程:标准流程默认出库和开票跨期,中间靠“发出商品”过渡;现金业务一手交钱一手交货,这个过渡科目根本不该出现。这份 SAP 现金订单业务处理流程文档要解决的就是这件事,用订单类型 BV、行项目类别 BVN、计划行类别 ZP、移动类型 Z01 和定价过程 ZKD04/ZKD05 的一套组合,让出库直接结转主营业务成本、开票直接借记现金科目。它适合做 SD-MM-FI 集成的顾问,以及既要录单又要对账的子公司业务人员。

2. 会计分录先行:先想清楚发出商品该不该存在

配置之前得先把账想明白,否则后面每改一个字段都是在猜。这一章把传统业务和现金业务的凭证走向拆开对比,再给出一套能落地的业务归类方法,免得配完了才发现某类订单根本不该走这条线。

2.1 发出商品科目成立的前提是跨期

传统业务启用发出商品,动机很单纯:出库和开票不在同一个月。货已经发走、物权已经转移,但发票还没开、收入还不能确认,这时候如果直接把库存转成成本,当期就会出现“有成本没收入”的错配。发出商品就是为此存在的过渡科目——出库时把库存商品搬到发出商品,开票时再从发出商品搬到主营业务成本,收入和成本落在同一个期间,配比关系成立。

这个逻辑成立的前提是“期间差”。一旦出库和开票落在同一期间,发出商品就退化成了一个当天进、当天出的过路科目,除了多两张凭证行、多一个需要清理的余额,没有任何会计意义。现金销售正好属于后者:钱货两清,物权当场转移,还把它挂在发出商品里,等于告诉报表使用者“这批已经收钱的货还是我的存货”,账实直接对不上。

我见过最典型的翻车方式,是业务上想省事,用标准订单类型加一个“现金”付款条件糊过去。订单能建、货能发、票能开,表面上跑通了,但出库那一笔仍然借发出商品,开票那一笔仍然从发出商品转成本,月底发出商品余额里躺着一堆早已收款的单子。对账的人只能靠手工挑出来做调整凭证,做上三个月就没人愿意继续对了。

2.2 两张凭证的科目走向对比

把两条线的分录并排放,差异一眼就能看出来。下表按出库、开票两个记账点拆开,左边是传统发出商品模式,右边是现金销售模式:

记账点传统业务现金销售业务
出库借:发出商品;贷:库存商品借:主营业务成本;贷:库存商品
开票借:应收账款;贷:发出商品、主营业务收入、销项税;借:主营业务成本借:现金;贷:主营业务收入、销项税

差异集中在两个地方。第一,出库那一笔的借方科目从发出商品换成了主营业务成本,成本结转时点提前到了发货环节。第二,开票那一笔的借方从应收账款换成了现金,因为收款和开票是同一个动作,系统里不应该再产生一笔需要后续清账的应收。

第二点尤其关键。很多方案只改了出库科目,开票还是借应收账款,然后靠收款环节手动清账,这样确实不会出错,但也没省下任何操作——出纳该做的清账一步没少,文档里说的“减少预收和清账环节”就落空了。要让开票凭证直接落现金,开票类型的账户确定必须单独处理,这部分放在第 4 章展开。

2.3 上线前先做业务归类,别拿所有订单试

配置改动之前,我一般会先拉一份近半年的销售订单清单,按“出库日期与开票日期的月份差”和“收款方式”两个维度做交叉分类。月份差为零、收款方式为现金或即时到账的,才进 BV 这条线;月份差不为零的,哪怕客户当场付了钱,也建议留在标准流程里,因为一旦后续发生退货或者跨期调整,发出商品的过渡逻辑反而是保护。

判断标准可以固化成三条,三条同时满足才允许使用订单类型 BV:

判定项满足条件不满足的后果
物权转移时点发货即转移,无寄售、无寄销成本提前结转,存货虚减
出库与开票期间同一会计期间内完成收入成本跨期,配比失效
收款方式现金或等价即时结算,不占用信用额度应收账款凭空消失,客户对账断裂

清单确认完之后,还要在系统里确认一件事:现在标准 601 出库到底走的是哪个科目。常见做法是进 OBYC 看 GBB 下 VAX、VAY 这几个常用修改码对应的科目,确认它们指向的是发出商品而不是主营业务成本。这一步不做,后面配 Z11 的时候很容易跟已有条目撞车——同一个评估级别被两个修改码抢,结果取决于系统先命中哪条,这就是典型的玄学问题。

3. 单据流三件套:BV、BVN、ZP 怎么把开票提到发货前

这条流程和标准销售最大的不同,是开票动作被提到了拣配和发货过账之前。支撑这个顺序的不是某个开关,而是三个配置对象配合:订单类型决定“保存即交货”,行项目类别决定“发票参考谁”,计划行类别决定“出库走哪个移动类型”。三者缺一,流程就会在某个环节卡住或者悄悄退回标准逻辑。

3.1 订单类型 BV:立即交货勾选之后发生了什么

订单类型在 VOV8 里维护。复制一个标准订单类型出来改成 BV,真正需要动的地方不多,核心是“立即交货”这个标识要勾上,同时确认交货类型字段有值(通常沿用默认的交货类型)。勾选之后的行为是:销售订单保存的瞬间,系统按订单里的行项目和数量直接生成一张交货单,交货单进入待拣配状态。

这个设计解决的是录单文员的重复劳动。标准流程里,录完订单还要有人跑一次集中交货创建,再跑到交货单里核对数量;BV 把这一步压缩掉了,订单保存即交货,录单的人只需要盯住订单界面。但要注意,交货单生成不等于发货过账,此时库存还没减少、成本还没结转,货权在系统里仍然挂在本公司名下。

这里有个容易被忽略的边界:立即交货能生效,前提是行项目类别允许交货相关,且订单里的物料有足够的可用库存或者允许负库存。库存不足时,交货单照样会生成,但数量会被截断或者进入不完整状态,后面开票时数量对不上,看起来像是开票逻辑出了问题,实际上是交货环节就断了一截。

3.2 行项目类别 BVN:把开票参考从交货单改成订单

这一步是整条流程的枢纽,也是我认为最值得单独拎出来讲的一个字段。行项目类别在 VOV7 维护,复制标准行项目出来改成 BVN,关键是“开票参考”这个字段要从交货单改成订单。

为什么非改不可?如果开票仍然参考交货单,那么开票的前置条件就是交货单已经发货过账。可发货过账在 BV 流程里已经把成本结转掉了(借主营业务成本),开票时系统再按成本条件取一次成本,成本就被结转了两次。反过来,改成参考订单之后,开票不再依赖发货过账,业务上就能实现“先开票收钱、再拣配发货”,同时成本只在发货那一次结转。

这个改动还带来一个连带效果:开票数量取自订单而不是交货数量,只要订单数量准确,发票就不会因为交货拆分、部分拣配而开错。代价是订单和交货之间的数量差异不会自动反映到发票上,所以退货和短装场景必须走单独的冲销流程,不能指望开票环节兜底。

3.3 计划行类别 ZP 与移动类型 Z01、Z02 的分工

计划行类别在 VOV6 维护,复制标准计划行出来改成 ZP,然后在计划行里挂上自定义的移动类型 Z01。Z01 本身是在 OMJJ 里复制 601 得到的,复制 602 得到 Z02 用于冲销。文档里还有一步容易被跳过:再复制一个移动类型出来,命名为 Z11,专门用来做科目修改码。

为什么不能直接用 601?因为 601 在企业里几乎肯定已经被标准销售出库占用了,对应的科目是发出商品。如果 Z01 也走 601 的科目修改码,那么现金业务的出库和普通出库会命中同一条 OBYC 条目,改任何一边都会影响另一边。单独做一个 Z11 当修改码,等于给这条业务线开了一条专用车道,OBYC 里只对 Z11 配置主营业务成本,其他出库一概不受影响。

Z02 的存在同样不能省。现金销售一样会遇到退货、拒收、开票错误,没有对应的冲销移动类型,红字发货就没法做,成本只能靠手工凭证冲回,一个月下来调整凭证能堆成一摞。我在项目里见过只配了 Z01 没配 Z02 的情况,退货时业务直接在系统外处理,账面库存和实物库存差了小半年才被发现。

三个对象的配置关系可以对照下表逐项核对:

配置对象事务码关键字段本方案取值
订单类型VOV8立即交货勾选
订单类型VOV8交货类型沿用默认交货类型
行项目类别VOV7开票参考订单,不是交货单
行项目类别VOV7计划行类别ZP
计划行类别VOV6移动类型Z01
移动类型OMJJ参考移动类型601(冲销类型参考 602)
移动类型OMJJ科目修改码Z11

3.4 前台三步操作与每步的预期结果

配置通了之后,前台操作其实只有三步,但每一步都要确认系统给出的结果符合预期,不能点完保存就走。

第一步,VA01 创建订单,订单类型选 BV,录入客户、物料、数量、价格。保存后立刻用 VA03 进凭证流看,应该能看到一张自动生成的交货单,状态是待拣配,此时库存还没动。

第二步,VL02N 对交货单做拣配和发货过账。过账完成后用 FB03 或者凭证流看生成的物料凭证和会计凭证,借方应该是主营业务成本,贷方是库存商品,金额等于订单成本。这一步如果借方出现发出商品,说明 Z11 的科目确定没生效,回第 4 章查 OBYC。

第三步,VF01 按订单开票,开票类型选 BV。开票完成后同样看会计凭证,借方应该是现金科目,贷方是主营业务收入和销项税,凭证上不应该出现应收账款。如果借方还是应收账款,说明开票类型的账户确定过程没换,这部分在 4.4 节处理。

三步走完,用 VA03 的凭证流把订单、交货、物料凭证、发票、会计凭证串起来看一遍,确认状态是已完成而不是等待清账。文档里特别提到“可以看到会计凭证已经是清帐状态,不需要我们去手动清帐”,这句话就是整条流程是否真的跑通的判断标准——只要凭证流里还挂着未清项,说明某个环节又退回了标准逻辑。

4. 科目确定四步走:OMJJ、OBYC、ZKD04/ZKD05、开票类型 BV

前面三章解决的是“单据怎么流”,这一章解决“钱怎么落账”。四个环节有严格的先后顺序:先有移动类型的科目修改码,才能在 OBYC 里配科目;先有定价过程,才能分配给订单类型和开票类型。顺序颠倒的话,配置界面能保存,但运行时报的错会把你带到完全不相干的地方去。

4.1 OMJJ 给 Z01 挂上 Z11 科目修改码

OMJJ 里找到复制出来的 Z01,进科目修改码字段填 Z11。这个字段决定了后续 OBYC 用哪个维度去找科目,填错或者留空,出库时会直接报“科目确定失败”,报错信息里只会说找不到账户,不会告诉你是修改码的问题。

同一个界面里还要确认价值更新的方向。Z01 参考的是 601,出库时的数量和价值都是负向更新,这个继承关系一般不用改,但如果复制的时候手滑改成了正向,库存会越出越多,这种错误在测试环境里不明显,上生产一周就能把库存跑成负数。

4.2 OBYC 里 GBB/Z11 与评估级别 3000 的绑定

OBYC 选 GBB,事务键填 Z11,然后在评估级别那一列找到 3000,把科目填成主营业务成本。文档里那句话说得直白:“只要物料的评估级别是 3000 的话,都可以直接结转到主营业务成本。”这句话反过来读就是限制条件——评估级别不是 3000 的物料,这条配置不生效。

所以上线前必须盘一遍参与现金销售的物料,确认它们的评估级别。如果同一个物料既走现金销售又走标准销售,评估级别只能有一个,那就得靠移动类型区分,不能指望评估级别。这种情况下我会把 Z11 的配置做全,把常见的几个评估级别都补上条目,宁可多配几条,也不要让业务在发货时才发现某个物料漏了。

4.3 定价过程 ZKD04:删掉应计项

定价过程在 OVA8 维护。复制 ZKD01 得到 ZKD04,然后删除里面的应计项。应计项的作用是在开票时把成本计提出来挂到发出商品,这是标准流程为跨期配比准备的机制。现金业务出库时已经结转成本,开票再计提一次,等于同一笔成本被记了两遍,月底发出商品余额就是这么长出来的。

删应计项这一步在测试环境里很容易被忽略,因为不删也能开票,只是会计凭证上多一行。等到月末结账,财务发现发出商品贷方有一堆余额,追查下来才发现是应计项在作怪。这种问题不会报错,只会默默污染报表,属于典型的黑匣子。

还要确认 ZKD04 分配给了订单类型 BV。定价过程确定在 OVKK 里按销售区域维护,如果 BV 用的是默认的定价过程确定序列,很可能命中的还是标准定价过程,前面删应计项的操作就白做了。改完之后用 VA03 打开一张测试订单,进条件页签看定价过程是不是 ZKD04,这是最快的验证方式。

4.4 定价过程 ZKD05 与开票类型 BV 的 VPRS 处理

再复制一份 ZKD04 得到 ZKD05,这次要删的是 VPRS,也就是成本条件。ZKD05 分配给开票类型 BV,开票类型在 VOFA 维护,同一个界面里还要确认账户确定过程。

为什么要删 VPRS?开票参考的是订单,成本已经在发货时结转,开票时系统如果还能取到成本条件,就会再结转一次主营业务成本。文档里记录的现象是“最后开票批准至会计的时候,就会账户确定出错”,原因是 VPRS 找不到对应的科目。原文作者也说了没搞明白 SAP 的取值逻辑,只留下一条经验:“总之就是现金订单和开票使用不同的定价过程。”

这条经验值得记下来,但更稳妥的做法是理解它的目的:订单用 ZKD04 负责算收入和税,开票用 ZKD05 只负责把收入和税搬到会计凭证上,不碰成本。两个定价过程各管一段,责任边界清楚,出问题也容易定位。

4.5 开票类型的账户确定与现金科目

VOFA 里 BV 的账户确定过程默认会和标准发票共用同一个(文档里提到 F2 和 BV 用的是同一个账户确定过程)。共用本身不是错,但因为 BV 删了 VPRS,成本相关的科目确定条目在这条线上是空转的,一旦某个条件类型残留,就会命中不该命中的科目。

真正让发票借方落现金的,是账户确定这一层。文档在这一节写得比较简略,只给了“分配现金科目”一句。按流程反推,要做到开票即收款,就不能再走客户统驭科目那条路,常见做法是给 BV 单独指定一个账户确定过程的副本,在其中把现金科目挂到对应的记账维度上,让发票凭证的借方直接是现金。这一步改完必须用 VF01 实开一张票验证,不能只看配置界面保存成功。

如果企业暂时不想动账户确定,退一步的做法是开票后立刻用收款事务做清账。这样科目不会错,但清账动作又回到了人工,出纳每天要多做一批操作,和第 2 章说的“减少清账环节”就矛盾了。两条路的取舍,取决于现金业务的单量——单量大就必须把账户确定做掉。

5. 避坑:五条踩过的记录

配置文档写的是“应该怎么做”,实际项目里浪费时间的往往是“做完了为什么不生效”。下面五条都是在这类流程里反复出现的,每条按现象、原因、解决三段记,遇到时可以直接对号。

5.1 开票仍然报科目确定错误

现象:VPRS 已经从 ZKD05 里删掉了,VF01 开票到释放会计凭证时还是报账户确定错误,报错指向成本相关科目。

原因:开票类型 BV 的定价过程确定没有真正切到 ZKD05。定价过程确定在 OVKK 里按销售区域加单据类型维护,如果 BV 走的是通用条目,系统命中的还是标准定价过程,删掉的条件类型等于没删。另一种可能是订单上的定价过程在创建时已经固定,改配置不会回溯已存在单据。

解决:先用 VA03 打开测试订单看条件页签里的定价过程编号,确认是 ZKD04;再用 VF03 看发票里的定价过程,确认是 ZKD05。两个编号有一个不对,就回去查 OVKK 的条目顺序,把 BV 的专用条目排在通用条目之前。

5.2 订单保存后没有生成交货单

现象:订单类型 BV 的立即交货已经勾选,保存订单后凭证流里只有订单,没有交货单。

原因:立即交货只是标识,实际生成交货单还要看订单类型上分配的交货类型、行项目类别是否与交货相关,以及物料主数据里的可用库存。三者有任何一项不满足,交货单要么不生成,要么生成后数量为零。

解决:先看行项目类别的交货相关标识,再看物料主数据的销售视图是否完整,最后用 VL10A 之类的事务手动跑一次交货创建看报什么错。手动创建能成功但保存订单不触发,问题一定在订单类型的配置上。

5.3 发货过账生成了两条成本行

现象:一张现金订单发货后,会计凭证上出现两行借方主营业务成本,金额还不一样。

原因:Z01 的科目修改码没有真正生效,系统按默认逻辑又命中了一条标准出库的科目确定;或者开票环节的 VPRS 没有删干净,成本在开票时被再结转了一次,两张凭证叠起来看像是发货环节出的问题。

解决:先用 FB03 分别打开物料凭证对应的会计凭证和发票对应的会计凭证,确认多出来的那一行到底在哪张凭证上。在物料凭证上,就查 OMJJ 里 Z01 的修改码和 OBYC 的条目;在发票上,就查 ZKD05 里 VPRS 是否还在。

5.4 部分物料发货时找不到科目

现象:大部分物料能正常过账,个别物料发货时报“科目确定失败”,同一个移动类型、同一个工厂。

原因:OBYC 里 GBB/Z11 只配了评估级别 3000,而这几颗物料的评估级别是别的值。评估级别来自物料主数据的会计视图,跟物料类型和账户分类参考都有关系,新物料导入时如果没按模板建,很容易漏。

解决:用 MM03 查物料主数据的会计视图确认评估级别,把缺的级别补进 OBYC;同时回头检查物料导入模板,避免下一批新物料再踩同一个坑。这类问题最好的后悔药是在上线前跑一遍全量物料的评估级别清单。

5.5 退货时库存回不来

现象:客户退货,业务想做红字发货,系统里找不到对应的移动类型,只能用 602 手工冲,冲完之后成本和库存对不上。

原因:Z02 只复制了 602,但没有在计划行类别和订单类型里配套维护退货场景,或者 Z02 的科目修改码沿用了 Z11 但方向配反了。

解决:把退货流程单独走一遍端到端测试,从退货订单到退货交货再到贷项凭证,每一步核对会计凭证。冲销类的移动类型不要指望继承默认值,方向、科目修改码、是否允许负库存,三个字段都要肉眼确认。

6. 上线前用凭证流和科目余额反推配置

配置改完不等于跑通,我习惯在切生产前做一次反向验证:不看配置,只看数据,从会计凭证倒推配置是否正确。具体做法是造三张单——正常销售、部分拣配、退货——每张都走完订单到开票,然后逐张核对。

核对的时候不用一张张点,用 SE16N 或者一段简单查询把关键表拉出来更快。订单行和状态用 VBAP 的交货状态、开票状态字段,计划行用 VBEP 看已交货数量,会计凭证用 BSEG 看科目和借贷方向:

" 1. 订单行:交货状态与开票状态是否都已完结 SELECT vbeln, posnr, matnr, kwmeng, lfsta, fksta FROM vbap INTO TABLE @DATA(lt_vbap) WHERE vbeln IN @s_vbeln. " 2. 计划行:确认数量是否已全部进入交货 SELECT vbeln, posnr, etenr, wmeng, lmeng FROM vbep INTO TABLE @DATA(lt_vbep) FOR ALL ENTRIES IN @lt_vbap WHERE vbeln = @lt_vbap-vbeln AND posnr = @lt_vbap-posnr. " 3. 会计凭证行:借方是否为现金、贷方是否为收入与税 SELECT bukrs, belnr, gjahr, hkont, shkzg, dmbtr FROM bseg INTO TABLE @DATA(lt_bseg) WHERE bukrs = @p_bukrs AND belnr IN @s_belnr.

三段查询分别对应三个验证点。第一段确认订单层面的交货和开票状态都已经是 C,只要有一个是 B,说明流程中途断了。第二段把订单数量和计划行已交货数量对比,两者不等就说明有部分拣配没走完,这种单子最容易在月底结账时暴露。第三段是核心,按凭证号把会计行拉出来,逐行看科目:借方出现现金、贷方出现收入和销项税、整张凭证没有应收账款和发出商品,三个条件同时满足才算通过。

除了单张凭证,还要看科目余额。用 FS10N 查发出商品科目在本期的发生额,正常情况下现金业务不应该在这个科目上留下任何痕迹;再查主营业务成本的借方发生额,应该等于本期现金订单的成本合计。两个数对不上,差额往往就是某张单子又退回了标准流程。

还有一个我每次都会做的动作:把这份文档的配置章节打印出来,对照系统逐项打勾,尤其是 OMJJ 的科目修改码和 OBYC 的评估级别这两处,它们不报错、不提示,只在月末结账时以余额异常的形式出现。从那以后我每次接这类现金销售的项目,都会在测试环境先跑一遍正常、部分、退货三条线,把三张会计凭证截图存进文档,后面谁再问“这条流程到底通没通”,直接看图就行。希望帮到你。

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

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

Kettle PDI 9.2 核心原理与工程实践:从执行断层到生产级同步

简介:本资源是一份面向1–3年经验研发人员的Kettle(Pentaho Data Integration)入门级教学PPT,聚焦ETL核心流程与工具实操,帮助开发者快速掌握数据同步、转换与加载的基础能力。内容覆盖ETL概念解析、Kettle 9.2安装部署…

作者头像 李华
网站建设 2026/10/31 7:05:30

苹果能关掉“摇一摇“了:手机里到底有几颗运动传感器?

手机里至少有四类运动相关的传感器,而"摇一摇"跳转只用了其中一颗——加速度计。 iOS 27.2 新加的开关,本质上不是关掉传感器,而是让 App 再也读不到这颗传感器的数据。加速度计、陀螺仪这类运动传感器,过去不需要授权&…

作者头像 李华
网站建设 2026/10/31 7:04:24

分离三极管驱动一个普通的电容波形

简 介: 本文通过实验对比了分立三极管驱动电路中,不同容量电容(1nF与10nF)在栅极充放电时的波形差异。结果显示,1nF电容波形上升沿陡峭且无波动,而10nF电容在上升沿后出现明显凸起,与MOS管栅极等…

作者头像 李华
网站建设 2026/10/31 7:04:22

手机和电脑网盘不同步时先查什么:账号、路径与缓存

手机和电脑网盘不同步时先查什么:账号、路径与缓存 「手机上传了电脑没有」是高频投诉。多数不是玄学,而是账号、路径或缓存三选一出了问题。## 1. 先确认是不是同一个账号两端退出再登录,核对头像/昵称/手机号。家庭共享、切换过账号、验证码…

作者头像 李华