为什么我的估值率或库存价值为负或异常高?

负值或异常高的估值率几乎总是由某一笔错误的库存交易引起的,而不是估值方法本身的 bug。请在库存分类账中找到那笔交易,修正它,然后运行重新计算库存估值,这样之后的所有分录都会被重新计算。

你可能遇到了以下症状之一:

  • 库存余额显示余额价值为负,而数量却是正数。
  • 某个物料的估值率突然跳到正常成本的 10 倍或 1000 倍。
  • 交货单或销售发票上的销货成本高得离谱,或者是负数。
  • 物料清单或库存分录为某个原材料取到了一个意外的费率。

常见原因

估值率等于余额价值除以余额数量。所以当一笔价值以错误的费率入账,而剩余数量又很少时,费率就会被推得偏离很远。

原因 出了什么问题 你在库存分类账中看到什么
负库存 在库存设置中开启了允许负库存时,库存在收到之前就被发出了。出库分录使用了猜测的或旧的费率。当收货到达时,其费率不同,差额就留在了余额价值中。 余额数量降到零以下,然后一笔收货之后平均费率(余额库存)出现跳变,或者余额价值变为负数。
零费率收货 采购收货、物料收货或库存对账在保存时费率为 0(通常勾选了允许零估值率)。这会把平均值拉低。之后以旧费率出库时,取走的价值可能超过剩余的价值。 收货上的入库费率为 0,随后费率下降,之后余额价值变为负数。
倒填日期的分录 在已有分录之前过账的交易会改变之后每一笔分录的费率。如果重新计算还在排队或已失败,之后的分录会保留旧值。 倒填日期之后的分录对不上。该物料的重新计算库存估值记录显示为排队中或失败。
序列号物料 每个序列号都带有它收货时的费率。如果某个序列号以错误的费率(或 0)入库,那么它的每次转移和交货都会带着那个错误的费率。 物料转移或交货单上的入库费率与该物料的通常成本相差很大。
错误的计量单位换算 物料以一种计量单位采购(例如箱),但以另一种计量单位(个)入库。错误的计量单位换算系数会把金额分摊到过少或过多的单位上。 单据上的入库数量看起来不对,入库费率是预期费率的倍数(例如 12 倍)。

找到费率出错的那笔分录

库存分类账报表按顺序列出该物料的每一次移动,因此你可以看到费率出问题的确切凭证。

  1. 转到库存 > 报表 > 库存分类账。
  2. 设置公司、物料和仓库。将起始日期设置得足够早,以覆盖费率看起来正常的最后时间。
  3. 从上到下阅读以下列:
  • 入库费率 —— 每笔收货的费率。查找 0,或远高于正常成本的费率。
  • 余额数量 —— 查找任何降到零以下的行。
  • 平均费率(余额库存) —— 每笔分录之后的估值率。找到第一次跳变或变为负数的行。
  • 余额价值 —— 这应该接近余额数量 x 平均费率。数量为正而价值为负就标志着问题所在。
  1. 打开第一个错误行上凭证号对应的凭证,以及它前面的那笔收货。其中之一就是你的源头分录。

一次检查一个仓库。每个仓库都有自己的估值率,所以一个仓库的问题可能看起来像是转移到另一个仓库时的突然跳变。

要一次性找到所有受影响的物料,请使用库存分类账不变量检查和错误库存价值报表报表。同时检查重新计算库存估值列表中状态为失败的记录。

修正源头分录,然后重新计算

先修正源头分录。仅重新计算只会再次运行同样的错误数字。

1. 修正源头分录

如果原因是 这样做
负库存 过账缺失的收货,其过账日期和时间要早于第一次出库,这样库存就不会降到零以下。
零费率收货 取消并以正确的费率修改该收货。对于库存对账,以正确的估值率修改它。
采购收货上的错误费率 取消并修改它。如果只是缺少运费或关税,请改用到岸成本凭证。
错误的计量单位换算 修正物料计量单位表中的换算系数。然后取消并修改受影响的单据。
序列号以错误的费率入库 取消并修改该序列号的原始入库单。后续的调拨和发货在重新过账后会采用修正后的费率。

