对账
对账功能帮助您定期核对账户余额,确保账本数据与真实资产保持一致。通过设置对账周期,系统会自动提醒您进行对账,并协助您处理账本与实际余额之间的差额。就像定期清点钱包里的现金,确保账本记录的钱数与实际拥有的钱数一致。
一、设置对账周期
对账周期决定了系统多久提醒您一次进行对账。就像设置日历提醒一样,您可以为自己常用的账户设置定期对账提醒。
1. 如何设置
- 进入 「配置管理 → 账户管理」 页面
- 选择需要对账的账户进行编辑
- 设置对账周期:
- 周期单位:选择天/周/月/年
- 周期间隔:输入正整数(例如:周期单位选择 " 月 ",周期间隔输入 "1",表示每月对账一次)
- 保存记录
注意:拥有子账户以及账户类型为 " 权益账户 "、" 支出账户 "、" 收入账户 " 的账户无法设置对账周期。
2. 首次设置
首次设置对账周期时,系统会自动创建一个待办任务,执行日期为当天,方便您立即进行首次对账。
3. 修改或删除周期
- 修改周期:直接编辑账户,修改周期单位或间隔。已有的待办任务预期日期不会自动更新,但后续待办生成依据新周期。
- 删除周期:将周期配置清空。系统会自动取消相关账户的待执行待办。
二、查看对账待办
当对账日期到来时,系统会在多个位置提醒您:
- 通过待办通知横幅或用户名称下拉框进入 「对账列表」 页面
- 页面显示所有当天需要完成的待办任务
待办操作
- 开始对账:进入对账表单,执行对账流程
- 修改日期:调整预期执行日期(例如推迟到下周)
三、执行对账
对账的核心是核对账本记录的余额与实际账户余额是否一致。就像清点钱包,看看账本上记录的金额是否与实际金额相符。
1. 对账流程
- 在待办列表中点击要对账的待办
- 系统显示预期余额(从账本计算得出)
- 选择对账时间点:
- 当天最后一笔交易后:对账日期为当天
- 第二天第一笔交易前:对账日期为前一天
- 输入实际余额(从银行、支付宝等查询的真实余额)
- 系统自动计算差额:
- 差额 = 实际余额 - 预期余额
- 差额 > 0:账户多出资金
- 差额 < 0:账户缺少资金
- 差额 = 0:账本与实际完全一致
注意:同一账户不允许在同一天内进行多次对账,以防止账本数据冲突。
2. 无差额情况
如果差额为 0,直接点击 「提交对账」 即可。系统会生成一条 balance 指令:
2026-01-21 balance Assets:Savings:Web:WechatFund 1000.00 CNY
关于
balance指令:这是 Beancount 的余额断言指令,用于验证账户在指定日期的余额。详细说明请参考 Beancount 官方文档。
3. 有差额情况
如果有差额,需要分配差额到具体账户。系统提供两种处理模式:
模式 A:全部手动分配
适用于您明确知道差额的来源,例如:
- 实际余额:1005.00 CNY
- 预期余额:1000.00 CNY
- 差额:+5.00 CNY(多出 5 元,需从其他账户获取 5 元来补齐,所以其他账户 -5 元)
您可以添加多个条目,手动分配差额:
| 账户 | 金额 |
|---|---|
| Income:Active | -3.00 |
| Income:Transfer:Personal | -2.00 |
系统验证:已分配金额(-3.00 - 2.00 = -5.00)必须恰好抵消差额(5.00)。即,分配总额必须等于 -差额。
生成的指令:
2026-01-20 * "Beancount-Trans" "对账调整"
Income:Active -3.00 CNY
Assets:Savings:Web:WechatFund 3.00 CNY
2026-01-20 * "Beancount-Trans" "对账调整"
Income:Transfer:Personal -2.00 CNY
Assets:Savings:Web:WechatFund 2.00 CNY
2026-01-21 balance Assets:Savings:Web:WechatFund 1005.00 CNY
模式 B:部分手动 + 自动兜底
适用于您知道部分差额来源,其余由系统自动处理:
| 账户 | 金额 |
|---|---|
| Income:Active | -3.00 |
| Expenses:Adjustment |
系统自动计算剩余差额(-5.00 - -3.00 = -2.00)并使用 pad 指令兜底。
自动兜底账户说明:
- 首次开启对账时:默认使用
Equity:Opening-Balances,用于处理账本初始化时的差额- 后续对账:默认使用
Equity:Adjustments,用于处理日常对账中的小额差额- 您可以在对账表单中修改自动兜底账户
- 特殊情况:当自动分配的金额
±0.01时,系统会自动使用transaction指令替代pad指令,以确保账本数据的准确性
生成的指令:
2026-01-20 * "Beancount-Trans" "对账调整"
Income:Active -3.00 CNY
Assets:Savings:Web:WechatFund 3.00 CNY
2026-01-20 pad Assets:Savings:Web:WechatFund Expenses:Adjustment
2026-01-21 balance Assets:Savings:Web:WechatFund 1005.00 CNY
关于
pad指令:这是 Beancount 的自动填充指令,用于自动调整账户余额,将差额分配到指定账户。详细说明请参考 Beancount 官方文档。
4. 提交对账
点击 「提交对账」 后:
- 系统生成 Beancount 指令并写入账本文件
- 当前待办标记为 「已完成」
- 根据对账周期自动创建下一个待办(预期执行日期 = 当前待办的预期执行日期 + 周期)
- 如果计算出的新待办预期执行日期在今天或之前,系统会自动延后一个周期,确保待办日期在未来
- 跳转回待办列表
四、Balance 和 Pad 指令说明
对账功能会生成两种 Beancount 指令:balance 和 pad。这些指令是 Beancount 语言的核心功能,用于确保账本数据的准确性。
延伸阅读:
balance和pad是 Beancount 的标准指令。详细的技术说明和更多用法示例,请参考 Beancount 官方文档。
Balance 指令:balance 指令用于断言账户在某个日期的余额。例如:
2026-01-21 balance Assets:Savings:Web:WechatFund 1000.00 CNY
这表示在 2026-01-21 00:00:00 开始时,Assets:Savings:Web:WechatFund 账户的余额应该是 1000.00 CNY。如果账本计算出的余额与此不符,Beancount 会报错,提醒您检查账本数据。
Pad 指令:pad 指令用于自动调整账户余额,将差额分配到指定账户。例如:
2026-01-20 pad Assets:Savings:Web:WechatFund Expenses:Adjustment
2026-01-21 balance Assets:Savings:Web:WechatFund 1000.00 CNY
这会在 2026-01-20 自动生成一笔交易,将 Assets:Savings:Web:WechatFund 的余额调整到 balance 指令要求的 1000.00 CNY,差额记入 Expenses:Adjustment 账户。这种方式特别适合处理无法追溯来源的小额差额(如利息、手续费等)。
五、注意事项
预期执行日期的意义:预期执行日期用于计算下一个待办的日期。即使您在预期执行日期之后才完成对账,下一个待办仍按原计划日期计算。例如:每月 1 号对账,即使您 5 号才完成,下次仍为下月 1 号。
对账时间点:系统提供两种对账时间点选项:
- 当天最后一笔交易后:选择此选项时,对账日期为当天,
balance指令日期为明天 - 第二天第一笔交易前:选择此选项时,对账日期为前一天,
balance指令日期为当天(表示该日期开始时的余额)
您应根据实际对账情况选择合适的时间点,确保输入的实际余额与选择的时间点一致。
差额处理原则:
- 优先使用模式 A(全部手动分配):提高账本准确性,让每一笔差额都有明确的来源
- 对于无法确定来源的小额差额:可使用模式 B(自动兜底),将差额记入调整账户
- 自动兜底账户选择:
- 首次对账时,系统默认使用
Equity:Opening-Balances,用于处理账本初始化时的差额 - 后续对账时,系统默认使用
Equity:Adjustments,用于处理日常对账中的小额差额
- 首次对账时,系统默认使用
查看对账历史:对账记录(transactions/balance/pad 指令)写入账本文件,可通过 「账本管理 → 平台账本」 查看对账历史和账户余额变化。
六、常见问题 (FAQ)
Q1: 为什么我的待办列表是空的?
A: 待办列表只显示 「预期执行日期 ≤ 今天 且 状态为待执行」 的任务。检查您的账户是否设置了对账周期。
Q2: 我可以同时为多个账户设置对账吗?
A: 可以。每个账户可以独立设置对账周期,系统会为每个账户创建独立的待办任务。
Q3: 如果我忘记对账会怎样?
A: 待办任务会一直保留在列表中,直到您完成或取消该账户的对账周期。您可以随时执行对账。
Q4: 我可以手动创建对账待办吗?
A: 目前只支持通过设置对账周期自动创建待办。如需手动对账,可临时设置周期,对账后再删除周期配置。
Q5: 对账生成的指令会影响之前的交易记录吗?
A: 不会。对账指令只是验证和调整余额,不会修改已有的交易记录。如果发现差额,系统会生成新的调整交易来平衡账本。
Q6: 为什么同一账户不能在当天完成两次对账?
A: 这是为了防止该账户当天金额冲突,导致账本数据不准确。每个账户每天只能完成一次对账,确保账本数据的唯一性和准确性。但同一账户可以完成两次对账任务,分别使用不同的对账时间点来实现昨天和今天的对账。
Q7: 完成待办后,如果生成的新待办预期时间在今天或之前会怎样?
A: 系统会自动将新待办的预期执行日期延后一个周期,确保待办日期在未来。例如:如果计算出的新待办日期是今天或昨天,系统会自动延后一个周期,避免创建已过期的待办任务。
Q8: 首次对账和后续对账的自动兜底账户为什么不同?
A:
- 首次对账:使用
Equity:Opening-Balances,这是账本初始化时的期初余额账户,适合处理账本建立初期的差额。如果已经初始化,可手动调整为其他账户 - 后续对账:使用
Equity:Adjustments,这是日常调整账户,适合处理运行过程中的小额差额(如利息、手续费等)
这样的设计可以更好地区分账本初始化时的差额和日常运行中的调整,让账本数据更加清晰和易于追溯。
下一步: