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

Розуміння журналних записів у Beancount

7 хв. читанняMike ThriftMike Thrift
Розуміння журналних записів у Beancount

Журналні записи – це основа подвійного бухгалтерського обліку, і в Beancount кожна транзакція *, яку ви пишете, є журналним записом. У цьому посібнику пояснюються сутності — дебети та кредити, коригувальні записи та зворотні записи — і показано, як вони чисто відображаються у простому текстовому синтаксисі Beancount. Ви дізнаєтеся, як вести точну бухгалтерію з мінімальними формальностями.


Швидке нагадування: що таке журналний запис?

Журналний запис – це формальний, датований запис фінансової транзакції. Він виражається у вигляді дебетів і кредитів, які підтримують баланс фундаментального бухгалтерського рівняння:

Assets=Liabilities+EquityAssets = Liabilities + Equity

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


Дебети та кредити за одну хвилину

Концепції дебетів і кредитів можуть спочатку збивати з пантелику, але вони зводяться до кількох простих правил. Думайте так: «звідки прийшла вартість?» (кредит) і «куди пішла вартість?» (дебет).

Ось коротка таблиця, яка показує, як вони збільшують п’ять основних типів рахунків:

Тип рахункуЗбільшується за рахунок
AssetsDebit
ExpensesDebit
LiabilitiesCredit
EquityCredit
IncomeCredit

Як виглядає журналний запис у 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 створює зв’язок між двома записами, який можна простежити у звітах.


Типові журналні записи (готові до копіювання)

Нижче наведено кілька поширених бізнес‑транзакцій, відформатованих для Beancount.

Власник вносить готівку

Власник вносить особисті кошти для запуску бізнесу.

2025-01-01 * "Owner" "Initial capital contribution"
  Assets:Bank:Checking        10000.00 USD
  Equity:Owner-Capital      -10000.00 USD

Готівковий продаж з ПДВ

Клієнт платить готівкою за товар, включаючи 8 % ПДВ, який пізніше треба сплатити державі.

2025-01-05 * "Walk-in Customer" "Cash sale with 8% tax"
  Assets:Cash                   108.00 USD
  Income:Sales                -100.00 USD
  Liabilities:Tax:Sales         -8.00 USD

Продаж у кредит (рахунок‑фактура) і отримання платежу

Ви надаєте послугу і виставляєте рахунок клієнту, а потім отримуєте оплату.

2025-01-10 * "Acme Corp" "Consulting invoice ^INV-2025-002"
  Assets:AccountsReceivable   2500.00 USD
  Income:Consulting         -2500.00 USD
 
2025-01-30 * "Acme Corp" "Payment on ^INV-2025-002"
  Assets:Bank:Checking       2500.00 USD
  Assets:AccountsReceivable -2500.00 USD

Витрати за кредитною карткою

Ви купуєте офісні матеріали за допомогою корпоративної кредитної картки.

2025-01-12 * "OfficeMax" "Supplies on credit card"
  Expenses:Office:Supplies       75.00 USD
  Liabilities:CreditCard        -75.00 USD

Зарплата (простий варіант)

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

2025-01-31 * "Payroll" "January wages and withholdings"
  Expenses:Payroll:Wages      2000.00 USD
  Liabilities:Taxes:Withheld   -400.00 USD
  Assets:Bank:Checking       -1600.00 USD

Щомісячна амортизація

Ви реєструєте щомісячну амортизацію активу, наприклад ноутбука.

2025-01-31 * "Depreciation" "Laptop, straight-line"
  Expenses:Depreciation          100.00 USD
  Assets:Equipment:AccumDepr    -100.00 USD

Попередньо сплачена послуга та щомісячна амортизація

Ви сплачуєте річну страховку наперед, а потім щомісяця визнаєте частину витрат.

; 1. Сплата за річну страховку
2025-01-01 * "InsureCo" "Annual insurance premium"
  Assets:Prepaid:Insurance     1200.00 USD
  Assets:Bank:Checking       -1200.00 USD
 
; 2. Визнання одного місяця витрат у кінці січня
2025-01-31 * "InsureCo" "Amortize 1/12 of insurance"
  Expenses:Insurance             100.00 USD
  Assets:Prepaid:Insurance      -100.00 USD

Неотриманий дохід та щомісячне визнання

Клієнт передплачує 3‑місячну підписку. Ви реєструєте готівку, а потім щомісяця визнаєте дохід.

; 1. Клієнт передплачує послугу
2025-02-01 * "Subscriber" "3-month plan prepaid"
  Assets:Bank:Checking           300.00 USD
  Liabilities:Unearned:Subs     -300.00 USD
 
; 2. Визнання одного місяця доходу після надання послуги
2025-02-28 * "Recognition" "Recognize month 1 of 3"
  Liabilities:Unearned:Subs      100.00 USD
  Income:Subscriptions          -100.00 USD

Резерв під сумнівні дебітори та списання безнадійного боргу

