پرش به محتوای اصلی

برگه تقلب Beancount: نحو و دستورها

مرجع یک‌صفحه‌ای نحو Beancount: انواع حساب و علائم، کالاها، تراکنش‌ها و ثبت‌ها، تراز، فراداده، رویدادها، برچسب‌ها و گزینه‌ها.

ساختار حساب​

انواع حساب و علامت‌ها​

Type          Sign    Example
------------------------------------------------
Assets        (+)     Assets:US:BofA:Checking
Liabilities   (-)     Liabilities:Credit:Amex
Income        (-)     Income:Salary:Gross
Expenses      (+)     Expenses:Food:Restaurant
Equity        (-)     Equity:Opening-Balances

قالب کالا​

کالاها نمادهایی با حروف بزرگ هستند — ارزها، نمادهای سهام و واحدهای سفارشی. اینها مثال‌هایی از نام‌گذاری هستند، نه دستورالعمل:

Currencies:       USD, EUR, CAD, AUD
Investments:      GOOG, AAPL, VTI
Cryptocurrencies: BTC, ETH
Custom units:     HOURS, AIRMILES, HOME_MAYST

نحو دستورالعمل​

مدیریت حساب​

; Opening accounts
2024-01-01 open Assets:Checking             ; Simple
2024-01-01 open Assets:Investing USD,GOOG   ; With constraints
 
; Closing accounts
2024-12-31 close Assets:Old:Account

اعلام کالا​

2024-01-01 commodity VTSAX
    name: "Vanguard Total Stock Market Index"
    asset-class: "equity"

ثبت تراکنش​

; Basic transaction
2024-01-15 * "Grocery Store" "Weekly shopping"
    Assets:Checking     -100.00 USD
    Expenses:Food:Groceries
 
; With metadata and tags (#work is a tag, ^invoice-123 is a link)
2024-01-15 * "Restaurant" "Business dinner" #work ^invoice-123
    id: "T-1234"
    receipt: "path/to/receipt.pdf"
    Expenses:Meals      80.00 USD
    Liabilities:Credit

مشخصات ثبت​

اینها خطوط ثبت هستند — هر کدام داخل یک تراکنش قرار دارد و زیر خط تاریخ آن تورفتگی دارد:

; Basic amount
Assets:Cash              100.00 USD
 
; Cost basis tracking
Assets:Invest:VTSAX      10 VTSAX {100.00 USD}        ; Per-unit cost
Assets:Invest:VTSAX      10 VTSAX {{1000.00 USD}}     ; Total cost
Assets:Invest:VTSAX      10 VTSAX {100.00 # 9.95 USD} ; Per-unit plus total fee
 
; Price specifications
Assets:Forex            1000.00 USD @ 0.85 EUR        ; Per-unit
Assets:Forex            1000.00 USD @@ 850.00 EUR     ; Total price
 
; Dated lots
Assets:Invest:VTSAX      10 VTSAX {100.00 USD, 2024-01-15}

تأیید موجودی​

; Balance padding: fills Assets:Checking up to Equity:Opening-Balances
2024-01-01 pad Assets:Checking Equity:Opening-Balances
 
; Balance assertion: checked at the start of its date, so date it after the pad
2024-02-01 balance Assets:Checking  1000.00 USD

ردیابی فراداده​

; Note attachment
2024-01-15 note Assets:Checking "Called bank about fee"
 
; Document linking
2024-01-15 document Assets:Checking "path/to/statement.pdf"
 
; Price recording
2024-01-15 price VTSAX  100.00 USD

برای دفترهای میزبانی‌شده، Live Prices می‌تواند به‌طور خودکار قیمت‌های ارزش‌گذاری تاریخ‌دار را تأمین کند. جفت‌های دارایی پشتیبانی‌شده را در انتخابگر انتخاب کنید، سپس شامل‌ها را در دفتر خود کپی کنید. قیمت‌های تراکنش و بهای تمام‌شده را صریح نگه دارید.

ثبت رویداد​

; Location tracking
2024-01-15 event "location" "New York, USA"
 
; Property changes
2024-01-15 event "address" "123 Main Street"

مدیریت برچسب​

; Tag scope control: #vacation applies to every transaction between the pushtag and poptag
pushtag #vacation
2024-01-15 * "Hotel"
    Expenses:Travel:Lodging   200.00 USD
    Assets:Credit
poptag #vacation

گزینه‌های پیکربندی​

; Basic settings
option "title" "Personal Finance Ledger"
option "operating_currency" "USD"
 
; Account naming
option "name_assets" "Assets"
option "name_liabilities" "Liabilities"
option "name_income" "Income"
option "name_expenses" "Expenses"
option "name_equity" "Equity"
 
; Document handling
option "documents" "/path/to/docs"

نظرات و سازمان‌دهی​

; Single line comment
 
* Section Header
** Subsection
; Transaction block follows...
 
; Account grouping
; Assets
2024-01-15 ...
 
; Expenses
2024-01-16 ...

این مرجع نمای کلی کاملی از عناصر نحو Beancount را همراه با مثال‌های عملی ارائه می‌دهد.

منبع: https://beancount.io/fa/docs/Basics/cheatsheet