2. 运行库存重新估值

取消或修改倒填日期的分录通常会自动生成一次重新过账。如果没有生成,或者之前的重新过账失败了,就手动创建一次。

  1. 转到库存重新估值 > 新建。
  2. 设置基于:
  • 物料和仓库 — 输入物料编码、仓库,以及源分录的过账日期和过账时间(或稍早一点的时间)。
  • 交易 — 输入源分录的凭证类型和凭证编号。
  1. 保存并提交。重新过账会在后台运行。其状态会从排队中变为进行中,再到已完成。
  2. 如果状态为失败,请查看错误日志字段。它通常会指出一行你仍需修复的负库存记录。修复后点击重新开始。
  3. 再次运行库存台账,确认平均费率(结存库存)现在已恢复正常。

重新过账还会更新总账,因此库存和账目价值会再次匹配。可以在库存重新过账设置中将重新过账限制在特定时间段;如果没有任何反应,请检查那里的时间段设置。

为什么物料清单或销售发票的费率可能与库存台账不同

物料清单和销售发票中的费率是在不同的时间、或从不同的地方获取的,与库存台账不同。出现差异并不总是错误。

单据 其费率来源 为什么会有差异
物料清单 物料费率基于:估值费率、最近采购费率或价格表。使用估值费率时,它取各仓库的平均值(如果设置了源仓库,则取源仓库的值)。 成本在保存物料清单时就固定了。只有当你点击更新成本时,或者在制造设置中开启了自动更新物料清单成本时,它才会变化。而库存台账是按仓库、实时更新的。
销售发票 费率是来自价格表或定价规则的销售价格,不是成本。 销货成本由送货单入账,或者仅在勾选了更新库存时由发票入账。它使用过账日期和时间对应的估值费率。
送货单 / 库存分录 源仓库中过账日期和时间对应的估值费率。 之后倒填日期的分录会在单据提交后改变这个费率。重新过账会更新它,但打印副本仍保留旧值。

如果物料清单显示原材料成本有误,请先修正原材料的估值(见上文)。然后打开物料清单并点击更新成本。

预防措施

一旦关闭负库存并且每笔入库都带有真实费率,大多数这类问题就会消失。

  • 保持负库存禁用。在库存设置中,不要勾选允许负库存。这样用户就无法在收货之前发出库存。
  • 为每笔入库设置估值费率。除非物料确实是免费的(例如免费样品),否则不要勾选允许零估值费率。在物料主数据中为期初库存和免费物料设置估值费率。
  • 在新计量单位首次采购之前,检查物料主数据上的计量单位换算系数。
  • 限制倒填日期的分录。使用库存设置中的允许创建/编辑倒填日期交易的角色,这样只有少数用户才能过账这类分录。
  • 关注重新过账队列。每周检查库存重新估值列表中的失败记录。在更多分录堆积之前逐一修复。

还需要帮助?

如果重新过账完成后费率仍然错误,请在 support.frappe.io 上提交工单。请附上:

  • 物料编码和仓库
  • 覆盖费率出错期间的库存台账导出文件
  • 库存重新估值记录的名称,以及失败时的错误日志

管理物料转移与在途货物

在途货物

当库存已离开一个仓库但尚未到达目标仓库时,使用“在途货物”功能。在 ERPNext 中,这通过物料转移的库存凭证来处理。出库凭证将库存从发出仓库移出并转入在途状态。后续的入库凭证再将同一批库存从在途状态移入接收仓库。

当货物实际在仓库、分支机构、门店或地点之间运输,且需等待接收方确认库存后,转移才算完成时,此功能非常有用。

工作原理

  • 发送至仓库: 记录货物已从源仓库发出,目前处于在途状态。
  • 在仓库接收: 记录货物已到达目标仓库,并应添加到其库存中。
  • 在途货物: 在货物处于两个仓库之间时,将其库存单独管理。

在当前 ERPNext 库存凭证表单中,在途货物流程可通过物料转移凭证上的添加到在途复选框和库存凭证(出库在途)引用字段查看。

