Цикл бухгалтерського обліку, у стилі Beancount
Фінансові звіти не з’являються за допомогою магії. Це кінцевий продукт структурованого, повторюваного процесу, відомого як цикл бухгалтерського обліку. Хоча принципи універсальні, інструменти, якими ви користуєтесь, можуть кардинально змінити досвід. Цей посібник проведе вас через цикл бухгалтерського обліку з акцентом на Beancount, потужний інструмент бухгалтерського обліку у вигляді простого тексту.
Ми побачимо, як підхід Beancount, орієнтований на текст, усуває нудні кроки, що варто автоматизувати, і які звіти дають найчіткішу картину вашого фінансового здоров’я. 🧑💻
TL;DR: Робочий процес у Beancount
- Capture & Journal: Записуйте кожну операцію як чистий запис подвійного запису у вашому
.beancount
текстовому файлі. - Validate & Reconcile: Використовуйте твердження
balance
, щоб підтвердити, що ваш головний журнал відповідає банківським випискам, і запускайтеbean-check
для виявлення помилок. - Review: Створіть незкоригований пробний баланс для швидкої перевірки.
- Adjust: Додайте записи для нарахувань, відстрочок, амортизації та інших елементів кінця періоду.
- Re-review: Перевірте скоригований пробний баланс, щоб переконатися, що все правильно.
- Publish & Close: Створ іть звіт про прибутки та збитки, баланс та звіт про грошові потоки. Закриття книг є необов’язковим у Beancount, оскільки звіти враховують дати.
Цей процес можна візуалізувати так:
Крок 1: Захоплення та реєстрація операцій
Це базовий крок. Кожна фінансова подія — продаж, покупка, банківська комісія — має бути зафіксована. У Beancount ви робите це, створюючи транзакції у простому текстовому файлі, зазвичай названому main.beancount
або розподіленому на кілька файлів за роками.
Кожна транзакція повинна відповідати правилам подвійного запису, тобто сума всіх записів має дорівнювати нулю. Beancount забезпечує це автоматично.
2025-08-10 * "Walmart" "Purchase of office supplies"
Expenses:Office:Supplies 45.67 USD
Assets:Bank:Checking -45.67 USD
- Pro‑Tip: Використовуйте теги типу
#project-phoenix
або#client-acme
, щоб додати виміри до ваших даних. Це робить запити та звіти надзвичайно гнучкими.
Гігієна звірки ✅
Найпотужніша функція для забезпечення точності — твердження балансу. В кінці звітного періоду (наприклад, в кінці місяця) ви вказуєте, яким має бути баланс рахунку.
2025-08-31 balance Assets:Bank:Checking 12345.67 USD
Якщо сума всіх транзакцій, що впливають на Assets:Bank:Checking
до цієї дати, не дорівнює 12345.67 USD
, Beancount виведе помилку. Це просте директивне перетворює ваш журнал у самоперевірковий документ.
Для тих, хто заповнює історичні дані, директива pad
може автоматично створити балансуючу транзакцію, щоб ваші початкові залишки відповідали першому твердженню.
Крок 2: «Постинг у головну книгу» (безкоштовно !)
У традиційних системах ви спочатку записуєте записи у «журнал», а потім окремим кроком «постинг» копіюєте їх у «загальну книгу».
У Beancount ваш .beancount
файл є і журналом, і головною книгою. Коли ви пишете і зберігаєте транзакцію, вона вже поститься. Окремого кроку немає. Ця прямота — ключова перевага простого текстового обліку: те, що бачите, — це те, що отримуєте.
Крок 3: Підготовка незкоригованого пробного балансу
Перш ніж робити коригування, потрібна швидка перевірка «все підраховано?». Пробний баланс — це простий звіт, що перелічує кожен рахунок і його підсумковий залишок. Загальна сума дебетових залишків має дорівнювати загальній сумі кредитових.
Створити його можна простим запитом:
bean-query main.beancount \
"SELECT account, sum(position) GROUP BY 1 ORDER BY 1"
Або, для більш візуального підходу, відкрийте ваш журнал у Fava (веб‑інтерфейс Beancount) і перейдіть до звіту «Trial Balance». Шукайте аномалії — активний рахунок з кредитовим залишком або витратний рахунок з дивним значенням.
Крок 4: Внесення коригувальних записів
Коригувальні записи важливі для точного звітування за нарахувальним принципом. Вони гарантують, що доходи визнаються, коли вони зароблені, а витрати — коли вони понесені, незалежно від моменту грошового потоку.
Типові коригування:
- Нарахування: Визнання доходу, який ви вже заробили, але ще не виставили рахунок, або витрати, які вже понесли, але ще не сплатили.
- Відстрочки: Обробка передплат. Якщо клієнт сплатив за рік послуг наперед, ви реєструєте це як зобов’язання (
Liabilities:UnearnedRevenue
) і щомісяця визнаєте 1/12 доходу. - Негрошові статті: Амортизація активів.
- Виправлення: Корекція помилок або додавання пропущених пунктів з банківських виписок, наприклад, невеликих процентних виплат.
Приклад: Нарахування доходу
Ви завершили проєкт 31 серпня, але рахунок надішлете лише у вересні. Щоб визнати дохід у правильному періоді (серпень), створюємо коригувальний запис:
2025-08-31 * "Accrue revenue for client project #1042"
Assets:AccountsReceivable 3000.00 USD
Income:Consulting -3000.00 USD
Приклад: Амортизація
У вашій компанії є графік амортизації активів. В кінці періоду ви реєструєте витрату:
2025-12-31 * "Annual depreciation on computer equipment"
Expenses:Depreciation 4800.00 USD
Assets:Fixed:AccumulatedDepreciation -4800.00 USD