Beancount 复式记账
🕜

Beancount 复式记账

 
Fava & Beancount 安装
Beancount 半自动化改造

朋友垫钱

如果出现朋友借钱,或者你提前垫资,可以设置一个 Asset 账户,毕竟这钱没有花出去,是借出去,例如我的一笔:
2023-02-18 * "老薛" "借出" Assets:Alipay -1000 CNY Assets:Receive
Assets:Receive 表示等待别人还钱的资产,如果还了,如下:
2023-02-20 * "老薛" "还入" Assets:Receive -1000 CNY Assets:Weixin

对账

  1. 使用 github 的workflow 自动验证
  1. 对账代码
2022-11-25 balance Assets:Alipay 3406.48 CNY
解释:支付宝金额在 2022-11-25 号之前(不包含25号)的余额应为 3406.48 元。
  1. 如果对账出现差额,找不到原因,可以使用 pad 语法自动补齐改交易,官方解释:Beancount Language Syntax - Beancount Documentation
    1. 2022-11-24 pad Assets:Alipay Equity:Opening-Balances 2022-11-25 balance Assets:Alipay 3406.48 CNY
       

fava界面

左边菜单

notion image
  1. 损益表(Income Statement):
  1. 资产负债表(Balance Sheet):描述 资产 = 负债 + 权益 这三者的情况。
  1. 试算表(Trial Balance):

多账本

如果在一个家庭有多个人记账,可以在使用 fava 命令指定多个:
fava main.bean main1.bean
成功后,就会在 fava 界面左上角出现账本切换。
notion image

搜索框

notion image
  1. Time 时间:默认的提示框里只有年份,如果指定填,直接手动写入 2022-11-27 类似的日期格式,如果只具体某个月写入 2022-11
  1. Account 账户:指定某一个账户
  1. Filter By tag, payee, …
    1. tag: 搜索标签,直接 # 开头入手自己想要的,例如:#cat
    2. payee: 交易账户筛选,类似 2022-11-23 * "倩" "转账” 这条语句中的 “倩” 的位置,筛选填入 payee:“倩“
    3. 如果自定义了 metadata 数据,也可以筛选,类似 category:“餐饮美食”
      1. 2022-11-03 * "山东杂粮煎饼" "收钱码收款" category: "餐饮美食" Liabilities:HuaBei -6 CNY Expenses:Others

修改语言

如果 fava 界面打开不是自己想要的,可以打开 bean 文件,加入如下配置,建议放在文件入口开头:
2022-11-27 custom "fava-option" "language" "zh_CN"
语言如下:
  • Bulgarian (bg)
  • Catalan (ca)
  • Chinese (zh_CN and zh_TW)
  • Dutch (nl)
  • English (en)
  • French (fr)
  • German (de)
  • Persian (fa)
  • Portuguese (pt)
  • Russian (ru)
  • Slovak (sk)
  • Spanish (es)
  • Swedish (sv)
  • Ukrainian (uk)

其他

标签

标签格式如 #cat、#walk,出现多个中间空格分割,如下:
2022-11-19 * "高德打车" "高德地图打车订单" #cat #walk Expenses:Walk 39.86 CNY Liabilities:HuaBei -39.86 CNY
我一般在 fava 编辑器中点击时间展开交易详情添加标签,会直接修改文件保存。

交易关联

如果两笔交易有关联,或者因果关系,那就可以使用 ^ 格式关联起来:
2022-12-12 * "闲鱼" "卖出加湿器" ^humidifier Assets:Object -69 CNY Assets:Alipay 33 CNY Expenses:Others 2022-11-30 * "菜鸟" "菜鸟裹裹-寄件费_1830057831_LP00547224496821" ^humidifier category: "生活服务" Assets:Alipay -12 C
^ 后面不能使用中文,标签应该也一样,这个我测试了,标签没有。

Vscode 配置

按照如下插件:
notion image
打开账单目录,即账单更目录,创建 .vscode/settings.json 文件,配置如下内容:
{ "beancount.mainBeanFile": "main.bean", "beancount.runFavaOnActivate": true }
  • mainBeanFile:账单的入口文件
  • runFavaOnActivate:vscode 重新重新启动打开账单目录时,自动启动 fava
    • notion image
      只需要 ctrl + 鼠标左击, http://127.0.0.1:5000 地址即可。

文档