ERPNext 年终关账指南

ERPNext 年终关账指南

每年 12 月 31 日关账。这不是"可做可不做"的事——不关账,下一年的报表数据会和上一年混在一起。


1. 年终关账是什么?为什么必须做?

用大白话说: 你的公司账本每年要"结一次账"。12 月 31 日那天,把这一年所有的收入、成本、费用算清楚,算出这一年赚了多少钱(或亏了多少钱),然后把结果"结转"到下一年。1 月 1 日起,新一年的收入和费用从头开始累计。

不关账会怎样:

  • 今年的费用和明年的收入混在一起,利润算不清楚
  • 财务报表上的"未分配利润"永远不对
  • 明年查今年的账,发现数据一直在变(因为还在往里面记账)

2. 关账前的准备(12 月中旬开始)

2.1 确保所有单据都已处理

□ 所有已发货的订单都开了发票(Sales Invoice)
□ 所有收到的货都确认了(Purchase Receipt → Purchase Invoice)
□ 所有收款都已录入(Payment Entry)
□ 所有付款都已录入
□ 银行流水和系统数据对得上(银行对账)
□ 库存盘点完成,数量和金额正确
□ 固定资产折旧已计提到 12 月
□ 工资、社保、公积金已计提
□ 所有税费已计提(增值税、附加税、企业所得税等)

2.2 银行对账

# 在 ERPNext 中导出银行账户的明细
# 路径:Accounting → Bank → 你的银行账户 → 查看交易记录

# 和银行对账单逐笔核对:
# - 银行有的记录,系统里有没有?
# - 银行没有的记录(在途支票),系统里是否标记了?
# - 两边余额是否一致?

2.3 库存盘点

1. 实际到仓库数一遍每种物料的数量
2. 和 ERPNext 中的库存数量对比
3. 发现差异 → 做 Stock Reconciliation 调整
4. 盘点完成后再关账

3. 关账步骤

3.1 创建新的会计年度

# 创建下一年的会计年度
docker compose exec backend bench --site mysite console << 'PY'
import frappe

# 创建 2027 年的会计年度
doc = frappe.get_doc({
    "doctype": "Fiscal Year",
    "year": "2027",
    "year_start_date": "2027-01-01",
    "year_end_date": "2027-12-31",
    "is_short_year": 0   # 不是短年度(不足 12 个月才叫短年度)
})
doc.insert()
print("✅ 2027 会计年度已创建")
PY

3.2 执行年终损益结转

这是年终关账最核心的一步。把本年所有的收入和费用科目的余额,结转到"本年利润"科目。

为什么需要这一步?

想象你的 Excel 里有两列:
  收入列:1 月到 12 月的所有收入,累计 500,000
  费用列:1 月到 12 月的所有费用,累计 300,000

你要在 12 月最后一天加一条"结转"分录:
  借:主营业务收入 500,000(把收入清零)
  贷:本年利润     500,000(转到利润)
  
  借:本年利润     300,000
  贷:各项费用     300,000(把费用清零)

结果:本年利润 = 500,000 - 300,000 = 200,000(这一年赚了 20 万)
      各项收入和费用科目余额 = 0(明年从零开始)

在 ERPNext 中,这个操作可以通过 Journal Entry 完成:

路径:Accounting → Journal Entry → New

日期:2026-12-31

第一组分录(结转收入):
  借:主营业务收入      (你今年累计的收入金额)
  贷:本年利润           (相同金额)

第二组分录(结转费用和成本):
  借:本年利润
  贷:主营业务成本       (今年累计的成本金额)
  贷:销售费用           (今年累计的金额)
  贷:管理费用           (今年累计的金额)
  贷:财务费用           (今年累计的金额)
  贷:所得税费用         (今年累计的金额)

验证:借方合计 = 贷方合计

3.3 结转未分配利润

完成 3.2 之后,"本年利润"科目会显示一个余额(盈利为正,亏损为负)。这个余额需要结转到"未分配利润":

Journal Entry:
  日期:2026-12-31
  
  如果盈利:
    借:本年利润          XXX
    贷:未分配利润         XXX
    
  如果亏损:
    借:未分配利润         XXX
    贷:本年利润           XXX

3.4 关闭旧会计年度

关账后,你应该限制对已关闭年度的修改:

1. 在 ERPNext 中,你可以通过权限设置限制对 2026 年单据的修改
2. 或者通过 Account Settings 设置"冻结"日期:
   路径:Accounting → Accounts Settings
   → "Books Closed Through" 设置为 2026-12-31
   → 此后,任何 2026 年及之前的单据都不能修改

4. 关账后验证

关账完成后,生成以下报表验证:

□ 试算平衡表(Trial Balance)
    截止 2026-12-31,所有收入和费用类科目的余额应该为 0

□ 资产负债表(Balance Sheet)
    截止 2026-12-31,"未分配利润"反映的是累计盈利

□ 损益表(Profit and Loss Statement)
    选择日期 2027-01-01,所有项目应该几乎没有数据(因为新的一年刚开始)

□ 总账(General Ledger)
    查看"本年利润"科目,最后一笔应该是结转分录

5. 关账时间表

12 月 15 日  → 通知全公司:所有单据务必在 12 月 25 日前录入完毕
12 月 25 日  → 核对银行余额、库存数量
12 月 28 日  → 补录所有遗漏的单据
12 月 29 日  → 计提折旧、税费、工资
12 月 30 日  → 做最后一笔 Journal Entry(差错调整)
12 月 31 日  → 执行损益结转 + 关闭会计年度
 1 月 1 日   → 验证所有报表正确
 1 月 2 日   → 备份这个"关账后"的完整数据,永久保留

如果你需要审计,1 月份把所有报表和备份给审计师。

6. 常见问题

Q:我公司规模小,只有我和一个会计,也需要走这套流程吗?

需要。会计年度不等于自然年度也需要,但中国税法要求按自然年度申报。即使只有两个人,也要在 12 月做损益结转。

Q:如果我 1 月份才发现 12 月少记了一笔费用怎么办?

如果会计年度已经关账,可以在新的年度做一笔"以前年度损益调整"分录。但最好在关账前仔细核对,避免这种情况。

Q:ERPNext 能自动做年终结转吗?

不能完全自动。系统会帮你做报表,但损益结转这步需要你手动创建 Journal Entry。因为系统不知道你所有科目是否都录完了。

Q:如果今年是亏损的,还需要结转吗?

需要。亏损也要通过"本年利润"结转到"未分配利润"的借方。下一年盈利时,会先弥补这部分亏损。


最后更新:2026-05-10 适用版本:ERPNext v16.x

关账涉及税务申报。建议在正式关账前咨询你的会计或税务顾问。