为什么我不能按预期为销售订单或交货单开具发票?

你想从销售订单或交货单创建销售发票,但订单不在列表中,发票被阻止,缺少更新库存,或者明明一切看起来都已完成,销售订单状态却显示为待交货或已逾期。本页说明 ERPNext 如何关联这三份单据,以及应该检查什么。

通常的流程是销售订单 → 交货单 → 销售发票:

  • 交货单移动库存,并更新销售订单上的已交货百分比。
  • 销售发票过账会计科目,并更新销售订单和交货单上的已开票百分比。

你也可以直接从销售订单开票,并在发票上勾选更新库存,让发票自己移动库存。同一批物料只能由一份单据移动库存。

订单不在“获取项目来源”中

在销售发票上,获取项目来源 → 销售订单只列出符合以下条件的销售订单:

  • 已提交、属于同一公司,并且属于所选客户(如果你选择了客户);
  • 未关闭或暂停;
  • 未完全开票。

获取项目来源 → 交货单只列出该公司已提交且未完全开票的交货单。在退货发票上,它会列出退货单。

因此,请检查销售订单的状态和已开票百分比。如果订单被误关闭,请打开它并点击状态 → 重新打开。

如果对话框给出服务器错误(例如添加日期筛选条件时),请更新站点:若干此类错误已在 2026 版本中修复。

“需要交货单”或“需要销售订单”

销售设置中的两个设置决定流程:

  • 创建销售发票/交货单是否需要销售订单?
  • 创建销售发票是否需要交货单?

当设置为是时,必须从该单据创建发票。在需要交货单的情况下,请从交货单创建发票(创建 → 销售发票),而不是从销售订单创建。这些设置适用于所有用户;没有任何角色可以跳过它们。

发票上缺少更新库存

当发票的项目来自交货单时,更新库存会被隐藏。交货单已经移动了库存,再次勾选会导致库存被移动两次。要用发票移动库存,请从销售订单创建发票(或不基于任何单据创建),而不是从交货单创建。

销售订单显示待交货、待开票或已逾期

状态 含义
待交货和开票 未完全交货且未完全开票
待交货 已完全开票,未完全交货
待开票 已完全交货,未完全开票
已逾期 当交货日期已过且订单未完全交货时,在列表中显示
已完成 已完全交货且已完全开票

如果状态看起来不对:

  1. 打开销售订单,检查已交货百分比和已开票百分比。
  2. 草稿状态的交货单和发票不计入。请提交它们。
  3. 退货(勾选是退货的交货单或贷项通知单)会减少已交货或已开票数量。见下文。
  4. 如果订单的剩余部分永远不会交货,请点击状态 → 关闭。已关闭的订单不再显示为待处理。

退货后销售订单可以再次开票

只有当贷项通知单上勾选了更新销售订单中的已开票金额时,贷项通知单才会减少销售订单的已开票金额。然后销售订单会将该数量显示为未开票,并再次出现在获取项目来源中。

  • 要退款且不再销售这些物料:保持勾选,然后关闭销售订单。
  • 仅用于价格更正:请参阅退货和贷项通知单。

交货单和发票彼此没有关联

如果你从销售订单分别创建了交货单和销售发票,它们各自与销售订单关联,但彼此之间没有关联。要在关联中一起查看它们,请从交货单创建发票。

不要将销售订单设为会计维度。发票到订单的关联已经存在于每个项目行上,而该维度可能会破坏关联视图。

  • 销售发票
  • 销售设置
  • 销售订单的部分履行
  • 为什么我无法取消、删除或更改销售订单或销售发票?