Công Cụ Kế Toán Thần Kỳ Beancount - 123winclub
Trải nghiệm cá cược trực tuyến tại 123winclub và thắng lớn ngay hôm nay

Sau vài năm ghi chép tài chính, tôi đã thử qua nhiều công cụ khác nhau như随手记, Excel và thậm chí là Evernote. Hầu hết chỉ ghi lại thu chi mà không theo dõi sự thay đổi của các tài khoản liên quan. Tôi biết rằng cách làm này khá sơ sài, dễ dẫn đến sai sót và thiếu hụt thông tin, chỉ có thể phân tích thu chi chứ không nắm bắt được toàn cảnh tài chính cá nhân.

Mãi đến vài tháng trước, khi đọc bài chia sẻ về Beancount của byvoid, tôi mới thực sự tìm thấy một công cụ kế toán xuất sắc. Từ ngày 1 tháng 7, tôi đã chính thức sử dụng Beancount và sau hơn 3 tháng, xin được chia sẻ một số kinh nghiệm.

Một: Kế Toán Thông Thường So Với Kế Toán Song Song

Phương pháp ghi chép của Beancount được gọi là kế toán song song (double-entry accounting).

Ví dụ: Ngày 1 tháng 7, bạn đi taxi với chi phí 30 tệ bằng thẻ ngân hàng.

  • Ghi chép thông thường sẽ bao gồm ngày tháng, hạng mục thu chi và số tiền:
2019-08-28: Giao thông - Taxi -200 tệ
  • Kế toán song song sẽ ghi nhận cả sự thay đổi của tài khoản:
2019-08-28:
  Giao thông - Taxi   200 tệ
  Thẻ Ngân Hàng      -200 tệ

Kế toán song song ghi nhận dòng chảy tài chính của mỗi giao dịch, các tài khoản thay đổi “có âm có dương, âm dương tương đương”. Đây là nguyên lý cơ bản của kế toán song song, còn được gọi là “phương trình kế toán”

Hai: Khởi Đầu Với Beancount

Kế toán song song là phương pháp luận, còn Beancount là công cụ hỗ trợ phương pháp này

  1. Dữ liệu tài chính cá nhân rất nhạy cảm, Beancount lưu trữ cục bộ nên không lo rò rỉ dữ liệu.
  2. Sổ cái dạng văn bản thuần túy, không phụ thuộc vào phần mềm đặc thù, thuận tiện cho việc di chuyển dữ liệu.
  3. Beancount là phần mềm mã nguồn mở.

Tiếp theo sẽ giới thiệu cách sử dụng cơ bản của Beancount.

Cài Đặt

Beancount là dự án Python, sau khi cài đặt Python, chạy lệnh:

pip install beancount
pip install fava

Fava là phần mềm liên kết, cung cấp giao diện Web đẹp mắt cho Beancount (như hình 1/2/3), khuyến nghị cài đặt cùng lúc.

Ví Dụ Sổ Cái

Sử dụng Beancount rất đơn giản, tóm tắt thành hai bước:

Bước Một Dưới đây là ví dụ hoàn chỉnh, lưu dưới dạng moneybook.bean (định dạng file của Beancount là .bean)

;【Một, Thông Tin Sổ Cái】
option "title" "Sổ Cái Của Tôi" ;Tên sổ cái
option "operating_currency" "CNY" ;Đơn vị tiền tệ chủ yếu
;【Hai, Cấu Hình Tài Khoản】
;1, Mở Tài Khoản
1990-01-01 open Tài sản:Thẻ:1234 CNY, USD ;Thẻ số cuối 1234, hỗ trợ CNY và USD
1990-01-01 open Nợ phải trả:Thẻ tín dụng:5678 CNY, USD ;Thẻ tín dụng song tệ
1990-01-01 open Thu nhập:Lương CNY ;Thu nhập từ lương
1990-01-01 open Chi phí:Thuế CNY ;Nộp thuế
1990-01-01 open Chi phí:Giao thông:Taxi CNY ;Chi tiêu taxi, chỉ hỗ trợ CNY
1990-01-01 open Quyền sở hữu:Mở Số dư ;Dùng để khởi tạo tài khoản, hỗ trợ mọi loại tiền tệ
;2, Khởi tạo tài khoản
2019-08-27 
  Tài sản:Thẻ:1234      10000.00 CNY
  Quyền sở hữu:Mở Số dư    -10000.00 CNY
