Перейти до основного вмісту
Beancount.io Logo

Ваш перший місяць із bea

Відкрийте книгу обліку, запишіть тиждень покупок, імпортуйте банківський експорт, звірте із балансом 3206.81 USD та прочитайте звіти місяця за допомогою командного рядка bea.

Закрийте один місяць обліку від початку до кінця за допомогою bea, інструменту командного рядка Beancount.io. Ви відкриєте книгу обліку, запишете покупки, імпортуєте банківський експорт, звірите із балансом виписки 3206.81 USD та прочитаєте звіт про прибутки та збитки та балансовий звіт за місяць.

Місяць — серпень 2026 року, і книга обліку починається з 1250 USD на поточному рахунку. Ніщо тут не вимагає від вас писати код на Python або запити.

Спочатку встановіть bea, якщо ще цього не зробили: швидкий старт із Beancount CLI охоплює Homebrew та uv. Для локального ведення обліку акаунт Beancount.io не потрібен.

Працюйте в порожній директорії. Завантажте два вхідні файли в неї перед початком:

  • first-month.csv — банківський експорт, який ви імпортуєте на третьому тижні.
  • rules.toml — правила категоризації, які використовує цей експорт.

Кожна команда вказує книгу обліку за допомогою --file august/main.bean, тому ви можете запускати їх із цієї директорії, не переходячи в каталог книги.

Тиждень 1 — налаштування книг

Створіть книгу обліку, а потім відкрийте той рахунок, якого шаблону бракує для цього місяця.

bea --no-input init august --currency USD --date 2026-08-01 \
  --opening-balance "Assets:Checking 1250"
bea --file august/main.bean add open --date 2026-08-01 --account Expenses:Transport:Fuel -c USD

init створює august/main.bean із чотирнадцятьма рахунками, включно з Expenses:Uncategorized. Імпорт розміщує рядки, які не може категоризувати, саме туди.

Тиждень 2 — запис повсякденних покупок

Записуйте покупки в міру їх здійснення. Дата за замовчуванням — сьогоднішня, тому для записів задньою датою передавайте --date явно.

bea --file august/main.bean add transaction "Coffee" --date 2026-08-03 \
  --posting "Expenses:Dining 4.50" --posting "Assets:Checking"
bea --file august/main.bean add transaction "Weekly groceries" --date 2026-08-05 \
  --posting "Expenses:Groceries 62.30" --posting "Assets:Checking"
bea --file august/main.bean add transaction --date 2026-08-07 --payee "Employer" \
  --narration "August salary" --posting "Assets:Checking 2100" --posting "Income:Salary"

Кожне додавання перевіряється проти всієї книги обліку перед заміною файлу. Друга проводка залишається порожньою, тому Beancount заповнює суму, що балансує.

Тиждень 3 — імпорт банківського експорту

Експорт за решту серпня містить три рядки:

Date,Payee,Amount
2026-08-10,Whole Foods,-28.40
2026-08-12,Shell,-35.00
2026-08-20,Mystery Shop,-9.99

Файл правил зіставляє одержувача платежу з рахунком. Правила виконуються в порядку файлів, і перший збіг виграє.

[[rule]]
match = "whole foods|trader joe|corner market"
account = "Expenses:Groceries"
 
[[rule]]
match = "shell|chevron|exxon"
account = "Expenses:Transport:Fuel"
 
[[rule]]
match = "salary|payroll|employer"
account = "Income:Salary"

Зіставте колонки експорту за допомогою --csv, перегляньте результат, а потім повторіть із --apply, щоб записати його.

bea --file august/main.bean import first-month.csv \
  --csv date=Date,amount=Amount,payee=Payee --account Assets:Checking --rules rules.toml
bea --file august/main.bean import first-month.csv --apply

Попередній перегляд друкує один рядок на рядок із правилом, яке йому відповідає, а також точний диф, який він би записав. Нічого не записується, доки не застосуєте --apply.

Другій команді не потрібні прапорці: зіставлення колонок, рахунок і правила запам'ятовуються для цього файлу. Кожен записаний запис містить рядок import-id, тому повторний імпорт того самого експорту пропускає вже наявні в книзі записи.

Два рядки відповідають правилу. Третій, Mystery Shop, не відповідає жодному, тому він надходить на Expenses:Uncategorized із прапорцем ! — ваша черга для перегляду на потім.

Щодо форми дебетової та кредитової колонок, інших валют і імпортерів Python див. Імпорт банківських експортів за допомогою CLI.

Тиждень 4 — звірка з випискою

Серпнева виписка закриває поточний рахунок на 3206.81 USD. Ваші книги показують 3209.81 USD. Різниця — банківська комісія 3.00 USD, яку експорт пропустив.

Запишіть комісію, а потім підтвердьте баланс виписки. Beancount перевіряє підтвердження на початку свого дня, тому підтвердження на 1 вересня охоплює всі серпневі транзакції.

bea --file august/main.bean add transaction "Bank fee" --date 2026-08-31 \
  --posting "Expenses:Fees 3.00" --posting "Assets:Checking"
bea --file august/main.bean add balance --date 2026-09-01 --account Assets:Checking \
  --amount "3206.81 USD"
bea --file august/main.bean list transaction --flag '!' --details

У черзі є одна транзакція — рядок Mystery Shop. --details друкує її файл і номер рядка.

Відкрийте цей рядок у своєму редакторі. Змініть його проводку Expenses:Uncategorized на рахунок, до якого він належить — тут це Expenses:Dining — і змініть його прапорець з ! на *, щоб позначити як переглянутий. Залиште рядок import-id, щоб повторний імпорт усе ще пропускав цей рядок.

Потім підтвердьте, що книга завантажується, а черга порожня:

bea --file august/main.bean check
bea --file august/main.bean list transaction --flag '!' --details

Чиста книга завершує роботу з кодом 0. Помилкове підтвердження або невідомий рахунок відображаються з ненульовим кодом завершення. Тепер черга друкує No transactions found.

Читання місяця

bea --file august/main.bean report income-statement --time 2026-08
bea --file august/main.bean report balance-sheet
bea --file august/main.bean report income-statement --time month

Звіт про прибутки та збитки зводить зарплату 2100.00 USD проти 143.19 USD витрат до чистого прибутку 1956.81 USD. Залишки рахунків друкуються в знаках Beancount, тому рядки доходів від'ємні. Балансовий звіт показує поточний рахунок на 3206.81 USD, що відповідає виписці, з якою ви звірилися.

--time 2026-08 закріплює місяць цього підручника. --time month завжди означає поточний місяць, і саме його ви будете використовувати, коли ваші книги будуть актуальними.

Продовження звідси

Джерело: https://beancount.io/uk/docs/Basics/bea-first-month