两讫 Liangqi:把现金支出和赊账分开记

大多数记账 App 只记「花了多少」,但信用卡、花呗、借款的支出其实还没从存款里扣。 两讫把这件事拆成资产、负债和支出三条线,让赊账不被重复计算。

两讫(Liangqi)是一个本地优先、可连接远程仓库的记账 Web App。 它的目标不是做「万能记账」,而是把两类支出分清楚: 现金支出现在就从存款里扣,赊账支出现在不动存款、只增加负债,还款时才计入支出。

说明:两讫是开源项目,源码在 Gitee / GitHub;本文只记录使用方法, 不提供在线账号、代管或收费服务。应用数据默认只保存在浏览器本地。

一、为什么大多数记账会把赊账记乱

假设你用信用卡吃了一顿 100 元的饭。大多数记账 App 会直接记一笔「支出 100」, 但此时银行卡里的钱并没有少,只是信用卡欠款多了 100。等到还款时,如果再把 100 记成支出, 这笔钱就被计算了两次。

两讫的处理方式是把动作拆开:

操作资产 / 存款负债支出
现金消费−1000+100
赊账消费0+1000
还款−100−100+100
借款到账+100+1000

关键点在于:赊账消费只增加负债,消费当时不计支出;还款时资产和负债同时减少, 再按还款金额计入支出。这样净资产 = 资产合计 − 负债合计,赊账消费时净资产已经下降, 还款不会再次改变净资产。

二、快速开始

  1. 在浏览器中打开两讫应用(可自行部署,源码见文末),首次进入会创建一个本地书库。
  2. 在「设置 → 界面语言」选择简体中文;金额和日期会跟随语言格式化。
  3. 新建一本账,例如「家庭账」「旅行账」或「生意账」。
  4. 设置本位币;需要外币记账时,可以在记一笔时选择外币和汇率。
  5. 如果要在手机上用,点浏览器菜单里的「添加到主屏幕」,把它当 PWA 安装。

三、账户:先分清资产和负债

账户是两讫的地基。资产账户包括现金、银行卡、支付宝、微信零钱等; 负债账户包括信用卡、花呗、借款等。每个账户可以填期初余额。

  • 资产账户:可以标记是否计入「可支配资产」。房租、还款专用的钱可以不算可支配。
  • 负债账户:信用卡、花呗、借款都放这里。欠款增加记为正,还款记为负。
  • 期初余额:第一次使用时填当前真实余额,不要从零开始硬编历史。

首页会显示总资产、总负债、可支配和净资产。净资产是资产减负债, 不是「所有账户余额相加」。

四、记一笔现金支出

例如用银行卡付了 35 元午饭:

  1. 点「记一笔」,选择支出。
  2. 金额填 35,账户选银行卡,分类选「餐饮 / 午餐」。
  3. 日期默认今天,可以改;备注可写「公司楼下」。
  4. 保存。资产减少 35,支出增加 35,净资产减少 35。

两讫支持两级分类。比如「餐饮」是父分类,「午餐」「晚餐」是子分类, 统计和预算会自动包含子分类。

五、记一笔赊账支出

例如用信用卡买了 100 元的日用品:

  1. 点「记一笔」,支出方式选「赊账」或「先记负债」。
  2. 金额填 100,负债账户选信用卡,分类选「日用」。
  3. 保存后可以生成一张待还账单,填写账单名称和到期日。
  4. 此时资产不变,负债增加 100,支出为 0;净资产减少 100。
为什么支出是 0:因为钱还没真正从资产里扣。 等到还款时,才把还款金额计入支出。这样月度支出不会把同一笔钱算两次。

六、还款与部分还款

还款时,从资产账户转到负债账户。比如还信用卡 60 元:

  1. 打开对应的账单,点「还款」。
  2. 选择还款账户(例如银行卡),输入还款金额 60。
  3. 保存。资产减少 60,负债减少 60,支出增加 60。
  4. 账单余额变成 40,状态仍是「待还」;还清后自动标记为「已还清」。

部分还款不会改变账单的原始金额,只更新已还金额和剩余金额。 还款记录会保留在流水里,方便对账。

七、预算、周期记账与 CSV 导入

预算

可以按月度或年度设置分类、标签、成员预算。首页显示进度,超支会提醒。 如果不知道设多少,可以用「根据最近 3 个月支出生成建议」。

周期记账

房租、工资、订阅这类固定收支,可以建周期规则,按天/周/月/年自动生成流水。 规则支持暂停和立即补记;补记前先确认日期,避免重复。

CSV 导入