;【Ba, Nhật ký giao dịch】
2019-08-28 
  Chi phí:Giao thông:Taxi    200.00 CNY
  Tài sản:Thẻ:1234      -200.00 CNY
2019-08-29 
  Tài sản:Thẻ:1234      -1100.00 CNY
  Nợ phải trả:Thẻ tín dụng:5678 1100.00 CNY
  
2019-08-31 
  Tài sản:Thẻ:1234      12000.00 CNY
  Chi phí:Thuế        1000.00 CNY
  Thu nhập:Lương       

Bước Hai

 $ fava moneybook.bean                                                                       
Chạy Fava trên 

Sau đó mở trình duyệt và truy cập đường dẫn, bạn sẽ thấy sổ cái, hình bên dưới lần lượt là bảng báo cáo lợi nhuận/lỗ, bảng cân đối kế toán và nhật ký giao dịch.

Định Dạng Ghi Chép

Sử dụng Beancount, điều quan trọng là hiểu định dạng ghi chép của nó. Từ ví dụ trên, sổ cái bao gồm ba phần:

Thông Tin Sổ Cái

Thông thường chỉ cần thiết lập tên sổ cái và đơn vị tiền tệ chủ yếu.

option "title" "Sổ Cái Của Tôi" ;Tên sổ cái
option "operating_currency" "CNY" ;Đơn vị tiền tệ chủ yếu

Cấu Hình Tài Khoản

[Mở Tài Khoản] Trước khi ghi chép, cần có tài khoản, định dạng mở tài khoản như sau:

Ngày mở open Tên tài khoản Loại tiền tệ

Beancount hỗ trợ cấu trúc phân cấp cho tên tài khoản, dùng dấu hai chấm : để phân cách, ví dụ Tài sản:Thẻ:1234. Nhưng tầng đầu tiên phải là một trong năm tài khoản chính sau, tất cả các giao dịch hàng ngày đều có thể xếp vào một trong các hạng mục này:

Khi mở tài khoản, có thể dùng ngày thật hoặc nếu quên, tôi thường dùng sinh nhật hoặc ngày trước khi bắt đầu kế toán song song (2019-06-30). Loại tiền tệ không bắt buộc khi mở tài khoản nhưng khuyến khích thêm vào, Beancount sẽ báo lỗi nếu loại tiền tệ không khớp khi ghi chép giao dịch. Có thể thêm nhiều loại tiền tệ, dùng dấu phẩy (,) để phân cách. Cuối cùng, nếu một tài khoản không còn sử dụng nữa, ví dụ hủy thẻ tín dụng, có thể dùng lệnh close để đóng tài khoản. Ví dụ:

Ngày đóng close Tên tài khoản

[Tiến Hành Khởi Tạo] Khi bắt đầu ghi chép, tài sản và nợ phải trả thường không bằng không, do đó cần tiến hành khởi tạo tài khoản. Định dạng khởi tạo giống hệt nhật ký giao dịch, khác biệt duy nhất là khởi tạo cần dùng đến tài khoản Quyền sở hữu. Ví dụ tài khoản Tài sản:Thẻ:1234, số dư ban đầu 10000 tệ đến từ Quyền sở hữu:Mở Số dư.

Nhật Ký Giao Dịch

Cấu hình tài khoản khởi tạo liên quan đến nhật ký giao dịch, vì vậy trước tiên hãy giới thiệu định dạng ghi chép nhật ký giao dịch. Như sau:

Ngày 
  Tài khoản  Số tiền Tiền tệ
  Tài khoản  Số tiền Tiền tệ

Trong đó

Ngoài ra, số tiền sau tên tài khoản mang dấu, ví dụ:

*Chi tiêu là dương, thu nhập là âm,

(Tài sản + Chi phí) + (Nợ phải trả + Thu nhập) + Quyền sở hữu = 0 Một giao dịch có thể liên quan đến 2 tài khoản trở lên, ví dụ như “thu nhập từ lương”, lúc này tổng số tiền của nhiều tài khoản cũng phải thỏa mãn “có âm có dương, âm dương tương đương”