创建出库转移

  1. 前往库存凭证并创建新的库存凭证。
  2. 将库存凭证类型设置为物料转移。
  3. 在物料表格中,选择源仓库、物料和要发送的数量。
  4. 启用添加到在途。
  5. 保存并提交库存凭证。

选择物料转移时,ERPNext 会在库存凭证上显示在途货物字段。

当转移应先进入在途货物状态,而非直接接收至目标仓库时,请启用添加到在途。

创建入库转移

  1. 创建另一个物料转移库存凭证。
  2. 使用库存凭证(出库在途)选择出库的在途货物库存凭证。
  3. 在物料表格中设置接收仓库。
  4. 保存并提交库存凭证。

入库凭证完成转移。库存从在途货物中移除,并添加到接收仓库。

示例

一家公司从孟买仓库向德里仓库发送 10 个单位。

  1. 孟买团队创建出库物料转移,并启用添加到在途。
  2. 该库存不再显示在孟买仓库中,而是显示为在途状态。
  3. 当德里团队收到货物后,他们针对出库在途货物凭证创建入库物料转移。
  4. 库存被添加到德里仓库。

何时使用在途货物

  • 仓库间的转移需要时间才能完成。
  • 发送和接收地点由不同团队处理。
  • 您需要查看已发出但尚未收到的库存情况。
  • 您希望接收仓库在确认收货后,库存才变为可用。

重要说明

  • 仅在仓库间移动时使用在途货物,不用于销售交货或采购收货。
  • 出库和入库库存凭证应使用相同的物料和数量,除非有记录在案的差异。
  • 在货物实际到达目标仓库之前,不要使用入库凭证。
  • 如果转移是即时的,不需要在途阶段,请使用普通的物料转移,不要启用添加到在途。

如何在ERPNext中创建和打印形式发票

ERPNext 没有专门的“形式发票”单据。要打印形式发票,您可以通过打开一个报价单或销售订单,将其打印标题更改为“形式发票”,然后打印该单据来模拟实现。

请按照以下确切步骤为客户打印形式发票:

1. 创建并打开单据

  • 导航到您要发送的报价单或销售订单。
  • 打开您要打印的具体单据记录。

2. 更新打印标题

  • 向下滚动到报价单或销售订单中的“打印设置”部分。
  • 在“打印标题”字段中,点击下拉菜单并选择“创建新的打印标题”。
  • 输入“形式发票”作为新标题名称并保存。
  • 从下拉菜单中选择这个新创建的“形式发票”标题,然后保存您的单据。

3. 打印或保存为 PDF

  • 点击屏幕左上角的菜单按钮(三个点)或打印图标。
  • 如果您需要显示公司徽标和联系信息,请确保选择了正确的信笺抬头。
  • 点击“PDF”下载到您的电脑,或点击“打印”直接发送到您的硬件设备。

其他自定义资源

  • ERPNext 打印设计器教程(视频指南)
  • Frappe 自定义打印格式指南(官方文档)

值不同步错误:库存余额与库存账户余额同步

当启用了“永续盘存”后,ERPNext 会保持库存分类账和会计分类账同步。如果某个公司、科目或仓库的库存余额与库存科目余额不匹配,ERPNext 会停止交易并显示一条 数值不同步 的验证消息。

这通常意味着较早的库存或会计凭证在库存价值与相应的库存科目余额之间产生了差异。在您能继续过账交易之前,必须纠正这种不匹配。

为什么会发生这种情况

在永续盘存制下,每一次库存移动也会影响会计。例如,采购收货单、交货单、库存凭证或带有库存影响的销售发票都可以同时更新库存和科目。如果一方被更改、取消、重新过账或更正,而另一方没有完全匹配,则两个余额可能会不同步。

ERPNext 显示此验证消息是为了防止新交易建立在错误的库存估值或库存科目余额之上。

如何修复

  1. 仔细阅读验证消息,并识别错误中提到的公司、库存科目、仓库和差异金额。
  2. 从验证消息中点击 创建日记账分录。
  3. 检查 ERPNext 创建的日记账分录中的科目和金额。
  4. 更新任何缺失的详细信息,例如成本中心或其他强制性的会计维度。
  5. 保存并提交该日记账分录。
  6. 重新尝试显示验证消息的交易。

