Синтаксис мови 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"