Đến đây, bạn đã có thể bắt tay vào ghi chép rồi. Mở tài khoản, sau đó khởi tạo, cuối cùng ghi chép giao dịch mỗi ngày.

Ba: Thực Tiễn Sử Dụng Beancount

Dưới đây là một số kinh nghiệm cá nhân:

Trình Biên Tập

Tôi sử dụng trình biên tập VSCode, kết hợp với plugin Beancount (bởi Lencerf), giúp tô màu cú pháp, tự động hoàn thành tài khoản, căn chỉnh số theo dấu thập phân, thông báo lỗi, nâng cao hiệu suất ghi chép.

Phân Chia Sổ Cái

Theo phương pháp trên, sau một thời gian bạn sẽ nhận thấy: *Khi số lượng giao dịch tăng lên, file sổ cái ngày càng lớn, khó khăn trong việc bảo trì Beancount cho phép phân chia sổ cái, sau đó sử dụng cú pháp include để liên kết các sổ cái lại với nhau. Ví dụ, cấu trúc thư mục sổ cái của tôi như sau: […]

Kiểm Tra Định Kỳ

Trước đó đã nhắc đến ưu điểm của kế toán song song:

Cách này đảm bảo độ chính xác của ghi chép. Trong Beancount, kiểm tra tài khoản được thực hiện thông qua lệnh balance. Giả sử vào 24 giờ ngày 17 tháng 10, số dư thẻ ngân hàng số cuối 1234 là 5000 tệ, ghi lại như sau:

2019-10-18 balance Tài sản:Thẻ:1234  5000.00 CNY

Beancount sẽ tự động tổng hợp tất cả thu chi của thẻ số cuối 1234 trước ngày 17 tháng 10 (bao gồm), nếu lịch sử giao dịch chính xác, kết quả tính toán cũng nên là 5000 tệ. Nếu không phải game quay hũ 5000 tệ, Beancount sẽ báo lỗi, nghĩa là lịch sử giao dịch có vấn đề. Bạn sẽ nhận thấy, số dư ngày 24 giờ ngày 17 tháng 10, khi sử dụng lệnh balance thì dùng ngày 2019-10-18. Tôi thường *kiểm tra định kỳ tất cả tài khoản mỗi tháng một lần

Xử Lý Sai Lầm / Sai Lệch

Nếu kiểm tra báo lỗi, thường tôi sẽ truy ngược lại, vì thói quen kiểm tra hàng tháng nên tối đa chỉ cần truy ngược lại một tháng dữ liệu. Nếu không thể truy ngược, sẽ sử dụng Quyền sở hữu:UFO để ghi nhận. Giả sử khi kiểm tra phát hiện Tài sản:Thẻ:1234 thiếu 200 tệ, thì thêm trước khi kiểm tra:

2019-10-18 
  Tài sản:Thẻ:1234  -200.00 CNY
  Quyền sở hữu:UFO

Một trường hợp sai lệch khác là do làm tròn. Nếu có sai lệch do làm tròn, tôi sử dụng Quyền sở hữu:Làm tròn để xử lý, ví dụ:

2019-10-09 
  Tài sản:Ngân hàng:CMB:XXXX      -450.00 CNY
  Tài sản:Alipay:Quỹ        85.05 FD_110011 {5.2830 CNY}
  Chi phí:Hoa hồng:AlipayQuỹ  0.67 CNY
  Quyền sở hữu:Làm tròn

Tài khoản Quyền sở hữu là một tài khoản đặc biệt, có thể xử lý các trường hợp ngoại lệ. Tôi thiết lập bốn tài khoản Quyền sở hữu như sau: […]

Nhiều Loại Tiền Tệ Và Chuyển Đổi Tiền Tệ

Tài khoản có thể thiết lập nhiều loại tiền tệ theo thực tế. Ví dụ thẻ Visa tiêu dùng bằng đô la Mỹ thì cần hỗ trợ đô la. Đối với tiêu dùng bằng đô la nhưng ghi nhận bằng nhân dân tệ, có thể sử dụng @@ để chuyển đổi tiền tệ. Ví dụ hóa đơn máy chủ blog, 3.71 đô la ghi nhận bằng 26.57 nhân dân tệ.

2019-10-04 
  Nợ phải trả:Thẻ tín dụng:SPDB:XXXX     -26.57 CNY
  Chi phí:Kỹ thuật:Dịch vụ          3.71 USD @@ 26.57 CNY