该日记账分录会调整会计余额,使其与库存分类账余额匹配。在提交更正后,ERPNext 应允许交易继续进行。

在提交日记账分录之前

  • 检查日记账分录中选择的库存科目是否与验证消息中提到的科目相同。
  • 根据错误中显示的差异,确认该分录应为借方还是贷方。
  • 如果您的设置中启用了会计维度,请检查成本中心、项目或财务账簿等维度。
  • 如果差异很大或出乎意料,请在提交调整之前检查最近的库存和会计交易。

更正之后

一旦日记账分录提交,请重新打开原始单据并尝试保存或提交。如果针对另一个科目、仓库或公司出现相同的验证消息,请针对该特定差异重复进行更正。

如果这种不匹配反复出现,请检查是否有较早的库存重过账、已取消的单据、回溯日期的交易或自定义的会计凭证影响了同一个库存科目。

已交货未开票的库存用途

已交货但未开票

已交货但未开票账户是一个调整账户,用于记录在开具账单前已交付物品的价值。系统不会在交货时直接借记费用账户,而是通过这个中间账户进行分录,以保持销售周期会计的清晰和一致性。

该账户在任何时间点的余额代表已提交交货单但尚未开具销售发票的物品价值。

工作原理

提交交货单时:仓库的库存在手账户被贷记,全部库存价值被借记到已交货但未开票账户。

示例:一张价值₹400的交货单 → 库存在手账户贷记₹400,已交货但未开票账户借记₹400。

提交销售发票时:已交货但未开票账户被贷记以冲销,同时销售成本 (COGS)账户被借记相同金额。

示例:开具₹400的销售发票 → 已交货但未开票账户贷记₹400,销售成本账户借记₹400。

已交货但未开票账户配置

配置

  • 已交货但未开票账户可以在公司级别进行配置。
  • 要从此账户中排除销售退货分录,请在公司中启用在销售退货中禁用已交货但未开票复选框。

回溯分录与重新过账

如果回溯分录更改了交货单上的估值率,系统会通过重新过账自动更新相应销售发票上的已开票价值。这确保了交货单和销售发票之间的会计分录在整个销售周期中保持一致。

退回拒收物品

在采购收货单中,您可以将物料接收至“已接收”或“已拒收”仓库。

如果您要为已拒收仓库中接收的物料创建采购退货单,请按照以下步骤创建退货条目。

  1. 在采购收货单的物料表格中,对于要退货的物料,在“已接收数量”字段中输入负数形式的退货数量。
  2. 在“已接收仓库”字段中,将值设置为零。
  3. 在“已拒收仓库”字段中,将要退货的数量设置为负数。

有关如何为已拒收物料创建采购退货单的详细步骤,请参考以下示例。

销售发票交货

如果您的物品交付和开票同时进行,您可以直接在销售发票中创建交付。销售发票在物品表格之前有一个名为更新库存的字段。如果勾选此字段,则在提交销售发票时,将从所选仓库中扣除该物品的库存。

勾选更新库存后,销售发票物品将显示相关字段,如仓库、序列号、批号、物品估值等。

提交销售发票时,除了进行总账过账外,还会同时进行库存分类账过账。

重包入库

重包装入库单是为批量购买的物品创建的,这些物品将被包装成更小的包装。例如,按吨购买的物品可以重新包装成公斤。

注意:

  1. 采购物品和重包装物品将有不同的物料编码。
  2. 重包装入库单可以基于物料清单(BOM)创建,也可以不基于物料清单创建。

在重包装入库单中,可以有一个或多个重包装物品。让我们通过以下场景来更好地理解这一点。

假设我们正在购买特定颜色(绿色、蓝色等)的喷漆盒。然后重新捆绑,创建包含多种颜色喷漆(蓝绿色、绿黄色等)的包装。

1. 新建库存入库单

库存 > 单据 > 库存入库单 > 新建库存入库单

2. 输入物料

选择用途为“重包装入库单”。

对于原材料/投入物料,只需提供来源仓库。

对于重包装/产出物料,只需提供目标仓库。您需要为重包装物料提供估值。

更新所有选定物料的数量。

3. 提交库存入库单

