本文讨论了存货收发与普通物料收发的取数逻辑差异,包括单据类型、单价及期末金额计算逻辑的不同,导致同一物料数据可能产生差异。同时,指出存货收发参数对核算范围过滤的影响,建议避免直接对比两个表数据,根据核算范围过滤数据报表,并在成本结转时检查入库单价为0的情况,以避免发出成本异常。
一、、取数逻辑不一致
1、存货收发取数来源:单据的事务类型必须是参与核算的,库存类型是结转金额的。包括委托代销、接借出类型的所有单据
2、普通物料收发取数来源:单据的库存类型是普通的所有单据。(即包括不参与核算的所有普通类型的单据)
二、单价,期末金额计算逻辑。
由于第一点的不同,同一物料获取的数据有可能产生差异
1、普通物料收发:期末结存数量1970,单价0.8138
发出成本直接取单据成本
结存金额=期初+收入-发出。结存成本=结存金额/结存数量。推算得出
2、存货收发:期末结存数量:470,单价0.9215
存货收发成本计算逻辑:
有原单:关联上游单据生成,上游单据原本有成本字段,则下游单据的成本直接取上游单据的成本
无原单:上游单据没有成本字段,或者不关联单据生成
1)符合加权平均法计算规则(即有期初/收入数据),出库单价=(期初金额+本期收入金额)/(期初数量+本期收入数量)。上图符合加权平均法,所以出库单价0.9215。SCM_CAL_014\015选择出库序列
结存金额=期初+收入-发出。结存成本=结存金额/结存数量。推算得出
2)如果期初和收入数据均为0,本期发出单价有2种情况:
①该物料在当前仓库(核算范围为分仓库)有历史出库数据,就会取最新出库单价参数SCM_CAL_017。(不包括计算过程中出现的负单价情况,即加权平均法算出来的结果是负数。需要手工维护)
如图,期初收入均为0,单价取历史出库单的单价25。(如果加权平法法算出来后是负的,则不能取25,需要手工维护)
②该物料在当前仓库没有历史出库数据,那么数据就是人为改动添加。(包括计算过程中出现的负单价情况,即加权平均法算出来的结果是负数。需要手工维护)
3、同一物料,期间一致,但是取值不一致,导致期初不一致,从而结存也不一致。
可以查出原因,是由于普通物料收发前期期间有不参与核算的单据(赠品入库单)。存货收发不取
所以差异从当时开始就产生了
三、存货收发参数CM_CAL_002核算范围的过滤影响
1)没有根据参数(分仓库)进行过滤获取的报表。报表数据结果跟加权平均法公式结果差异较大
导致报表数据结果和公式计算结果不一致:
(期初金额+收入金额)/(期初数量+收入数量)*发出数量=发出金额
{(159842.46+418395.12)/(1485.75+3840)}*3169=344070.767689058<350457.33
2)根据参数(分仓库)进行过滤后,数据显示明显不同。报表数据结果跟公式结果差异很小
直发仓:(期初金额+收入金额)/(期初数量+收入数量)*发出数量=发出金额
{(0+193200)/(0+1680)}*1680=193200=193200
哈尔滨成品仓:
{(159842.46+225195.12)/(1485.75+2160)}*1489=157257.34255503≈157257.33
四、建议
1)不建议两个表进行数据对比核对。除非你全部单据都是参与核算且库存类型都是普通
或者存货收发过滤条件设置为。库存类型为普通,显示不参与核算的事务类型。
2)根据核算范围进行数据报表过滤
3)进行成本结转时,建议按以下过滤条件结转。可以查询的价格来源。且提示入库单价为0
如果不勾选检查单价为0,则不会有上图提示,从而直接开始结转成本。
不排除会出现结转后,再手工维护入库单价的情况,然后手工维护入库成本后没有再重新结转成本,导致最终计算的发出成本异常。(如图,没有检查入库单价为0,结转成本后发出单价取最新出库单价。后续再手工维护了入库单价0.01。没有重新结转成本,导致发出单价异常,正常发出成本是0.01)
所以建议勾选检查入库单价为0情况,手工维护后在结转成本。或者手工维护入库单价后,重新二次结转成本。
推荐阅读