Trong option có thể thiết lập *loại sổ cái

Nhãn

Một câu hỏi: Bữa ăn trong buổi hẹn hò nên ghi vào tài khoản nào? Có thể ghi vào Chi phí:Ăn uống hoặc Chi phí:Hẹn hò:Ăn uống. Nếu dùng后者, tài khoản về ăn uống sẽ ngày càng nhiều, gây khó khăn trong việc bảo trì. Lúc này, tôi thường dùng前者 và tận dụng chức năng nhãn của Beancount. Ví dụ:

2019-10-18 
  Tài sản:Thẻ:1234    -200.00 CNY
  Chi phí:Ăn uống

Trong đó #Date là nhãn, trong giao diện Fava có thể lọc theo nhãn, xem chi tiết thu chi của các tài khoản có nhãn này. Ví dụ khác, mỗi chuyến du lịch, tôi sẽ gắn nhãn kiểu #20191001-hangzhou cho tất cả chi phí trong chuyến đi, bao gồm ngày và địa điểm. Qua việc lọc nhãn, dễ dàng xem chi phí ăn, ở, đi lại, vui chơi trong chuyến đi. Gắn nhãn từng giao dịch trong chuyến đi khá phức tạp, Beancount hỗ trợ sử dụng pushtagpoptag để gắn nhãn cho nhiều giao dịch.

pushtag #20191001-hangzhou
2019-10-18 
  Tài sản:Thẻ:1234    -200.00 CNY
  Chi phí:Ăn uống:Buổi tối
  
2019-10-18 
  Tài sản:Thẻ:1234     -20.00 CNY
  Chi phí:Giao thông:Taxi
poptag #20191001-hangzhou

Như vậy, tất cả các giao dịch giữa pushtagpoptag sẽ có nhãn #20191001-hangzhou.

Sự Kiện

Trong cuộc sống có thể có những sự kiện muốn ghi lại, điều này đã vượt xa phạm vi ghi chép tài chính nhưng Beancount vẫn hỗ trợ, định dạng:

Ngày event "Loại sự kiện" "Chi tiết sự kiện"

Ví dụ sự kiện của tôi:

;beancount sự kiện
2019-06-30 event "beancount" "Bắt đầu sử dụng beancount"
;Công việc sự kiện
2019-08-30 event "work" "Shenma lastday"
2019-09-02 event "work" "Bắt đầu làm việc tại AE"
;Sự kiện du [ban ca](/posts/bb9ef1d58c0e8394/)  lịch hoặc công tác ghi location
2019-09-13 event "location" "Hangzhou->Suzhou: Đi"
2019-09-15 event "location" "Suzhou->Hangzhou: Về"

Giao diện Fava có phần xem sự kiện.

Tư: Kết Luận

Không ngờ viết nhiều đến vậy, mất nhiều ngày viết lắt nhắt, vẫn còn nhiều điều muốn chia sẻ. Trong quá trình học tập, ngoài bài viết của byvoid, tôi còn tham khảo bài viết của wzyboy và tài liệu chính thức của Beancount —— Kế toán song song dòng lệnh. Có thể áp dụng cách này để ghi chép tài chính nhờ sự phổ biến của thanh toán di động. Sau khi thành thạo, mỗi tối chỉ cần đối chiếu hóa đơn Alipay và WeChat, 3 phút là có thể ghi chép xong. Tất nhiên, đây vẫn chưa phải là cách tốt nhất, wzyboy đã thực hiện import, mỗi tháng chỉ cần xử lý trong một hoặc hai giờ là đủ. Tôi nghĩ cách import không cung cấp đủ thông tin phong phú và chi tiết nên chưa nghiên cứu sâu. Beancount còn có nhiều ứng dụng nâng cao, ví dụ như ghi chép đầu tư chứng khoán, sử dụng ngôn ngữ BQL để thống kê phân tích. Rất phù hợp cho những người thích khám phá công cụ.

Cập nhật gần nhất: 2019-10-19


Sửa đổi lần cuối vào 2025-03-20

choi game ban ca ban ca 123win+club bắn ca bảng xếp hạng bóng đá ngoại hạng anh 2025 game quay hũ ban ca tien