原文地址:https://segmentfault.com/a/1190000039353992
作者:Fw恶龙
本文首发于:思否
一、前言
最早是从大学开始记账的,由于当时唯一的收入是每个月的生活费,为了可以买自己想要的东西,只能通过记账以减少不必要的开支。当时用的是Timi记账,整体风格还是挺喜欢的,一直用到了现在。但是一般的记账app记的都是流水账(单式记账),对于一些复杂场景无法做到很好的记录,设想以下场景:
场景1:从银行卡分别转1000元到支某宝和微某信
或许你会认为当成银行卡的总金额就好,但是这样银行卡只会记录转出了2000元,而这2000元在支某宝和微某信里具体怎么花的你并不清楚,支某宝和微某信的收益率也不一样,这时候把支某宝和微某信分别当成一个账户或许是更好的方法,这样在定期对账时,账目才好对上。
这里涉及到内部转账(即:银行卡->支某宝/微某信),这是单式记账无法记录的。
场景2:同学一起出去吃饭,由你先垫付,其他同学表示后续再转账给你
假设共付了500(共5人,每个人100),你记账支出500,然后同学还你的时候再分别记账收入100,这样在后续统计时会发现自己多支出了400,虽然收入也会多出400,但是在比较几个月的支出时会发现这个月支出得特别多,数据间的比较意义不大。
当然还有更多复杂的场景(买房、二手买卖、基金、股票...)
为什么流水账(单式记账)不能够满足记账需求?:从单式记账到复式记账
关于Beancount介绍的文章已经非常多了,想要了解的可以见文末的相关链接,本文主要记录Beancount的安装以及初步使用。
二、Beancount安装步骤
1. 安装Python
其实我很早就想试试复式记账了,但是当时看到还需要安装Python,就以为还需要学习这门语法,直接劝退。最近又被安利复式记账,所以再次尝试搭建环境,结果会发现其实不用学习Python(当然高阶玩法可能还是需要)。
错误记录
2. 安装Beancount
命令行执行如下代码,安装速度视网络情况而定,以下时间仅供参考
pip install beancount (10分钟左右)
pip install fava(10分钟左右)
错误记录
- NameError: name 'pip' is not defined 使用pip时报错:原因是无需在python环境中运行
- pip版本太低:执行以下代码将pip版本更新至最新
python -m pip install --upgrade pip
3. 新建账本 moneybook.bean
参考右侧链接文章的“账本示例”:记账神器 Beancount 教程
;【一、账本信息】
option "title" "我的账本" ;账本名称
option "operating_currency" "CNY" ;账本主货币
;【二、账户设置】
;1、开设账户
1990-01-01 open Assets:Card:1234 CNY, USD ;尾号1234的银行卡,支持CNY和USD
1990-01-01 open Liabilities:CreditCard:5678 CNY, USD ;双币信用卡
1990-01-01 open Income:Salary CNY ;工资收入
1990-01-01 open Expenses:Tax CNY ;交税
1990-01-01 open Expenses:Traffic:Taxi CNY ;打车消费,只支持CNY
1990-01-01 open Equity:OpenBalance ;用于账户初始化,支持任意货币
;2、账户初始化
2019-08-27 * "" "银行卡,初始余额10000元"
Assets:Card:1234 10000.00 CNY
Equity:OpenBalance -10000.00 CNY
;【三、交易记录】
2019-08-28 * "杭州出租车公司" "打车到公司,银行卡支付"
Expenses:Traffic:Taxi 200.00 CNY
Assets:Card:1234 -200.00 CNY
2019-08-29 * "" "餐饮"
Assets:Card:1234 -1100.00 CNY
Liabilities:CreditCard:5678 1100.00 CNY
2019-08-31 * "XX公司" "工资收入"
Assets:Card:1234 12000.00 CNY
Expenses:Tax 1000.00 CNY
Income:Salary
4. 启动项目
fava moneybook.bean
5. 浏览器查看项目:http://localhost:5000/
三、备忘
1. 类型
- Assets 资产
- Liabilities 负债
- Equity 权益(净资产)
- Expenses 支出
- Income 收入
2. 合理填充+定期断言
平常可能存在一些支出忘记记录,或者是比较小的金额(如:群红包)没有记录的情况,时间一长会导致记账总金额和账户总金额对不上的情况,所以需要定期校对。
合理填充:
2021-02-28 pad Assets:Wechat Income:MoneyManagement
定期断言:
2021-03-01 balance Assets:Wechat 1000.00 CNY
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。