Розуміння журналних записів у Beancount
Журналні записи – це основа подвійного бухгалтерського обліку, і в Beancount кожна транзакція *
, яку ви пишете, є журналним записом. У цьому посібнику пояснюються сутності — дебети та кредити, коригувальні записи та зворотні записи — і показано, як вони чисто відображаються у простому текстовому синтаксисі Beancount. Ви дізнаєтеся, як вести точну бухгалтерію з мінімальними формальностями.
Швидке нагадування: що таке журналний запис?
Журналний запис – це формальний, датований запис фінансової транзакції. Він виражається у вигляді дебетів і кредитів, які підтримують баланс фундаментального бухгалтерського рівняння:
У системі подвійного запису кожна транзакція впливає принаймні на два рахунки, і сума дебетів має дорівнювати сумі кредитів. Це просте правило забезпечує достовірність і точність фінансових звітів, таких як звіт про прибутки та збитки і баланс.
Дебети та кредити за одну хвилину
Концепції дебетів і кредитів можуть спочатку збивати з пантелику, але вони зводяться до кількох простих правил. Думайте так: «звідки прийшла вартість?» (кредит) і «куди пішла вартість?» (дебет).
Ось коротка таблиця, яка показує, як вони збільшують п’ять основних типів рахунків:
Тип рахунку | Збільшується за рахунок |
---|---|
Assets | Debit |
Expenses | Debit |
Liabilities | Credit |
Equity | Credit |
Income | Credit |
Як виглядає журналний запис у Beancount
Beancount використовує прості, зрозумілі текстові директиви для реєстрації транзакцій. Кожна транзакція має балансувати до нуля для кожної валюти (наприклад, USD, EUR, акції AAPL). Якщо це не так, Beancount виведе помилку.
Ось базова транзакція для купівлі кави:
2025-09-10 * "Coffee Bar" "Team coffee"
Expenses:Food:Coffee 18.00 USD
Assets:Bank:Checking -18.00 USD
Зверніть увагу, як два рядки (з рахунками) сумуються до нуля: $18.00 + (-$18.00) = 0
.
Ви можете додавати потужний контекст безпосередньо у опис, використовуючи теги (наприклад, #clientX
) для фільтрації та посилання (наприклад, ^INV-2025-001
) для зв’язку пов’язаних записів.
Наприклад, ось як можна зв’язати рахунок‑фактуру з її оплатою:
; Спочатку записуємо рахунок‑фактуру, яку ми відправили кл ієнту
2025-09-15 * "Acme Corp" "Invoice 2025-001 #clientX ^INV-2025-001"
Assets:AccountsReceivable 1000.00 USD
Income:Consulting -1000.00 USD
; Пізніше записуємо оплату і зв’язуємо її з оригінальною фактурою
2025-09-28 * "Acme Corp" "Payment on ^INV-2025-001"
Assets:Bank:Checking 1000.00 USD
Assets:AccountsReceivable -1000.00 USD
Тег #clientX
дозволяє легко фільтрувати всі транзакції для цього клієнта, а посилання ^INV-2025-001
створює зв’язок між двома записами, який можна простежити у звітах.