Preskočiť na hlavný obsah

Referencia syntaxe Beancount: direktívy, účty, sumy

Referencia syntaxe jazyka Beancount: direktívy, transakcie, pomenovanie účtov, značky, metadáta a formátovanie pre účtovné knihy v čistom texte.

Toto poskytuje stručnú, ale komplexnú referenciu pre syntax jazyka Beancount, ktorá spája praktickú štruktúru, pravidlá a príklady. Viac podrobností nájdete v Ťaháku.

Prehľad​

Beancount je systém podvojného účtovníctva v čistom texte. Jeho jazyk je postavený na troch hlavných stavebných blokoch:

  • Komodity (meny, akcie, body atď.)
  • Účty (hierarchické, kategorizované knihy)
  • Direktívy (datované záznamy zaznamenávajúce udalosti alebo konfiguráciu)

Komodity​

Komodity sa vždy píšu veľkými písmenami, napr. USD, EUR, AAPL, BTC, MILES, HOURS.

Účty​

Účty sú hierarchické názvy oddelené dvojbodkami, písané s veľkým začiatočným písmenom. Musia začínať jedným z piatich koreňových typov účtov:

NázovTypTypický obsahPríklad
Assets+Hotovosť, banka, investícieAssets:Checking
Liabilities-Kreditné karty, pôžičkyLiabilities:CreditCard
Income-Mzda, úrokIncome:EmployerA
Expenses+Nákupy, účtyExpenses:Food:Dining
Equity-Počiatočné/konečné zostatkyEquity:Opening-Balances
  • Komponenty musia byť písané s veľkým začiatočným písmenom, oddelené dvojbodkami (:), bez medzier.
  • V komponentoch sú povolené čísla a pomlčky.
  • Názvy koreňových účtov je možné prispôsobiť pomocou volieb (pozri nižšie).

Direktívy​

Direktívy sú základné príkazy v súbore Beancount. Väčšina začína dátumom, za ktorým nasleduje typ direktívy a argumenty. Spracúvajú sa v chronologickom poradí (podľa dátumu), nie v poradí v súbore.

Všeobecný formát:

YYYY-MM-DD <directive> <arguments...>

Bežné direktívy a príklady​

Otváranie a zatváranie účtov​

2023-01-01 open Assets:Checking USD,EUR  ; Optionally specify allowed currencies
2023-12-31 close Assets:Checking

Deklarovanie komodít​

2020-07-22 commodity AAPL
  name: "Apple Inc."

Deklarácie cien​

2022-04-30 price AAPL 150.00 USD

Pre automatické oceňovacie kotácie v hostenej knihe nastavte Live Prices. Spravované kanály poskytujú bežné datované direktívy price. Nenahrádzajú transakčné ceny (@, @@) ani náklady na lot ({}).

Poznámky a dokumenty​

2022-03-20 note Assets:Checking "Asked about refund"
2022-03-20 document Assets:Checking "statements/2022-03.pdf"

Transakcie​

2024-01-05 * "Coffee Shop" "Morning coffee"
  Expenses:Food         4.50 USD
  Assets:Cash         -4.50 USD
 
2024-01-06 ! "Phone Bill" "Monthly payment" #utilities ^phone
  id: "INV12345"              ; Metadata
  Expenses:Utilities  60.00 USD
  Assets:Checking

Vlastnosti účtovných zápisov​

; With cost basis
  Assets:Stocks    1 AAPL {150.00 USD}
; With price annotation
  Assets:Cash   -100 USD @ 1.25 CAD
; With total price
  Assets:Cash   -100 USD @@ 125.00 CAD
; Implicit balance
  Assets:Cash   -100 USD
  Assets:Bank

Zostatky a dopĺňanie​

Direktíva pad musí byť datovaná pred direktívou balance, ktorú napĺňa, pretože overenie sa kontroluje na začiatku svojho dňa:

2024-06-01 pad Assets:Checking Equity:Opening-Balances
2024-06-02 balance Assets:Checking 1000.00 USD

Udalosti​

2024-06-01 event "location" "San Francisco, CA"

Možnosti​

Nastavenie konfigurácie pre celý súbor:

option "title" "My Ledger"
option "operating_currency" "USD"
option "documents" "docs/"
option "name_assets" "Vermoegen"

Viac informácií nájdete v Referencii volieb.

Pluginy a organizácia súborov​

plugin "beancount.plugins.module_name"
plugin "beancount.plugins.module_name" "config-string"
include "other/file.beancount"
pushtag #project
; ...
poptag #project

Hostený Beancount.io tiež rozpoznáva podporované zahrnutia spravovaných cenových URL. Ide o rozšírenie oproti upstream Beancount: použite príručku nastavenia Live Prices pre kompatibilitu v hostenom aj lokálnom prostredí.

Dôležité pravidlá​

  • Všetky transakcie musia byť vyrovnané: váhy všetkých zaúčtovaní sú v súčte nula. Váha zaúčtovania je jeho suma, alebo jeho náklad ({}) alebo cena (@) prepočítané na druhú menu, ak je niektorá prítomná.
  • Účty musia byť otvorené pred použitím; zatvorené účty nemôžu prijímať zaúčtovania.
  • Overenia zostatku kontrolujú iba zadanú menu, možno ich použiť na nadradených účtoch a vyhodnocujú sa na začiatku svojho dátumu (takže vylučujú transakcie z toho istého dňa).
  • Cenové anotácie (@ za jednotku, @@ celkom) ovplyvňujú vyrovnanie: nastavujú váhu zaúčtovania v druhej mene. -100 USD @ 1.25 CAD váži 125 CAD a vyrovnáva zaúčtovanie 125 CAD; odstráňte cenu a transakcia už nebude vyrovnaná.

Bežné vzory​

Otvorenie účtov s počiatočným zostatkom​

Otvorte oba účty, použite pad v počiatočný dátum a overte zostatok nasledujúci deň (overenie sa kontroluje na začiatku svojho dátumu):

2024-01-01 open Assets:Checking USD
2024-01-01 open Equity:Opening-Balances
2024-01-01 pad Assets:Checking Equity:Opening-Balances
2024-01-02 balance Assets:Checking 1000.00 USD

Investičná transakcia​

2024-01-01 * "Buy stock"
  Assets:Broker:Stock   10 AAPL {150.00 USD}
  Assets:Broker:Cash -1500.00 USD

Transakcia s viacerými menami​

2024-01-01 * "Currency exchange"
  Assets:USD   -100.00 USD @ 1.25 CAD
  Assets:CAD    125.00 CAD

Komentáre​

poptag  #trip-to-peru
; inline comments begin with a semi-colon
* any line not starting with a valid directive is also ignored silently

Zdroj: https://beancount.io/sk/docs/Basics/syntax