beancount.io Web 界面指南
beancount.io Web 界面 (由 Fava 提供支持) 提供了一套全面的工具,用于管理、查询和可视化你的财务数据。本指南涵盖了其主要功能,从基本数据录入到高级自定义和故障排除。
1. 编辑和数据录入
内置编辑器
该界面包含一个强大的文本编辑器,用于直接更改你的 Beancount 文件。主要功能包括:
-
自动完成: 按
Tab键完成账户名称、收款人、标签和链接。 -
键盘快捷键:
Ctrl+Space: 触发自动完成。Ctrl+/: 注释或取消注释行。Ctrl+D: 复制当前行。Alt+Up/Down: 上下移动当前行。
-
智能光标放置: 在你的文件中使用
$insert-entry$选项,以便在编辑器打开时自动将光标放置在特定账户的最新条目处。option "insert-entry" "Expenses:Food:Dining-Out"
添加交易
单击 + 按钮(或按 n)以打开交易表单。
-
快速录入: 该表单会建议最近使用的账户,并记住收款人的常用金额。
-
内联标签/链接: 直接在描述字段中添加标签和链接(例如,
午餐 #food ^receipt-001)。 -
交易模板: 创建带有
#template标签的未来日期条目。然后,你可以使用该表单查找并填写它们。2099-01-01 * "每月租金支付" #template
Expenses:Housing:Rent 1500.00 USD
Assets:Checking -1500.00 USD
2. 文档管理
高效地将收据、报表和其他文件链接到你的交易。
-
通过拖放上传:
- 将文件拖放到账户名称上,以将其存储在该账户的文件夹中。
- 将文件拖放到日记账中的交易上,以将其直接链接。
-
文档存储: 文件将保存到 Beancount 文件中
$option "documents" "path/to/your/documents"$指令指定的文件夹中。 -
自动链接: Beancount 可以自动发现文档并将文档链接到交易。使用以下插件启用此功能:
plugin "fava.plugins.link_documents"
plugin "fava.plugins.tag_discovered_documents"
3. 使用 BQL 进行查询和分析
查询页面允许你运行 Beancount 查询语言 (BQL) 查询,类似于命令行 bean-query 工具。
- 可视化: 查询结果会自动呈现为表格。如果你的查询返回两列(例如日期/字符串和数字),则界面还会生成折线图、柱状图或树状图。
- 导出: 将任何查询结果下载为 CSV 文件。
实用查询示例
-
每月费用汇总:
SELECT account, SUM(position) AS total
FROM postings
WHERE account ~ '^Expenses' AND date >= 2024-01-01 AND date < 2024-02-01
GROUP BY account
ORDER BY total DESC; -
每月收入与支出:
SELECT YEAR(date) as year, MONTH(date) as month,
SUM(IIF(account ~ '^Income', -position, 0)) as income,
SUM(IIF(account ~ '^Expenses', position, 0)) as expenses
FROM postings
GROUP BY year, month
ORDER BY year, month;
4. 自定义和工作流程
自定义视图
使用 Beancount 文件中的这些选项定制界面显示:
-
账户可见性: 控制哪些账户显示在侧边栏中。
option "show-closed-accounts" "false"
option "show-accounts-with-zero-balance" "false"
option "collapse-pattern" "Assets:Investments:.*" -
最新状态指示器: 账户旁边的彩色点表示其状态(绿色表示余额通过,红色表示失败,黄色表示最近没有余额检查)。在账户的
open指令中启用此功能:2020-01-01 open Assets:Checking fava-uptodate-indication: "TRUE"
侧边栏链接
在侧边栏中添加指向常用报告或过滤视图的自定义链接。
2024-01-01 custom "fava-sidebar-link" "本月费用" "/income_statement/?time=month"
2024-01-01 custom "fava-sidebar-link" "所有文档" "/journal/?show=document"
常规配置
- 多个文件: 如果你加载多个
.beancount文件,则可以使用左上角的下拉菜单 在它们之间切换。 - 外部编辑器: 配置 UI 以使用
$use-external-editor$选项和 URL 处理程序直接在本地编辑器中打开文件。 - 语言: 使用
$language$选项设置界面语言,或让它从你的浏览器自动检测。 - 导出: 使用 导出 按钮以 Beancount 格式导出任何已过滤的日记账视图。
5. 性能和故障排除
处理大型文件
对于包含数千个交易的账本,请通过以下方式提高性能:
-
使用包含文件: 按年份或月份将你的账本拆分为多个文件,并使用
include指令。include "accounts.beancount"
include "transactions/2023.beancount"
include "transactions/2024.beancount" -
过滤: 使用时间和过滤选项来限制一次显示的数据量。
常见问题和修复
-
界面未加载:
- 使用
bean-check命令行工具检查你的文件是否存在语法错误。 - 在网页底部查找错误消息。
- 清除你的浏览器缓存。
- 使用
-
性能缓慢:
- 减少 UI 中的活动日期范围。
- 简化复杂的 BQL 查询。
-
配置错误: 确保选项名称和自定义指令类型包含在引号中。
; 正确
option "documents" "/path/to/docs"
custom "fava-sidebar-link" "标签" "URL"
; 错误(会导致错误)
option documents "/path/to/docs"
custom fava-sidebar-link "标签" "URL"