Счетоводният цикъл, в стил 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