Към основното съдържание

Beancount шпаргалка: синтаксис и директиви

Едностранична справка за синтаксиса на Beancount: видове сметки и знаци, валути, транзакции и осчетоводявания, баланс, метаданни, събития, тагове и опции.

Структура на сметките​

Типове сметки и знаци​

Тип           Знак    Пример
------------------------------------------------
Assets        (+)     Assets:US:BofA:Checking
Liabilities   (-)     Liabilities:Credit:Amex
Income        (-)     Income:Salary:Gross
Expenses      (+)     Expenses:Food:Restaurant
Equity        (-)     Equity:Opening-Balances

Формат на стоките​

Стоките са символи с главни букви — валути, тикери и потребителски единици. Това са примери за именуване, не директиви:

Валути:              USD, EUR, CAD, AUD
Инвестиции:          GOOG, AAPL, VTI
Криптовалути:        BTC, ETH
Потребителски единици: HOURS, AIRMILES, HOME_MAYST

Синтаксис на директивите​

Управление на сметки​

; Откриване на сметки
2024-01-01 open Assets:Checking             ; Просто
2024-01-01 open Assets:Investing USD,GOOG   ; С ограничения
 
; Затваряне на сметки
2024-12-31 close Assets:Old:Account

Деклариране на стоки​

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

Записване на транзакции​

; Основна транзакция
2024-01-15 * "Grocery Store" "Weekly shopping"
    Assets:Checking     -100.00 USD
    Expenses:Food:Groceries
 
; С метаданни и тагове (#work е таг, ^invoice-123 е връзка)
2024-01-15 * "Restaurant" "Business dinner" #work ^invoice-123
    id: "T-1234"
    receipt: "path/to/receipt.pdf"
    Expenses:Meals      80.00 USD
    Liabilities:Credit

Спецификации на осчетоводяванията​

Това са редове за осчетоводяване — всеки се намира вътре в транзакция, с отстъп под реда с датата:

; Основна сума
Assets:Cash              100.00 USD
 
; Проследяване на базова стойност
Assets:Invest:VTSAX      10 VTSAX {100.00 USD}        ; Цена за единица
Assets:Invest:VTSAX      10 VTSAX {{1000.00 USD}}     ; Обща цена
Assets:Invest:VTSAX      10 VTSAX {100.00 # 9.95 USD} ; Цена за единица плюс обща такса
 
; Спецификации на цени
Assets:Forex            1000.00 USD @ 0.85 EUR        ; За единица
Assets:Forex            1000.00 USD @@ 850.00 EUR     ; Обща цена
 
; Датирани партиди
Assets:Invest:VTSAX      10 VTSAX {100.00 USD, 2024-01-15}

Проверка на баланс​

; Запълване на баланс: допълва Assets:Checking до Equity:Opening-Balances
2024-01-01 pad Assets:Checking Equity:Opening-Balances
 
; Твърдение за баланс: проверява се в началото на датата си, така че датирайте след pad
2024-02-01 balance Assets:Checking  1000.00 USD

Проследяване на метаданни​

; Прикачване на бележка
2024-01-15 note Assets:Checking "Called bank about fee"
 
; Свързване на документ
2024-01-15 document Assets:Checking "path/to/statement.pdf"
 
; Записване на цена
2024-01-15 price VTSAX  100.00 USD

За хоствани регистри, Live Prices може да предоставя датирани цени за оценка автоматично. Изберете поддържани двойки активи в инструмента за избор, след което копирайте включванията в регистъра си. Поддържайте цените на транзакциите и базовата стойност ясни.

Записване на събития​

; Проследяване на местоположение
2024-01-15 event "location" "New York, USA"
 
; Промени в свойства
2024-01-15 event "address" "123 Main Street"

Управление на тагове​

; Контрол на обхвата на тагове: #vacation се прилага към всяка транзакция между pushtag и poptag
pushtag #vacation
2024-01-15 * "Hotel"
    Expenses:Travel:Lodging   200.00 USD
    Assets:Credit
poptag #vacation

Опции за конфигурация​

; Основни настройки
option "title" "Personal Finance Ledger"
option "operating_currency" "USD"
 
; Именуване на сметки
option "name_assets" "Assets"
option "name_liabilities" "Liabilities"
option "name_income" "Income"
option "name_expenses" "Expenses"
option "name_equity" "Equity"
 
; Работа с документи
option "documents" "/path/to/docs"

Коментари и организация​

; Коментар на един ред
 
* Заглавен ред на раздел
** Подраздел
; Следва блок с транзакции...
 
; Групиране на сметки
; Assets
2024-01-15 ...
 
; Expenses
2024-01-16 ...

Тази справка предоставя пълен преглед на синтаксисните елементи на Beancount с практически примери.

Източник: https://beancount.io/bg/docs/Basics/cheatsheet