跳到主要内容

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"
  • 过滤: 使用时间和过滤选项来限制一次显示的数据量。

常见问题和修复

  • 界面未加载:

    1. 使用 bean-check 命令行工具检查您的文件是否存在语法错误。
    2. 在网页底部查找错误消息。
    3. 清除您的浏览器缓存。
  • 性能缓慢:

    1. 减少 UI 中的活动日期范围。
    2. 简化复杂的 BQL 查询。
  • 配置错误: 确保选项名称和自定义指令类型包含在引号中。

    ; 正确
    option "documents" "/path/to/docs"
    custom "fava-sidebar-link" "标签" "URL"

    ; 错误(会导致错误)
    option documents "/path/to/docs"
    custom fava-sidebar-link "标签" "URL"