微信、支付宝、银行的 CSV 账单可以在「导入」里上传。系统会自动识别列、预览前几行, 再按分类名称匹配。导入后建议用「批量修改」统一分类、成员或标签。

八、多设备同步:GitHub、Gitee 或 WebDAV

默认数据只在本机 IndexedDB。要在手机和电脑之间同步,可以在「数据源」里连接远程仓库:

  • GitHub / Gitee:填写仓库名和私钥(Token),一个仓库对应一本共享账。
  • WebDAV:填写服务器地址、用户名和密码;浏览器直连需要服务端允许 CORS。

远程仓库的结构大致如下:

repo/
└── liangqi/
    ├── meta.json          # 账户、分类、标签、预算、成员、设置
    ├── manifest.json      # 分片清单、哈希、条数
    ├── entries-0.json     # 第 0–999 条流水
    ├── entries-1000.json  # 第 1000–1999 条流水
    ├── bills-0.json       # 账单分片
    └── attachments/       # 附件(按需下载)

同步是增量合并:先读 manifest 判断远程有没有变化,没有变化就跳过; 拉取时按分片哈希复用本地缓存,上传只写变化的分片。 删除使用墓碑记录,避免多人同步时把对方新增的账覆盖掉。

共享账本注意:多人共用一本账时,每个成员要有自己的密码; 登录后只能修改自己的流水和账单,别人的记录只能查看。 远程仓库建议设为私有,不要公开账目数据。

九、数据安全与备份

  • 本地优先:每次修改先写 IndexedDB,界面立即更新;远程同步失败不阻塞记账。
  • 本地密码:可以设置本地密码锁,PBKDF2 哈希保存在本机。
  • 冲突备份:远程覆盖本地前,会把被覆盖版本保存在「数据源 → 冲突备份」,最多 10 份。
  • 导出:支持单账本 JSON、整个书库 JSON;远程仓库本身也有提交历史。
  • 附件:小票、发票、截图保存在本机 IndexedDB,同步时上传到远程仓库,单文件最大 10 MB。

换设备时,先在新设备连接同一个远程仓库,再拉取数据; 或者从旧设备导出 JSON,在新设备导入。迁移前先备份,确认新设备数据完整后再清理旧设备。

十、几个实用小功能

  • 智能记账:输入「昨天午饭 35 现金」,自动识别金额、分类、账户和日期。
  • 快捷指令:支持 #/quick?text=... URL 快速记账,也可以从剪贴板粘贴。
  • 标签:内置「生活场景 / 费用用途 / 关联对象」,支持单选或多选。
  • 成员归属:每笔账单和流水可以归属到家庭成员,账单卡片会显示成员。
  • 消费足迹:流水可以记录当前位置,在「分析 → 消费足迹」用 OpenStreetMap 查看分布。
  • 报表:分析页支持 6 个月趋势、标签/成员分布、大额支出、自定义筛选,导出 CSV 或打印 PDF 月报。

十一、常见问题

1. 为什么还款后净资产没有变化?

这是正确的。赊账消费时负债增加、净资产已经下降;还款只是资产和负债同时减少, 净资产不变。还款当期会计入支出,影响的是收支统计,不是净资产。

2. 赊账消费为什么没有计入本月支出?

两讫把「支出确认」放在还款时。这样同一笔钱不会在消费和还款时各算一次。 如果你更习惯「消费即支出」,可以改用现金支出方式记录,但需要自己承担信用卡还款的对账工作。

3. 换手机后数据怎么迁移?

推荐连接同一个 GitHub/Gitee/WebDAV 仓库,在新设备拉取。 如果没有远程仓库,在旧设备导出 JSON,再在新设备导入。

4. 远程仓库要公开吗?

不要。账目属于隐私数据,仓库应设为私有。Token 也不要发给别人; 多人共享时应使用成员密码,而不是共用同一个登录。

5. 数据存在哪里?会不会上传?

默认只存在浏览器 IndexedDB,不会上传。只有你主动连接远程仓库后, 数据才会同步到你指定的仓库。本站不提供账号系统,也不收集你的账目。

十二、源码与自部署

两讫是开源项目,采用 AGPL-3.0-or-later 许可。你可以从源码仓库获取代码, 在自己的设备或服务器上部署;本站不提供在线账号、代管或收费服务。

源码地址:

注:本文基于 Liangqi 0.10.x 的界面和功能整理,版本升级后个别菜单可能变化。

本文为个人使用笔记,不构成商业服务、产品推荐或实施承诺,采用 CC BY-NC-SA 4.0 许可。 两讫项目及其品牌归项目作者所有。
← 返回教程列表