Beancount 记账复盘
条评论如今使用 Beancount 记账了三年多,基本形成了记账的习惯,尤其是工作后可以非常方便地统计收入开支情况、查询历史消费记录,越来越觉得当初为了记账而折腾都是值得的。
下面从 Beancount 的记账工作流简单复盘一下:
为什么选择 Beancount
Beancount 属于复式记账法的一种文本记账工具,其一:复式记账中每一笔交易都是平账的,不容易出错,同时也会带我们去了解什么才是资产,了解会计在日常中的应用;其二:文本记账具有数据可读,存储隐私上的有点,毕竟现在变化这么快,各种记账软件层出不穷,停止维护后历史账单如何处理都是问题。最后,这是一款开源软件,免费!颜值高!
怎样使用 Beancount
安装配置
Beancount 是一个需要编译安装的 Python软件,除了需要 Python 环境,还需要 C++ 编译工具,在 Windows 上安装略微棘手,需要先行安装 Python 环境和 Visual Studio 并安装 C++ 编译工具(当然也可以使用WSL,配置会稍方便些),详见官方文档[1]。安装好后,只需要 pip install beancount fava
即可开箱使用。
除了 PC 端,termux 使得手机上也可以运行 Python,所以也可以在手机端上使用 Beancount 记账[2],为了编译安装需要先行使用pkg install libxml2-utils libxslt
,之后 cd /sdcard/file
使用 fava main.bean
就可以在浏览器中查看账本了,操作同PC端无异。另外可以搭配 OneSync 同步桌面端和手机端的账本数据,使用 Beancount APP 进行手机记账。
文件结构
目前我使用的文件结构是这样的:
1 | . |
在 main.bean
文件中加入 2020-01-01 custom "fava-option" "collapse-pattern" ".*:.*"
即可索引所有账单文件,我按月分账,收入和投资单独记账。
BQL
Fava 中提供了 BQL (a SQL-like query client for beancount) 可以方便的查询交易记录并进行统计,在2020年刚开始记账时并不会用 SQL,这个功能一直没用起来,不过好在现在有了 ChatGPT 这样的工具可以直接生成需要的命令进行查询。
以此为例:
1 | SELECT date, payee, narration, position, balance |
#TO-DO: 细节待补充
# 其他相关项目
andreasgerstmayr/fava-dashboards: Custom Dashboards for Beancount in Fava (github.com)
blaulan/beancount-pbi: A Power BI Desktop dashboard for beancount data (github.com)
e7h4n/beancount-financial-statement (github.com)
Reference
本文标题:Beancount 记账复盘
文章作者:Michael Chen
发布时间:2023-08-07
最后更新:2024-04-24
原始链接:https://blog.mchen.xyz/post/beancount-review.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!