Ви створюєте резерв під можливі непогашені рахунки, а потім списуєте конкретний безнадійний рахунок.

; 1. Створюємо резерв у розмірі 2 % від дебіторської заборгованості
2025-03-31 * "Provision" "2% of A/R for doubtful accounts"
  Expenses:BadDebt               200.00 USD
  Assets:AllowanceForDoubtful   -200.00 USD
 
; 2. Списуємо конкретний рахунок, який не буде сплачено
2025-04-15 * "Write-off" "Customer XYZ invoice"
  Assets:AllowanceForDoubtful    150.00 USD
  Assets:AccountsReceivable     -150.00 USD

Періодичний інвентар та коригування собівартості проданих товарів (COGS)

Наприкінці періоду ви розраховуєте собівартість проданих товарів, коригуючи інвентарний рахунок.

2025-03-31 * "COGS adjustment" "Periodic inventory method"
  Expenses:COGS                4500.00 USD
  Assets:Inventory           -4500.00 USD

Коригувальні записи vs. Зворотні записи

Коригувальні записи створюються в кінці облікового періоду (місяця або кварталу) для правильного відображення доходів і витрат у тому періоді, коли вони фактично зароблені або понесені. Це включає акумуляції, відстрочки та оцінки, такі як амортизація.

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

Приклад: акумулювання та зворотний запис комунальних послуг

Припустимо, що ви повинні записати витрати на комунальні послуги за січень, але рахунок прийде лише у лютому.

; 1. Акумулюємо оцінені витрати в кінці січня
2025-01-31 * "Accrual" "Estimate January utilities expense"
  Expenses:Utilities              500.00 USD
  Liabilities:Accrued:Utilities  -500.00 USD
 
; 2. (Опціонально) Зворотний запис акумулювання у перший день наступного періоду
2025-02-01 * "Reversal" "Undo January utilities accrual"
  Liabilities:Accrued:Utilities   500.00 USD
  Expenses:Utilities             -500.00 USD
 
; 3. Запис фактичної оплати, коли рахунок надійде у лютому
; Фактичний рахунок становить $520. Завдяки зворотному запису ви можете
; записати повну суму у витрати без додаткових коригувань.
; Чисті витрати за лютий будуть $520 - $500 = $20.
2025-02-10 * "City Utilities" "Payment for January bill"
  Expenses:Utilities             520.00 USD
  Assets:Bank:Checking          -520.00 USD

Примітка: У наведеному прикладі показано розподіл остаточної оплати. Метод зворотного запису – це альтернатива, що спрощує фінальний запис.


Чек‑лист для кожного журналного запису в Beancount

Перевірте наступні кроки, щоб ваші записи були чистими та правильними:

  1. Починайте з дати (РРРР-ММ-ДД) та прапорця транзакції (*).
  2. Додайте контрагента і описову нarration. Використовуйте #tags і ^links для зручного пошуку.
  3. Вкажіть щонайменше два рядки запису, які балансуватимуть до нуля для кожної валюти.
  4. Використовуйте правильні імена рахунків серед п’яти типів: Assets, Liabilities, Equity, Income, Expenses.
  5. За потреби додавайте метадані, наприклад document: "invoices/INV-2025-001.pdf" для простежуваності.

Типові помилки (і як Beancount їх запобігає)

  • Несбалансовані записи: Якщо сума дебетів і кредитів не дорівнює нулю, Beancount відхилить запис. Це ключова функція, яка запобігає помилкам. Ви навіть можете залишити одну суму порожньою, і Beancount автоматично її підрахує.
  • Помилковий знак у рахунку: Легко забути, що Income, Equity і Liabilities збільшуються кредитами (у Beancount це зазвичай від’ємні числа). Якщо зробити помилку, ваші звіти виглядатимуть дивно, проте правило балансування все одно захистить вас.
  • Відсутність посилань між записами: Якщо не зв’язати рахунок‑фактуру з її оплатою, важче відстежити, що залишилося неоплачено. Постійне використання ^links створює аудиторський слід.

Куди далі

  • Мова Beancount та правила балансування: Поглиблене вивчення офіційної документації.
  • Шпаргалка синтаксису: Зручний довідник усіх директив Beancount.
  • Вступ до дебетів/кредитів: Чудовий старт, якщо ви новачок у бухгалтерських правилах.
  • Коригувальні та зворотні записи: Детальні статті про бухгалтерську теорію.

Додаток: Відповідність бухгалтерської мови → Beancount

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

Бухгалтерська інструкціяДія в Beancount
Дебетувати витратуПозитивна сума у рахунку Expenses:
Кредитувати зобов’язанняВід’ємна сума у рахунку Liabilities:
Акумулювати дохідAssets:AccountsReceivable +
Income:* -
Відстрочити дохідAssets:Bank:* +
Liabilities:Unearned:* -
Визнати відстрочений дохідLiabilities:Unearned:* +
Income:* -

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

Поділитися цією статтею