Синтаксис на Езика Beancount
Това предоставя кратка, но изчерпателна справка за синтаксиса на езика Beancount, съчетаваща практическа структура, правила и примери. За повече подробности вижте Кратката справка.
Общ преглед
Beancount е система за счетоводство в обикновен текст с двойно записване. Езикът му е структуриран около три основни градивни елемента:
- Стоки (валути, акции, точки и т.н.)
- Сметки (йерархични, категоризирани счетоводни книги)
- Директиви (датирани записи, отчитащи събития или конфигурация)
Стоки
Стоките винаги се пишат с главни букви, напр. USD, EUR, AAPL, BTC, MILES, HOURS.
Сметки
Сметките са разделени с двоеточия, изписани с главни букви йерархични имена. Те трябва да започват с един от петте типа основни сметки:
| Име | Тип | Типично съдържание | Пример |
|---|---|---|---|
Assets | + | Пари в брой, Банка, Инвестиции | Assets:Checking |
Liabilities | - | Кредитни карти, Заеми | Liabilities:CreditCard |
Income | - | Заплата, Лихва | Income:EmployerA |
Expenses | + | Покупки, Сметки | Expenses:Food:Dining |
Equity | - | Начални/Крайни салда | Equity:Opening-Balances |
- Компонентите трябва да бъдат с главни букви, разделени с двоеточия (
:), без интервали. - Разрешени са цифри и тирета в компонентите.
- Основните имена на сметките могат да бъдат персонализирани чрез опции (вижте по-долу).
Директиви
Директивите са основните изявления във файл на Beancount. Повечето започват с дата, последвана от тип на директивата и аргументи. Те се обработват в хронологичен ред (по дата), а не по реда на файловете.
Общ формат:
YYYY-MM-DD <директива> <аргументи...>
Общи Директиви и Примери
Отваряне и Затваряне на Сметки
2023-01-01 open Assets:Checking USD,EUR ; По избор посочете разрешените валути
2023-12-31 close Assets:Checking
Деклариране на Стоки
2020-07-22 commodity AAPL
name: "Apple Inc."
Декларации за Цени
2022-04-30 price AAPL 150.00 USD
Бележки и Документи
2022-03-20 note Assets:Checking "Попита за възстановяване на сума"
2022-03-20 document Assets:Checking "statements/2022-03.pdf"
Транзакции
2024-01-05 * "Кафене" "Сутрешно кафе"
Expenses:Food 4.50 USD
Assets:Cash -4.50 USD
2024-01-06 ! "Сметка за телефон" "Месечно плащане" #комунални ^телефон
id: "INV12345" ; Метаданни
Expenses:Utilities 60.00 USD
Assets:Checking
Функции за Публикуване
; С основна цена
Assets:Stocks 1 AAPL {150.00 USD}
; С анотация на цената
Assets:Cash -100 USD @ 1.25 CAD
; С обща цена
Assets:Cash -100 USD @@ 125.00 CAD
; Имплицитен баланс
Assets:Cash -100 USD
Assets:Bank
Потвърждения на Салдо и Подложки
2024-06-01 balance Assets:Checking 1000.00 USD
2024-06-01 pad Assets:Checking Equity:Opening-Balances
Събития
2024-06-01 event "location" "Сан Франциско, Калифорния"
Опции
Задайте конфигурация за целия файл:
option "title" "Моята счетоводна книга"
option "operating_currency" "USD"
option "documents" "docs/"
option "name_assets" "Vermoegen"
Вижте Справка за опциите за повече информация.
Плъгини и Организац ия на Файлове
plugin "beancount.plugins.module_name"
plugin "beancount.plugins.module_name" "config-string"
include "other/file.beancount"
pushtag #project
; ...
poptag #project
Важни Правила
- Всички транзакции трябва да бъдат балансирани (сумата от всички публикувания е нула; използва се основната цена, ако има такава).
- Сметките трябва да бъдат отворени преди употреба; затворените сметки не могат да приемат публикувания.
- Потвържденията на салдото проверяват само посочената валута и могат да се използват за родителски сметки.
- Анотациите на цените (
@) са информативни и не влияят на балансирането.