提交库存入库单后,投入物料的库存将从来源仓库减少,重包装/产出物料的库存将添加到目标仓库。

库存入库用途

库存录入是一种库存交易,可用于多种用途。下面我们来了解每种库存录入的用途。

1. 用途:物料出库

物料出库录入用于从仓库中发出物料。提交物料出库后,物料的库存将从源仓库中扣除。

物料出库通常用于低值消耗品,如办公文具、产品消耗品等。此外,您也可以创建物料出库来核对序列号和批次物料的库存。

2. 用途:物料入库

物料入库录入用于将物料收入仓库。此类库存录入可用于更新序列号和批次物料的期初余额。此外,未通过采购订单购买的物料也可以通过物料入库录入入库。

出于库存估价的目的,在物料入库录入中,“物料估价”字段变为必填项。

3. 用途:物料转移

物料转移录入用于仓库间的物料调拨。

4. 用途:生产用物料转移

在生产过程中,原材料从仓库发放到生产部门(通常是在制品仓库)。此物料转移录入是根据工单创建的。该录入中的物料取自生产物料的物料清单,如工单中所选。

5. 用途:生产

生产录入是根据工单创建的。在此录入中,原材料物料和生产物料均取自工单中所选的物料清单。对于原材料物料,仅指定源仓库(通常是在制品仓库)。对于生产物料,仅更新工单中指定的目标仓库。提交后,原材料物料的库存将从源仓库中扣除,表示原材料已在生产过程中消耗。生产物料则添加到目标仓库,标志着生产周期的完成。

6. 用途:重新包装

当批量购买的物料被重新包装成小包装时,会创建重新包装录入。请查看此页面以了解有关重新包装录入的更多信息。

7. 用途:委外加工

委外加工交易涉及公司将原材料物料转移到分包商的仓库。这还需要为分包商添加一个仓库。委外加工录入将库存从公司的仓库转移到分包商的仓库。请查看此页面以了解有关委外加工的更多信息。

序列号与批次物料期初余额录入

对于维护了序列号和批号的项目,其期初库存余额录入通过库存录入进行更新。点击此处了解如何在 ERPNext 中管理序列化库存。

问题:为什么序列化和批次项目的期初余额录入不能通过库存盘点更新?

在 ERPNext 中,序列化项目的库存水平是根据该项目序列号的数量来计算的。因此,除非为序列化项目创建了序列号,否则其库存水平不会更新。在库存盘点工具中,您只能更新项目的期初数量,而不能更新序列号和批号。

序列化项目的期初余额

以下是创建序列化和批次项目期初库存余额录入的步骤。

第 1 步:新建库存录入

库存 > 库存录入 > 新建

第 2 步:选择用途

库存录入用途应更新为 Material Receipt。

第 3 步:更新过账日期

过账日期应为您希望更新项目期初余额的日期。

第 4 步:更新目标仓库

目标仓库将是更新项目期初余额的仓库。

第 5 步:选择项目

选择需要更新期初余额的项目。

第 6 步:更新期初数量

对于序列化项目,根据序列号的数量更新数量。

对于序列化项目,请注明与其数量相等的序列号。或者,如果序列号配置为根据前缀自动创建,则无需手动注明序列号。点击此处了解更多关于序列号命名的信息。

对于批次项目,请提供将更新期初余额的批次 ID。准备好批次主数据,并针对该批次项目进行更新。要创建新批次,请前往:

库存 > 设置 > 批次 > 新建

点击此处了解如何在 ERPNext 中管理批次库存。

第 7 步:更新项目估价费率

更新估价费率,即项目的单位价值。如果同一项目的不同单位具有不同的估价费率,则应在单独的行中更新,并设置不同的估价费率。

第 8 步:差异科目

根据永续盘存估价系统,每笔库存交易都会创建会计凭证。复式记账会计系统要求凭证中的总借方与总贷方匹配。在提交库存录入时,系统会按项目总价值借记仓库科目。为了平衡这一点,我们使用临时期初科目作为差异科目。

第 9 步:保存并提交库存录入

提交库存录入后,将过账库存分类账,并在给定的过账日期更新项目的期初余额。