Преминете към основното съдържание

59 публикации маркиран с/със "Beancount"

Вижте всички етикети

Шпаргалка за Beancount

· 2 минути четене
Mike Thrift
Mike Thrift
Marketing Manager

Примерно име на сметка

Assets:US:BofA:Checking

cheatsheet-bg

Типове сметки

Assets          +
Liabilities -
Income -
Expenses +
Equity -

Валути и активи

CNY, EUR, CAD, AUD
GOOG, AAPL, RBF1005
HOME_MAYST, AIRMILES
HOURS

Директиви

Общ синтаксис

YYYY-MM-DD <Directive> <Parameters...>

Откриване и закриване на сметки

2001-05-29 open Expenses:Restaurant
2001-05-29 open Assets:Checking USD,EUR ; Валутни ограничения

2015-04-23 close Assets:Checking

Деклариране на валути/активи (по избор)

1998-07-22 commodity AAPL
name: "Apple Computer Inc."

Цени

2015-04-30 price AAPL   125.15 CNY
2015-05-30 price AAPL 130.28 CNY

Бележки

2013-03-20 note Assets:Checking "Обадих се да попитам за отстъпка"

Документи

2013-03-20 document Assets:Checking "path/to/statement.pdf"

Транзакции

2015-05-30 * "Някакво описание на тази транзакция"
Liabilities:CreditCard -101.23 CNY
Expenses:Restaurant 101.23 CNY

2015-05-30 ! "Кабелна компания" "Сметка за телефон" #tag ˆlink
id: "TW378743437" ; Метаданни
Expenses:Home:Phone 87.45 CNY
Assets:Checking ; Можете да пропуснете една сума

Записвания

  ...    123.45 USD                             Обикновено
... 10 GOOG {502.12 USD} С единична себестойност
... 10 GOOG {{5021.20 USD}} С обща себестойност
... 10 GOOG {502.12 # 9.95 USD} С двете себестойности
... 1000.00 USD @ 1.10 CAD С единична цена
... 10 GOOG {502.12 USD} @ 1.10 CAD Със себестойност и цена
... 10 GOOG {502.12 USD, 2014-05-12} С дата
! ... 123.45 USD ... С флаг

Проверки на салдо и допълване

; Проверява сумата само за дадената валута:
2015-06-01 balance Liabilities:CreditCard -634.30 CNY

; Автоматично вмъкване на транзакция за изпълнение на следната проверка:
2015-06-01pad Assets:Checking Equity:Opening-Balances

Събития

2015-06-01 event "местоположение" "Ню Йорк, САЩ"
2015-06-30 event "адрес" "Ул. Мей 123"

Опции

option "title" "Моят личен леджър"

Други

pushtag #пътуване-до-перу
...
poptag #пътуване-до-перу
; Коментарите започват с точка и запетая

Магията на счетоводството с обикновен текст с Beancount

· 4 минути четене
Mike Thrift
Mike Thrift
Marketing Manager

Открийте магията на счетоводството с обикновен текст с Beancount

Beancount.io banner

Въведение

2023-04-18-introduction-to-beancount

Добре дошли в свят, където счетоводството вече не е плашеща задача. Днес ви представяме Beancount – мощен, гъвкав и интуитивен инструмент за счетоводство с обикновен текст. Beancount ви дава възможност да поемете контрол над финансите си, като предоставя прозрачен и ясен подход за управление на парите ви.

В това изчерпателно ръководство ще се потопим в основите на Beancount, ще обясним основните му концепции и ще ви преведем през неговите прости, но мощни функции. До края на този блог ще имате солидно разбиране за Beancount и ще сте готови да започнете да го използвате, за да организирате и анализирате финансовия си живот.

Какво е Beancount?

Beancount е счетоводна система с отворен код, базирана на обикновен текст, създадена от Мартин Блейс. Вдъхновен от системата Ledger на Джон Уигли, Beancount цели да предостави стабилен и надежден метод за управление на лични и малки бизнес финанси, използвайки файлове с обикновен текст. С Beancount можете лесно да проследявате своите доходи, разходи, инвестиции и много други.

Защо Beancount?

Счетоводството с обикновен текст предлага няколко предимства пред традиционните счетоводни системи, базирани на електронни таблици или софтуер:

  • Прозрачност: Файловете на Beancount са четими от хора, което улеснява разбирането и одитирането на вашите финансови данни.
  • Гъвкавост: Beancount може лесно да бъде персонализиран, за да отговаря на вашите специфични нужди, и можете да използвате любимия си текстов редактор и система за контрол на версиите, за да управлявате финансовите си данни.
  • Преносимост: Вашите финансови данни могат да бъдат достъпни на всяко устройство и е лесно да ги прехвърляте между системи или да ги споделяте с други.
  • Устойчивост на бъдещето: Файловете с обикновен текст са универсално съвместими, което гарантира, че вашите финансови данни ще останат достъпни, дори когато технологиите се развиват.

Основни концепции на Beancount

За да използвате Beancount ефективно, е от решаващо значение да разберете основните му концепции:

  • Транзакции: Финансови събития, като доходи, разходи или преводи между сметки, се записват като транзакции.
  • Сметки: Транзакциите включват една или повече сметки, като активи, пасиви, доходи или разходи.
  • Двустранно счетоводство: Beancount прилага двустранно счетоводство, гарантирайки, че всяка транзакция има балансирани дебити и кредити.
  • Директиви: Beancount използва набор от директиви за дефиниране на транзакции, откриване на сметки и други финансови събития.

Започване с Beancount

За да започнете да използвате Beancount, следвайте тези прости стъпки:

  • Инсталирайте Beancount: Инсталирайте Beancount на вашата система, като използвате предоставените инструкции за инсталация за вашата операционна система.
  • Създайте своя Beancount файл: Създайте нов текстов файл с разширение .beancount (напр. my_finances.beancount).
  • Дефинирайте вашите сметки: Използвайте директивата "open", за да дефинирате сметките, които ще използвате във вашите транзакции.
  • Записвайте транзакции: Използвайте директивата "txn", за да записвате вашите финансови транзакции.

Или просто се регистрирайте на https://beancount.io. Ето няколко примера за счетоводство с обикновен текст -

Пример 1: Основна транзакция

2023-04-01 open Assets:Checking
2023-04-01 open Expenses:Groceries

2023-04-10 txn "Grocery Store" "Buying groceries"
Assets:Checking -50.00 USD
Expenses:Groceries 50.00 USD

В този пример отваряме две сметки, Assets:Checking и Expenses:Groceries. На 10 април 2023 г. записваме транзакция за закупуване на хранителни стоки на стойност $50. Транзакцията намалява баланса на Assets:Checking с $50 (дебит) и увеличава баланса на Expenses:Groceries с $50 (кредит).

Пример 2: Транзакция за доход и разход

2023-04-01 open Assets:Checking
2023-04-01 open Income:Salary
2023-04-01 open Expenses:Rent

2023-04-05 txn "Employer" "Salary payment"
Assets:Checking 2000.00 USD
Income:Salary -2000.00 USD

2023-04-06 txn "Landlord" "Monthly rent payment"
Assets:Checking -1000.00 USD
Expenses:Rent 1000.00 USD

В този пример отваряме три сметки: Assets:Checking, Income:Salary и Expenses:Rent. На 5 април 2023 г. записваме транзакция за изплащане на заплата от $2000. Транзакцията увеличава баланса на Assets:Checking с $2000 (кредит) и намалява баланса на Income:Salary с $2000 (дебит). На 6 април 2023 г. записваме транзакция за плащане на наем от $1000. Транзакцията намалява баланса на Assets:Checking с $1000 (дебит) и увеличава баланса на Expenses:Rent с $1000 (кредит).

Пример 3: Превод между сметки

2023-04-01 open Assets:Checking
2023-04-01 open Assets:Savings

2023-04-15 txn "Bank" "Transfer from Checking to Savings"
Assets:Checking -500.00 USD
Assets:Savings 500.00 USD

В този пример отваряме две сметки: Assets:Checking и Assets:Savings. На 15 април 2023 г. записваме транзакция за прехвърляне на $500 от разплащателната сметка към спестовната сметка

Подобряване на вашето Beancount изживяване с персонализирани връзки и заявки

· 3 минути четене
Mike Thrift
Mike Thrift
Marketing Manager

Beancount, системата за двустранно счетоводство, обичана както от разработчици, така и от финансови ентусиасти, е мощна в своята простота. Но за тези, които искат повече контрол и по-бърза навигация в Fava, уеб интерфейса на Beancount, персонализираните връзки в страничната лента и SQL заявките могат да издигнат работния ви процес на следващо ниво.

В това ръководство ще ви покажем как да:

  • Добавяте връзки за бърз достъп към страничната лента на Fava
  • Използвате SQL заявки за разширено филтриране и анализ
  • Персонализирате работния си процес за месечни прегледи или откриване на аномалии

Защо да персонализирате Fava?

Fava вече е красив интерфейс за преглед на вашия Beancount счетоводен регистър, но с нарастването на вашия журнал нараства и нуждата от по-добри преки пътища и по-интелигентни заявки.

Проблеми, които това решава:

  • Многократно навигиране през времеви диапазони
  • Филтриране на транзакции в рамките на вложени сметки
  • По-бързо откриване на отрицателни салда или аномалии

✨ Персонализирани връзки в страничната лента

Нека започнем с подобряване на ежедневния ви работен процес с прости преки пътища в страничната лента. Тези връзки се появяват в лявата странична лента на Fava и могат да ви отведат директно до филтрирани изгледи като транзакциите за този месец или доходите от миналия месец.

Добавете тези редове към вашия Beancount файл:

2021-01-01 custom "fava-sidebar-link" "Current Month" "/jump?time=month"
2021-01-01 custom "fava-sidebar-link" "Last Month" "/jump?time=month-1"
2021-01-01 custom "fava-sidebar-link" "Clear All" "/jump?account=&time=&filter="

Какво правят:

  • Текущ месец: Отваря изгледа на транзакциите, филтриран по текущия месец.
  • Минал месец: Незабавно прескача към предходния месец – чудесно за прегледи в края на месеца.
  • Изчистване на всички: Нулира филтрите, показвайки отново всички записи.

Тези преки пътища елиминират ръчното въвеждане на време и правят вашето Fava изживяване по-плавно и персонализирано.

🔍 Персонализирани SQL заявки

За по-задълбочен анализ, SQL интерфейсът на Fava е изключително мощен. Ето една заявка, която намира всички отрицателни салда в сметки, които съответстват на определен шаблон – идеална за отбелязване на необичайни или проблемни транзакции.

SELECT account, units(sum(position)), sum(position)
WHERE number(units(position)) < 0
AND account ~ '.*:BCM:.*'
AND date >= DATE(2021,12,9)
AND date < DATE(2022,1,9)

Разбор:

  • account ~ '.*:BCM:.*': Филтрира сметки, съдържащи :BCM: в името си.
  • number(units(position)) < 0: Отбелязва отрицателни салда (напр. преразход на бюджети).
  • Филтрите за дата стесняват резултата до конкретен едномесечен прозорец.

Случаи на употреба:

  • Откриване на грешки като дублиращи се разходи или неправилни осчетоводявания
  • Одит на конкретен доставчик или категория
  • Бързо извличане на приложими прозрения за бюджетиране

🛠 Професионален съвет: Комбинирайте връзки + заявки

Въпреки че Fava не позволява директни връзки към персонализирани заявки, можете да създадете навик за месечен преглед, като:

  • Използвате връзката „Текущ месец“, за да започнете прегледа си
  • Отворите раздела си със запазени заявки в друг прозорец
  • Преглеждате и двете едновременно – първо филтрирайте, след това задълбочете

Тази комбинация ви помага да уловите аномалиите, преди да ескалират, и да гарантирате, че вашият счетоводен регистър остава чист.

Заключителни мисли

Beancount е минималистичен по дизайн, но малки подобрения като тези носят огромни ползи за ефективността. Независимо дали преглеждате бюджета си, отстранявате грешки в странни салда или просто спестявате кликове, персонализираните връзки и SQL заявките ви дават повече мощност и по-малко затруднения.

Бонус: Ако използвате персонализираните отчети на Fava, можете дори да изградите пълни табла за управление, съобразени с вашите лични финансови ритуали.

Готови ли сте да поемете контрол?

Започнете от малко: добавете връзката „Текущ месец“. След това изградете свои собствени заявки. Вашето бъдещо аз ще ви благодари.

Искате още съвети като този? Абонирайте се за нашия бюлетин или разгледайте още Beancount рецепти на Beancount.io.

Прогнозиране на бъдещи трансакции в Beancount

· Една минута четене
Mike Thrift
Mike Thrift
Marketing Manager

Има плъгин за Beancount за прогнозиране на бъдещи повтарящи се трансакции. Как да го приложите в beancount.io? Поставете следното съдържание във вашия ledger файл.

; import the plugin
plugin "fava.plugins.forecast"

; add a monthly HOA fee
2022-05-30 # "HOA fee [MONTHLY]"
Expenses:Hoa 1024.00 USD
Assets:Checking -1024.00 USD

Екранна снимка на плъгина за прогнозиране

2022-05-30-forecast-plugin

И тогава ще видите прогнозата в отчета за нетна печалба.

Плъгин за прогнозиране

Тагът [MONTHLY] по-горе означава, че трансакцията ще се повтаря завинаги. Ако имате повече условия за прилагане, опитайте [MONTHLY UNTIL 2022-06-01], [MONTHLY REPEAT 5 TIMES], [YEARLY REPEAT 5 TIMES] или [WEEKLY SKIP 1 TIME REPEAT 5 TIMES].

Изготвяне и проследяване на фактури с Beancount

· 6 минути четене
Mike Thrift
Mike Thrift
Marketing Manager

Шаблон в обикновен текст, повтаряем работен процес и едно единствено запитване за „Кой още ми дължи пари?“


2022-02-12-crafting-tracking-invoices-with-beancount

Фактурирането може да се усеща като досадна задача, заседнала между свършената работа и очакваното плащане. Но един добър процес на фактуриране е гръбнакът на здравословния паричен поток. Той изпълнява двойна функция: ясно казва на вашите клиенти какво дължат и кога, и захранва вашата счетоводна система с неоспоримите факти, от които се нуждае.

Докато специализираните SaaS приложения могат да изпращат елегантни, автоматизирани PDF файлове, те често идват с месечни такси и заключват вашите данни в собствено хранилище. Един лек, обикновено текстов подход, използващ Beancount, предлага мощна алтернатива. Можете да превърнете всяка фактура в ясен набор от счетоводни записи, като ви дава всички предимства на контрола на версиите, мощните метаданни и незабавното запитване - без да е необходим абонамент.


Минимално жизнеспособната фактура (полета, които никога не трябва да пропускате)

Преди да докоснете счетоводната си книга, ви е необходима професионална фактура. Форматът може да е прост, но съдържанието трябва да е точно. Тези полета, заимствани от изпитана практика за малкия бизнес, са неподлежащи на договаряне.

  • Данни за продавача: Име на фирмата и физически адрес.
  • Данни за клиента: Име на клиента и (в идеалния случай) неговия адрес.
  • Номер на фактурата: Уникален, последователен идентификатор, който никога не се използва повторно. INV-045 следва INV-044.
  • Дата на издаване и падеж: Ясно посочете кога е издадена фактурата и кога се очаква плащане.
  • Редове с артикули: Ясно описание на услугите или продуктите, заедно с количество, цена и обща сума за реда.
  • Междинна сума, данък и обща сума: Покажете изчисленията, за да може клиентът лесно да ги проследи.
  • Допълнителни бележки: Място за благодарност, инструкции за банков превод или номер на поръчка, предоставен от клиента.

За да започнете, създадохме набор от готови за редактиране шаблони, които включват всички тези полета. Версиите на електронните таблици дори предварително изчисляват общите суми за вас.

Вземете нашите шаблони тук: beancount.io/invoice‑templates (Налични във формати Google Docs, Word, Sheets, Excel и PDF)


Записване на фактурата във вашата счетоводна книга

След като изпратите PDF файла на фактурата на вашия клиент, трябва да го запишете в Beancount. Това е ключова стъпка, която отчита приходите, когато са спечелени, а не само когато са платени. Процесът включва две отделни транзакции.

1. Когато издавате фактурата:

Създавате транзакция, която премества общата сума от вашата сметка Income в Assets:AccountsReceivable. Това създава цифрово задължение във вашите книги.

; 2025‑07‑21 Фактура #045  Уеб дизайн спринт за Acme Corp.
2025-07-21 * "Acme Corp" "INV-045 Уеб дизайн спринт"
Assets:AccountsReceivable 3500.00 USD ; due:2025-08-04
Income:Design:Web
invoice_id: "INV-045"
contact_email: "ap@acme.example"
link: "docs/invoices/2025-07-21_Acme_INV-045.pdf"

Тук дебитиране AccountsReceivable и кредитирате вашата сметка Income. Обърнете внимание на богатите метаданни: датата на падеж, уникален invoice_id и дори директна link: към PDF файла, който сте изпратили.

2. Когато клиентът плати:

Когато парите постъпят във вашата банкова сметка, записвате втора транзакция, за да "затворите" задължението. Това премества салдото от AccountsReceivable към вашата разплащателна сметка.

2025-08-01 * "Acme Corp" "Плащане INV-045"
Assets:Bank:Checking 3500.00 USD
Assets:AccountsReceivable
invoice_id: "INV-045"

Салдото за INV-045 в Assets:AccountsReceivable вече е нула и вашите книги са перфектно балансирани.

Прикачете PDF файла: Метаданните link: са особено мощни, когато се използват с Fava, уеб интерфейса на Beancount. Fava ще изобрази кликаема връзка директно в изгледа на транзакцията, така че изходният документ никога не е на повече от едно щракване разстояние. Този работен процес е предвиден още през 2016 г. в заявка за функция (GitHub).


Едно запитване за списък на всички отворени фактури

И така, кой още ви дължи пари? С тази система не е нужно да търсите в имейли или електронни таблици. Нуждаете се само от едно просто запитване.

Запазете следното като файл с име open-invoices.sql:

SELECT
meta('invoice_id') AS id,
payee,
narration,
date,
number(balance) AS outstanding
WHERE
account = "Assets:AccountsReceivable"
AND balance != 0
ORDER BY
date;

Сега го стартирайте от командния си ред:

bean-query books.beancount open-invoices.sql

За секунди ще получите чист, актуален отчет за всички неплатени фактури, показващ идентификационния номер на фактурата, клиента, датата на издаване и дължимата сума. Не е необходим допълнителен софтуер.


Автоматизирайте досадната работа

Красотата на обикновения текст е скриптируемостта. Можете да автоматизирате досадните части на този работен процес.

  • Шаблон + Pandoc = PDF: Поддържайте шаблона си за фактура в Markdown. Малък Python скрипт може да попълни променливите (име на клиент, редове с артикули, номер на фактура), а инструментът за команден ред Pandoc може незабавно да го преобразува в професионален PDF.
  • Git Pre-commit Hook: Ако съхранявате счетоводната си книга в Git, прост pre-commit hook може да изпълнява проверки, преди да запишете работата си. Той може да провери дали всеки нов invoice_id е уникален, дали транзакционните публикации са балансирани до нула и дали файлът, посочен в метаданните link:, действително съществува.
  • Cron Job: Настройте планирана задача (cron job), за да изпълнява вашето запитване open-invoices.sql всяка вечер и да ви изпраща имейл с обобщението. Ще започвате всеки ден, знаейки точно кой се нуждае от приятелско напомняне.

Реалистично предупреждение

Beancount е счетоводен инструмент, а не услуга за фактуриране. Той няма да изпраща автоматично напомняния за плащане на вашите клиенти или да обработва плащанията им с кредитна карта. Работният процес е: вие създавате и изпращате фактурата, използвайки избрания от вас метод (като шаблоните по-горе), и след това записвате счетоводните записи във вашата счетоводна книга.

За повечето фрийлансъри и малки фирми тази ръчна стъпка е малка цена за непробиваема, проверяема и безплатна счетоводна система, която напълно притежавате и контролирате (beancount.io).


Следващи стъпки

Готови ли сте да поемете контрол над фактурирането си? Ето как да започнете.

  1. Изтеглете шаблон и го използвайте, за да създадете следващата си реална фактура, като се уверите, че използвате последователен номер на фактура.
  2. Съхранявайте изпратените PDF файлове в специална папка като docs/invoices/ и използвайте ключа за метаданни link: във вашата Beancount транзакция, за да ги реферирате.
  3. Запазете запитването open-invoices.sql и го направете част от седмичния си финансов преглед.

Обикновено текстовото счетоводство не означава отказ от прецизност или контрол - просто означава, че базата данни може да бъде grep-ната. С прост шаблон и фрагментите по-горе, ще получавате плащания по-бързо и ще поддържате книгите си безупречни.

Коригиращи записвания в Beancount: Вашият месечен преглед

· 5 минути четене
Mike Thrift
Mike Thrift
Marketing Manager

Счетоводството не е приключило, когато последната продажба е отразена в банката. За да получите истинска картина за здравето на вашия бизнес, трябва да извършите месечен преглед. При всяко приключване на периода ще правите коригиращи записвания – корекции в дневника, които правилно разпределят приходите и разходите в правилния времеви прозорец и поддържат баланса ви коректен.

В текстова счетоводна книга на Beancount, тези важни записвания са прозрачни, с контрол на версиите и лесни за одит, превръщайки една досадна задача в ясен и повтаряем процес.

2022-01-25-коригиращи-записвания-в-beancount-вашият-месечен-преглед


Защо коригиращите записвания са важни

Извършването на тези корекции е фундаментално за доброто счетоводство. Те гарантират, че вашите финансови отчети са точни и надеждни.

  • Точност на начисляването: Коригиращите записвания са двигателят на начисляването. Те преместват приходите и разходите в периода, в който действително са спечелени или направени, независимо от това кога са разменени парични средства. Това удовлетворява основните принципи на признаване на приходите и съответствието, които формират основата на съвременното счетоводство (AccountingCoach.com).

  • Надеждни KPI: Ключовите показатели за ефективност са толкова добри, колкото са данните, които стоят зад тях. Показатели като брутен марж, нетна печалба и прогнози за паричния поток показват истината само след като отсрочванията, начисленията и оценките са правилно осчетоводени (Corporate Finance Institute).

  • Чиста одитна следа: Изричните месечни корекции създават ясен запис на вашите финансови разсъждения. Това помага на одиторите (и на вас в бъдеще) лесно да проследят какво се е променило и защо, изграждайки доверие във вашите числа (Accountingverse).


Шест често срещани категории (с Beancount фрагменти)

Ето шестте най-често срещани типа коригиращи записвания, с примери как да ги запишете във вашата Beancount счетоводна книга. Обърнете внимание на използването на метаданни като adj:"accrual" , за да улесните намирането и анализа на тези записвания по-късно.

1. Начислен приход

Това е за приходи, които сте спечелили, но все още не сте фактурирали или получили плащане за тях.

2025-07-31 * "Консултации—юлски часове"
Assets:AccountsReceivable 12000.00 USD
Income:Consulting
; adj:"accrual" period:"Jul-25"

2. Начислен разход

Разход, който сте направили, но все още не сте платили, като сметка за комунални услуги, която ще пристигне следващия месец.

2025-07-31 * "Адвокат—юлски хонорар"
Expenses:Legal 2500.00 USD
Liabilities:AccruedPayables
; adj:"accrual"

3. Отсрочен (неспечелен) приход

Това се прилага, когато клиент ви плаща предварително. Вие признавате част от този приход, докато го печелите с течение на времето.

2025-07-31 * "Годишно SaaS предплащане (признаване 1/12)"
Liabilities:UnearnedRevenue 833.33 USD
Income:SaaS
; adj:"deferral"

4. Предплатен (отсрочен) разход

Когато плащате за разход предварително (като годишна застрахователна полица), вие осчетоводявате част от него всеки месец.

2025-07-31 * "Застраховка—1 мес. разход от предплатено"
Expenses:Insurance 400.00 USD
Assets:PrepaidInsurance
; adj:"deferral"

5. Амортизация

Това записване разпределя цената на дълготраен актив (като компютър или превозно средство) през полезния му живот.

2025-07-31 * "Амортизация на Mac Studio"
Expenses:Depreciation 1250.00 USD
Assets:Computers:AccumDepr
; asset_id:"MAC-03" adj:"estimate"

6. Резерв за съмнителни вземания

Оценка на вземанията, които не очаквате да съберете, която се записва като разход за лоши дългове.

2025-07-31 * "Провизия за лоши дългове (2% от вземанията)"
Expenses:BadDebt 700.00 USD
Assets:AllowanceForBadDebt
; basis:"A/R" rate:0.02 adj:"estimate"

Повтаряем работен процес

За да поддържате месечното си приключване ефективно и без грешки, приемете последователен работен процес.

  • Използвайте отделен файл. Съхранявайте всички корекции за даден период на едно място, като adjustments-2025-07.bean. В основния си файл на счетоводната книга използвайте директива include, за да го импортирате последен. Това гарантира, че корекциите се прилагат точно преди да генерирате окончателните отчети.

  • Стандартизирайте вашите метаданни. Винаги използвайте последователни ключове и стойности на метаданните, като adj:"accrual|deferral|estimate" и period:"Jul-25". Това прави търсенето и преглеждането на специфични типове корекции лесно.

  • Изпълнете предварителна проверка. Преди да извършите промените си в Git, изпълнете bean-check върху файла с корекции, за да откриете евентуални печатни грешки или небалансирани осчетоводявания.

  • Изпълнете едноредова проверка за разумност. Това запитване потвърждава, че всички ваши корекции за периода се балансират, давайки ви увереност, че не сте въвели грешки.

    bean-query main.bean "SELECT account, SUM(number) WHERE meta('adj') AND meta('period') = 'Jul-25' GROUP BY account"

Бързи съвети за отстраняване на проблеми 🤔

  • Балансът на вашите Liabilities:UnearnedRevenue се покачва ли? Прегледайте етапите на договора си. Може би признавате приходите твърде бавно в сравнение с работата, която доставяте.

  • Балансът на вашите Assets:PrepaidInsurance е отрицателен ли? Вероятно го осчетоводявате по-бързо, отколкото позволява графикът на актива. Проверете отново графика си за амортизация.

  • Дните продажби в очакване (DSO) се влошават ли след начисленията? Вашите натрупани приходи може да маскират основни проблеми със събирането. Свържете този KPI с отчет за стареене на вземанията, за да забележите клиенти, които плащат със закъснение, преди това да се превърне в проблем с паричния поток.


Заключителни мисли

Коригиращите записвания могат да изглеждат досадни, но тяхната стойност става кристално ясна, когато сравните вашите отчети за приходите "преди" и "след" – разликата често е съществена. С Beancount тези корекции стават малки, търсими части, които можете да автоматизирате и преглеждате точно като код.

Изградете навика за месечно приключване и вашите числа ще останат толкова точни, колкото и вашият инженеринг.

Приятно балансиране!

Революционизиране на управлението на личните финанси с Beancount.io

· 4 минути четене
Mike Thrift
Mike Thrift
Marketing Manager

Традиционно, потребителите на Beancount използват инструменти от командния ред или хостват сървъри в частни мрежи, където трябва да работят чрез компютър или текстов редактор с общо предназначение на мобилни устройства. Beancount.io намалява неудобствата, като предлага мобилни приложения с отворен код за Android и iOS и защитен облак, така че вашата счетоводна книга вече е на няколко докосвания разстояние от вашия пръстов отпечатък.

Beancount е компютърен език, който позволява двустранно счетоводство в текстови файлове. След като дефинирате финансови транзакции във файла, той ще генерира различни отчети. Мартин Блейс, създателят на този език, твърди, че счетоводството от командния ред има много предимства – то е бързо, преносимо, отворено и персонализирано.

Ние напълно подкрепяме този аргумент и споделяме усещането за възможности, които езикът Beancount предоставя. Искахме да направим повече – да представим технологията на повече хора. Това означава, че трябва да подобрим използваемостта и да я направим по-достъпна за по-широка аудитория.

2022-01-08-незабавен-достъп-до-вашата-beancount-облачна-счетоводна-книга-по-всяко-време-навсякъде

Не всеки е ентусиаст на командния ред и затова създадохме Beancount.io – мениджърът за лични финанси за всеки. Ето как работи:

За по-сериозна работа, потребителите на Beancount все още могат да използват компютрите си, за да редактират или преглеждат счетоводната книга чрез браузърите си, посещавайки https://beancount.io или синхронизирайки с Dropbox. Това запазва гъвкавостта на инструментите от командния ред, без да губи достъпа между устройствата, предлаган от облачното решение.

За ежедневни леки операции, като незабавно добавяне на запис, потребителите на Beancount могат да използват мобилното приложение, за да се свържат със защитения облак.

Майк Трифт, инженер по бекенд, работещ по този продукт, казва:

Преди си настройвах напомняне всеки ден да отварям лаптопа си и да въвеждам записи в моите Beancount файлове. Сега, с Beancount.io, ми е много по-лесно да променям счетоводната си книга, когато имам нужда, дори когато съм навън и купувам нещо от магазина.

Джи Ли, софтуерен инженер от Facebook, ни казва:

Мигрирах всичките си Beancount файлове към Beancount.io и сега работи перфектно за ежедневната ми употреба. Платих за Pro функции като автоматично архивиране на данни, но смятам, че има още неща, които можете да направите, за да подобрите услугата.

Можете да се регистрирате сега на https://beancount.io/sign-up/ или да изтеглите iOS или Android приложението. Оптимизирахме регистрацията, за да съберем възможно най-малко информация от вас, за да стартираме услугата. След това ще получите предварително зададена празна счетоводна книга, която е готова веднага да добавите запис.

Често задавани въпроси

Ще продаде ли Beancount.io данните от моята счетоводна книга на трета страна?

  • Не. Ние се ангажираме да пазим вашите данни защитени и лични и никога няма да продаваме данните от вашата счетоводна книга.

Защитени ли са моите данни?

  • Да. Ние защитаваме вашия имейл и счетоводна книга с AES256, вашата парола с BCrypt и вашите мрежови заявки със SSL.

Данните от моята счетоводна книга криптирани ли са от край до край?

  • Не. Поради технически ограничения, все още трябва да декриптираме вашите данни в паметта при индексиране на файла на счетоводната книга на производствените сървъри. Затова ограничаваме директния достъп от който и да е от членовете на нашия екип. За съжаление, не можем да направим това в Intel SGX или друг защитен трезор поради високите разходи.

Това надеждна услуга ли е, на която мога да се доверя през следващите няколко години?

  • Да. Първоначално стартирахме Beancount.io на 4 юли 2019 г. и вече повече от две години оперираме услугата сигурно и надеждно. Следователно, нямаме причина да не продължим услугата и в бъдеще.

Мога ли да поискам нови функции и да спонсорирам проекта?

  • Да. Моля, не се колебайте да се свържете с нас на https://t.me/beancount за всякакви отзиви и ни подкрепете, като станете Pro потребител на https://beancount.io/pricing.

Ръководство за миграция от QuickBooks към Beancount

· 32 минути четене
Mike Thrift
Mike Thrift
Marketing Manager

Етап 1: Експортиране на данни от QuickBooks

Мигрирането на данни за пет години започва с извличането на всички записи от QuickBooks в използваем формат. QuickBooks Desktop и QuickBooks Online имат различни опции за експорт:

2021-12-01-from-quickbooks-to-plain-text-a-migration-playbook

1.1 QuickBooks Desktop – Опции за експорт

IIF (Intuit Interchange Format): QuickBooks Desktop може да експортира списъци (като сметкоплан, клиенти, доставчици) в текстови файлове .IIF. В QuickBooks Desktop отидете на Файл → Помощни програми → Експорт → Списъци в IIF (File → Utilities → Export → Lists to IIF), след което изберете списъците, от които се нуждаете (напр. Сметкоплан, Клиенти, Доставчици). Това създава текстов файл, който включва имена на сметки, типове и данни от списъците. IIF е патентован, но текстов формат, който е сравнително лесен за анализиране. Използвайте го, за да заснемете своя Сметкоплан и списъци с контакти за справка в Beancount.

Главна книга/Оборотна ведомост чрез CSV: За транзакционни данни QuickBooks Desktop не предоставя експорт с едно кликване, но можете да използвате отчети. Препоръчителният метод е да експортирате Главния журнал (General Journal) (всички транзакции) за желания период. В QuickBooks Desktop отворете Отчети → Счетоводител и данъци → Журнал (Reports → Accountant & Taxes → Journal), задайте датите от най-ранната транзакция до днес и кликнете върху Експорт → Excel. Запазете резултата като CSV, след като премахнете заглавките/долните колонтитули на отчета и празните колони. Уверете се, че числовите данни са чисти: включете стотинки (напр. 3.00, а не 3), без излишни кавички и без символи за валута или двойни минуси в CSV файла. CSV файлът трябва да има колони като Дата, № на транзакция, Име, Сметка, Бележка, Дебит, Кредит, Салдо (или една колона за сума в зависимост от формата на отчета).

Съвет: QuickBooks Desktop 2015+ може също да експортира транзакции чрез диалоговия прозорец Намиране (Find). Използвайте Редактиране → Намиране → Разширено (Edit → Find → Advanced), задайте периода от пет години, след което експортирайте резултатите в CSV. Внимание: Някои версии ограничават експорта до 32 768 реда. Ако имате много големи данни, експортирайте година по година (или по-малки части), за да избегнете орязване, след което ги комбинирайте. Уверете се, че периодите не се застъпват, за да предотвратите дубликати.

Други формати (QBO/QFX/QIF): QuickBooks Desktop може да импортира банкови транзакции чрез файлове .QBO (Web Connect) или .QFX/.OFX, но те не са типични за експортиране от QuickBooks. Ако целта ви е да извлечете само банкови транзакции, може би вече ги имате в QBO/OFX от вашата банка. Въпреки това, за пълен експорт на главната книга, придържайте се към IIF и CSV. QuickBooks Desktop не може директно да експортира в QIF (Quicken Interchange Format) без инструменти от трети страни. Ако намерите начин да получите QIF, имайте предвид, че някои стари инструменти за счетоводство (по-стари версии на Ledger 2.x) могат да четат QIF, но е по-добре да работите с CSV в нашия процес.


1.2 QuickBooks Online – Опции за експорт

Вграден експорт в Excel/CSV: QuickBooks Online (QBO) предоставя инструмент за Експорт на данни (Export Data). Отидете на Настройки ⚙ → Инструменти → Експорт на данни (Settings ⚙ → Tools → Export Data). В диалоговия прозорец за експорт използвайте раздела Отчети (Reports), за да изберете данни (напр. Главна книга или Списък на транзакциите) и раздела Списъци (Lists) за списъци (сметкоплан и др.), изберете Всички дати (All dates) и експортирайте в Excel. QuickBooks Online ще изтегли ZIP архив, съдържащ множество Excel файлове за избраните отчети и списъци (например, Отчет за приходите и разходите, Баланс, Главна книга, Клиенти, Доставчици, Сметкоплан и др.). След това можете да конвертирате тези Excel файлове в CSV за обработка.

Отчет с детайли на транзакциите: Ако експортът по подразбиране на QBO не включва един файл с Главна книга, можете ръчно да генерирате подробен отчет:

  1. Отидете на Отчети (Reports) и намерете Детайли на транзакциите по сметка (Transaction Detail by Account) (или Главна книга (General Ledger) в някои версии на QBO).
  2. Задайте Период на отчета (Report period) за целия петгодишен период.
  3. Под опциите на отчета задайте Групиране по = Няма (Group by = None) (за да се изброят отделните транзакции без междинни суми).
  4. Персонализирайте колоните, за да включват поне: Дата, Тип на транзакцията, Номер, Име (Получател/Клиент), Бележка/Описание, Сметка, Дебит, Кредит (или една колона Сума) и Салдо. Включете клас или местоположение, ако се използват.
  5. Генерирайте отчета и след това Експортирайте в Excel.

Това дава подробна книга на всички транзакции. Запазете я като CSV. Всеки ред ще представлява едно записване (осчетоводяване) на транзакция. По-късно ще трябва да групирате редовете по транзакции за конвертиране.

Сметкоплан и други списъци: QuickBooks Online може да експортира сметкоплана чрез Счетоводство → Сметкоплан → Групови действия → Експорт в Excel (Accounting → Chart of Accounts → Batch Actions → Export to Excel). Направете това, за да получите имената и типовете на сметките. По същия начин експортирайте Клиенти, Доставчици и др., ако искате да прехвърлите имената за метаданни.

QuickBooks Online API (По избор): За програмен подход, Intuit предоставя REST API за данни от QBO. Напредналите потребители могат да създадат приложение за QuickBooks Online (изисква се акаунт на разработчик) и да използват API за извличане на данни в JSON. Например, можете да заявите крайната точка Account за сметкоплана и крайната точка за отчет JournalEntry или GeneralLedger за транзакциите. Има Python SDK-та като python-quickbooks, които обвиват API-то. Въпреки това, използването на API включва OAuth удостоверяване и е прекалено сложно за еднократна миграция, освен ако не предпочитате автоматизация. В повечето случаи ръчният експорт в CSV/Excel е по-прост и по-малко податлив на грешки.

Етап 2: Трансформиране и почистване на данни

След като имате данните от QuickBooks в CSV (и/или IIF), следващата стъпка е да ги конвертирате в текстовия формат на счетоводната книга на Beancount. Това включва анализиране на експортите, съпоставяне на сметките от QuickBooks със сметкоплана на Beancount и форматиране на транзакциите в синтаксиса на Beancount.

2.1 Анализиране на експорти от QuickBooks с Python

Използването на Python ще гарантира точност и възпроизводимост на трансформацията. Ще очертаем скриптове за две ключови задачи: импортиране на сметкоплана и конвертиране на транзакции.

Импортиране и съпоставяне на сметки: От решаващо значение е да настроите сметките си в Beancount, преди да добавите транзакции. Сметките в QuickBooks имат типове (Банка, Вземания, Разходи и др.), които ще съпоставим с йерархията на Beancount (Активи, Пасиви, Приходи, Разходи и др.). Например, можем да използваме съпоставка като:

# Съпоставяне на типа сметка в QuickBooks с основната категория в Beancount
AccountTypeMap = {
'BANK': 'Assets',
'CCARD': 'Liabilities',
'AR': 'Assets', # Вземания като актив
'AP': 'Liabilities', # Задължения като пасив
'FIXASSET': 'Assets',
'OASSET': 'Assets', # Други активи
'OCASSET': 'Assets', # Други текущи активи
'LTLIAB': 'Liabilities', # Дългосрочни задължения
'OCLIAB': 'Liabilities', # Други текущи задължения
'EQUITY': 'Equity',
'INC': 'Income',
'EXP': 'Expenses',
'EXINC': 'Income', # Други приходи
'EXEXP': 'Expenses', # Други разходи
}

Използвайки експорта на IIF от QuickBooks Desktop или CSV файла със списъка на сметките от QBO, извличаме името и типа на всяка сметка. След това:

  • Създайте имена на сметки в Beancount: QuickBooks понякога използва двоеточие (:) в имената на сметките, за да обозначи подсметки (напр. „Current Assets:Checking). Beancount използва същата нотация с двоеточие за йерархия. Често можете да използвате името директно. Ако имената на сметките в QuickBooks не започват с категория, добавете съпоставената категория отпред. Например, сметка в QuickBooks от тип BANK, наречена "Checking", ще стане Assets:Checking в Beancount. Сметка EXP (разход), наречена "Meals", става Expenses:Meals и т.н.

  • Осигурете валидни имена: Премахнете или заменете всякакви символи, които могат да объркат Beancount. QuickBooks позволява символи като & или / в имената. Разумно е да премахнете или замените специалните символи (напр. заменете & с and, премахнете наклонени черти или интервали). Също така се уверете, че всички имена на сметки са уникални след трансформацията – QuickBooks може да е позволил едно и също име на подсметка под различни родителски сметки, което е добре, но в Beancount пълното име (с родителите) трябва да е уникално. Ако е необходимо, преименувайте или добавете квалификатор, за да ги разграничите.

  • Генериране на откривания на сметки: В Beancount всяка използвана сметка трябва да бъде открита с директива open. Можете да изберете дата преди първата ви транзакция (напр. ако мигрирате данни за 2019–2023 г., използвайте 2018-12-31 или дори по-ранна дата за всички откривания). Скриптът ще запише редове като: 2018-12-31 open Assets:Checking USD 2018-12-31 open Expenses:Meals USD за всяка сметка (ако приемем, че USD е основната валута). Използвайте подходящата валута за всяка сметка (вижте бележките за многовалутност по-долу).

Конвертиране на транзакции: Основното предизвикателство е конвертирането на експорта на транзакции от QuickBooks (CSV) в записи на Beancount. Всяка транзакция в QuickBooks (фактура, сметка, чек, счетоводна статия и др.) може да има множество записвания (редове), които трябва да бъдат събрани в една транзакция на Beancount.

Ще използваме CSV четеца на Python, за да обходим експортираните редове и да натрупаме записванията:

import csv
from collections import defaultdict

# Прочитане на всички редове от CSV файла с журнал от QuickBooks
rows = []
with open('quickbooks_exported_journal.csv', 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
for line in reader:
rows.append(line)

# Групиране на редовете по транзакция (ако приемем, че 'Trans #' идентифицира транзакциите)
transactions = defaultdict(list)
for line in rows:
trans_id = line.get('Trans #') or line.get('Transaction ID') or line.get('Num')
transactions[trans_id].append(line)

Сега transactions е речник, където всеки ключ е ID/номер на транзакция, а стойността е списъкът със записвания за тази транзакция. След това конвертираме всяка група в Beancount:

def format_date(qb_date):
# Датите в QuickBooks може да са като "12/31/2019"
m, d, y = qb_date.split('/')
return f"{y}-{int(m):02d}-{int(d):02d}"

output_lines = []
for trans_id, splits in transactions.items():
# Сортиране на записванията по ред, ако е необходимо (обикновено излизат подредени)
splits = sorted(splits, key=lambda x: x.get('Line') or 0)
first = splits[0]
date = format_date(first['Date'])
payee = first.get('Name', "").strip()
memo = first.get('Memo', "").strip()
# Заглавие на транзакцията
output_lines.append(f"{date} * \"{payee}\" \"{memo}\"")
if first.get('Num'): # включване на референтен номер, ако има
output_lines.append(f" number: \"{first['Num']}\"")
# Обхождане на всяко записване/осчетоводяване
for split in splits:
acct_name = split['Account'].strip()
# Съпоставяне на името на сметката в QuickBooks с тази в Beancount (използвайки по-ранното съпоставяне)
beancount_acct = account_map.get(acct_name, acct_name)
# Определяне на сумата със знак:
amount = split.get('Amount') or ""
debit = split.get('Debit') or ""
credit = split.get('Credit') or ""
if amount:
# Някои експорти имат една колона "Amount" (отрицателна за кредити)
amt_str = amount
else:
# Ако има отделни колони Debit/Credit
amt_str = debit if debit else f"-{credit}"
# Премахване на запетаи в числата за сигурност
amt_str = amt_str.replace(",", "")
# Добавяне на валута
currency = split.get('Currency') or "USD"
amt_str = f"{amt_str} {currency}"
# Бележка/описание за записването
line_memo = split.get('Memo', "").strip()
comment = f" ; {line_memo}" if line_memo else ""
output_lines.append(f" {beancount_acct:<40} {amt_str}{comment}")
# Край на транзакцията – празен ред
output_lines.append("")

Тази логика на скрипта прави следното:

  • Форматира датата в YYYY-MM-DD за Beancount.

  • Използва получателя (Name) и бележката (memo) за описанието на транзакцията. Например: 2020-05-01 * "ACME Corp" "Плащане по фактура" (Ако няма получател, можете да използвате типа на транзакцията в QuickBooks или да оставите кавичките за получател празни).

  • Добавя метаданни number, ако има референтен номер (номер на чек, номер на фактура и др.).

  • Обхожда всеки ред на записване:

    • Съпоставя името на сметката в QuickBooks с тази в Beancount, използвайки речник account_map (попълнен от стъпката със сметкоплана).
    • Определя сумата. В зависимост от вашия експорт, може да имате една колона Amount (с положителни/отрицателни стойности) или отделни колони Debit и Credit. Кодът по-горе обработва и двата случая. Той гарантира, че кредитите са представени като отрицателни суми за Beancount (тъй като в Beancount се използва едно число със знак за всяко записване).
    • Прикача валутата (ако приемем USD, освен ако не присъства друга колона за валута).
    • Записва реда на записване в Beancount със сметката, сумата и коментар с бележката от реда. Например: Assets:Checking 500.00 USD ; Депозит Income:Sales -500.00 USD ; Депозит Това отразява депозит от $500 (от Приходи към Разплащателна сметка).
  • След изброяването на всички записвания, празен ред разделя транзакцията.

Обработка на многовалутност: Ако данните ви в QuickBooks включват няколко валути, включете кода на валутата при всяко записване (както е показано по-горе). Уверете се, че сметките, които са в чуждестранни валути, са открити с тази валута. Например, ако имате банкова сметка в EUR, ще генерирате open Assets:Bank:Checking EUR и транзакциите в тази сметка ще използват EUR. Beancount поддържа многовалутни книги и ще проследява имплицитните превалутирания, но може да се наложи да добавите записи за цени за обменните курсове, ако искате превалутиране в базова валута в отчетите. Също така се препоръчва да декларирате основната си оперативна валута в горната част на файла на Beancount (напр. option "operating_currency" "USD").

Изпълнение на конверсията: Запазете Python скрипта (например като qb_to_beancount.py) и го изпълнете върху експортираните файлове. Той трябва да произведе .beancount файл, съдържащ всички сметки и транзакции.


2.2 Справяне с гранични случаи и почистване на данни

По време на трансформацията имайте предвид тези често срещани капани и как да се справите с тях:

  • Несъответствия в имената на сметките: QuickBooks може да има имена на сметки, които са в конфликт с йерархичните имена на Beancount. Например, QuickBooks може да има две различни родителски сметки, всяка с подсметка на име "Застраховка". В Beancount Expenses:Insurance трябва да бъде уникална. Решете това, като преименувате едната (напр. "Застраховка-Автомобил" срещу "Застраховка-Здраве") преди експорта или ги съпоставете с уникални сметки в Beancount във вашия скрипт. Последователните конвенции за именуване (без специални символи и използване на йерархия) ще спестят главоболия. Използвайте подхода с файл за пресъпоставяне, ако е необходимо: поддържайте CSV или речник на старо име → ново име в Beancount и го прилагайте по време на конверсията (нашият примерен код използва account_map и може да зарежда замествания от файл).

  • Дати и формати: Уверете се, че всички дати са форматирани последователно. Скриптът по-горе нормализира M/D/Y в ISO формат. Също така, внимавайте за проблеми с фискална срещу календарна година, ако петгодишният ви период пресича края на годината. Beancount не се интересува от границите на фискалната година, но по-късно може да искате да разделите файловете по години за удобство.

  • Числова точност: QuickBooks работи с валута със стотинки, така че работата в стотинки обикновено е добре. Всички суми в идеалния случай трябва да имат две цифри след десетичната запетая в CSV файла. Ако някои суми са се превърнали в цели числа (без десетична запетая) или имат запетаи/скоби (за отрицателни стойности), почистете ги в скрипта (премахнете запетаите, конвертирайте (100.00) в -100.00 и т.н.). Правилно направеният CSV експорт (съгласно инструкциите) би трябвало вече да избягва тези проблеми с форматирането.

  • Отрицателни суми и знаци: Отчетите на QuickBooks понякога показват отрицателни стойности като -100.00 или (100.00) или дори --100.00 в някои експорти в Excel. Стъпката на почистване трябва да се справи с тях. Уверете се, че дебитите и кредитите на всяка транзакция се балансират до нула. Beancount ще наложи това (ако не е балансирано, ще хвърли грешка при импортиране).

  • Дублирани транзакции: Ако се е наложило да експортирате транзакции на партиди (напр. година по година или сметка по сметка), бъдете внимателни да ги обедините без припокриване. Проверете дали първата транзакция на една година не е и последната от предишната партида и т.н. Лесно е случайно да дублирате няколко транзакции на границите. Ако подозирате дубликати, можете да сортирате крайните записи в Beancount по дата и да търсите идентични записи, или да използвате уникалните тагове за транзакции на Beancount, за да ги уловите. Една стратегия е да включите номерата на транзакциите от QuickBooks като метаданни (напр. използвайте Trans # или номер на фактура като таг txn или метаданни quickbooks_id) и след това да се уверите, че няма дубликати на тези ID-та.

  • Небалансирани записвания / Сметки за уреждане: QuickBooks може да има странни случаи като транзакция с небаланс, който QuickBooks автоматично е коригирал към „Начален собствен капитал“ или „Неразпределена печалба“. Например, при задаване на начални салда на сметки, QuickBooks често осчетоводява разликите в сметка от Собствен капитал. Те ще се появят в експортираните транзакции. Beancount ще изисква изрично балансиране. Може да се наложи да въведете сметка от Собствен капитал за начални салда (обикновено Equity:Opening-Balances), за да отразите QuickBooks. Добра практика е да имате запис за начално салдо в първия ден на вашата счетоводна книга, който установява началните салда на всички сметки (вижте Етап 5).

  • Гранични случаи с многовалутност: Ако използвате многовалутност, експортът от QuickBooks може да изброява всички суми в домашна валута или в тяхната собствена валута. В идеалния случай, вземете данните в собствената валута за всяка сметка (отчетите на QuickBooks Online обикновено правят това). В Beancount всяко записване носи валута. Ако QuickBooks е предоставил обменни курсове или превалутиране в домашна валута, можете да ги игнорирате и да разчитате на записите за цени в Beancount. Ако QuickBooks не е експортирал обменни курсове, може да искате ръчно да добавите записи за цени (напр. използвайки директивата price на Beancount) за ключови дати, за да съответстват на оценката. Въпреки това, за основна цялостност на счетоводната книга е достатъчно транзакциите да се балансират в оригиналните си валути – нереализираните печалби/загуби не е необходимо да се записват изрично, освен ако не искате същите отчети.

  • Вземания / Задължения: QuickBooks проследява детайли по фактури и сметки (падежни дати, статус на плащане и др.), които няма да се прехвърлят напълно в обикновена счетоводна книга. Ще получите транзакциите по Вземания и Задължения (фактури, увеличаващи Вземанията, плащания, намаляващи Вземанията и т.н.), но не и документите на фактурите или салдата на клиентите по фактури. В резултат на това, след миграцията, трябва да проверите дали салдата на сметките ви за Вземания и Задължения в Beancount са равни на отворените салда на клиенти/доставчици в QuickBooks. Ако трябва да проследявате фактури, можете да използвате метаданните на Beancount (напр. да включите таг invoice или линк). Номерата на фактурите от QuickBooks би трябвало да са дошли в полетата Num или Memo – нашият скрипт запазва Num като number: "..." в метаданните на транзакцията.

  • Неактивни или закрити сметки: Експортът на IIF може да включва неактивни сметки (ако сте избрали да ги включите). Добре е да ги импортирате (те просто няма да имат транзакции и нулево салдо, ако са наистина неактивни). Можете да ги маркирате като закрити в Beancount след датата на последната транзакция с директива close. Това поддържа вашата счетоводна книга подредена. Например: 2023-12-31 close Expenses:OldAccount ; закрито след миграцията Това е по избор и е предимно за чистота.

Чрез внимателно почистване и съпоставяне на данните, както е описано по-горе, ще имате файл на счетоводна книга на Beancount, който структурно отразява вашите данни от QuickBooks. Следващата стъпка е да проверите дали той също числово отразява QuickBooks.

Етап 3: Валидиране и равнение на данни

Валидирането е критичен етап в миграцията на счетоводни данни. Трябва да се уверим, че счетоводната книга на Beancount съвпада с книгите на QuickBooks до стотинка. Могат да се използват няколко стратегии и инструменти:

3.1 Равнение на оборотна ведомост

Отчетът оборотна ведомост (trial balance) изброява крайните салда на всички сметки (с посочени дебити и кредити или положителни/отрицателни стойности) и трябва да се равнява на нула. Генерирането на оборотна ведомост в двете системи за една и съща дата е най-бързият начин да се потвърди общата точност.

  • В QuickBooks: Генерирайте отчет Оборотна ведомост (Trial Balance) за последния ден от последната година (напр. 31 декември 2023 г.). Този отчет показва салдото на всяка сметка. Експортирайте го или си запишете ключовите цифри.

  • В Beancount: Използвайте отчетите на Beancount, за да генерирате оборотна ведомост. Един лесен метод е чрез командния ред:

    bean-report migrated.beancount balances

    Отчетът balances е оборотна ведомост, която изброява всички сметки и техните салда. Можете също да отворите файла във Fava (уеб интерфейса на Beancount) и да погледнете секцията Салда (Balances) или Баланс (Balance Sheet). Всяко салдо на сметка в Beancount трябва да съвпада с оборотната ведомост на QuickBooks. Например, ако QuickBooks показва *Вземания = 5,000,тогавасметкатаAssets:AccountsReceivableвBeancountтрябвадаеобщо5,000*, тогава сметката Assets:Accounts Receivable в Beancount трябва да е общо 5,000 (дебит). Ако *Приходи от продажби = 200,000,тогаваIncome:SalesвBeancountтрябвадапоказва200,000*, тогава Income:Sales в Beancount трябва да показва 200,000 (кредит, което може да се покаже като -200,000, ако използвате оборотна ведомост, която представя кредитите като отрицателни).

Ако има несъответствия, локализирайте ги:

  • Проверете дали цяла сметка липсва или е в повече (забравили ли сме сметка или сме включили такава, която вече е била закрита преди периода на миграция?).
  • Ако салдото е грешно, разгледайте в детайли: QuickBooks може да генерира Бърз отчет по сметка (Account QuickReport) или детайлна книга за тази сметка, и можете да я сравните с регистъра на Beancount за тази сметка (bean-report migrated.beancount register -a ИменаСметка). Понякога разликите идват от липсваща или дублирана транзакция.

Също така проверете дали сумата на всички сметки е нула в оборотната ведомост на Beancount (тя отпечатва обща сума, която трябва да бъде нула или много близо до нула). Beancount налага двойно записване, така че ако имате някакъв ненулев небаланс, това означава, че активите минус пасивите-собствен капитал не се равняват на нула, което показва проблем (който QuickBooks обикновено също не би позволил, но може да се случи, ако някои данни са били пропуснати).


3.2 Сравнение на салдата по сметки

Освен оборотната ведомост, можете да сравните конкретни финансови отчети:

  • Баланс: Генерирайте Баланс в QuickBooks за крайната дата и баланс в Beancount (bean-report migrated.beancount balsheet). Това е подобно на оборотната ведомост, но организирано по Активи, Пасиви, Собствен капитал. Числата трябва да съвпадат по категории. За по-детайлна проверка, сравнете общите суми на основните сметки: парични средства, вземания, дълготрайни активи, задължения, собствен капитал и др.

  • Отчет за приходите и разходите (ОПР): Генерирайте ОПР за петгодишния период (или година по година) в QuickBooks и в Beancount (bean-report migrated.beancount income за ОПР за целия период). Нетната печалба от Beancount трябва да е равна на тази от QuickBooks за всеки период. Ако сте мигрирали всичките пет години, кумулативната нетна печалба трябва да съвпада. Можете също да сравните отделните общи суми на приходите и разходите, за да се уверите, че никоя категория не е пропусната или удвоена.

  • Случайна извадка от транзакции: Изберете няколко случайни транзакции (особено от всяка година и всяка основна сметка) и проверете дали са мигрирали правилно. Например, намерете фактура отпреди 3 години в QuickBooks и след това потърсете нейната сума или бележка във файла на Beancount (тъй като всички транзакции са текст, можете да отворите файла .beancount в текстов редактор или да използвате инструменти за търсене). Проверете дали датата, сумите и сметките съвпадат. Това помага да се хванат всякакви проблеми с форматирането на дати или грешно съпоставени сметки.


3.3 Автоматизирани проверки за цялостност

Възползвайте се от собствените инструменти за валидация на Beancount:

  • bean-check: Изпълнете bean-check migrated.beancount. Това ще анализира файла и ще докладва всякакви грешки в синтаксиса или балансирането. Ако скриптът е пропуснал нещо като неоткрита сметка или небалансирана транзакция, bean-check ще го сигнализира. Чисто преминаване (без изход) означава, че файлът е поне вътрешно последователен.

  • Декларации за салдо: Можете да добавите изрични декларации за салдо в счетоводната книга за ключови сметки като допълнителна проверка. Например, ако знаете салдото по банковата сметка на определена дата, добавете ред: 2023-12-31 balance Assets:Bank:Checking 10000.00 USD Тогава bean-check ще гарантира, че в счетоводната книга, към тази дата, салдото е наистина $10,000. Това е по избор, но може да бъде полезно за сметки с голямо значение. Можете да вземете крайните салда от QuickBooks (напр. края на всяка година) и да ги декларирате във файла на Beancount. Ако някоя декларация се провали, Beancount ще докладва разлика.

  • Проверка на оборотната ведомост по периоди: Ако предпочитате, можете да направите проверка период по период. За всяка година сравнете нетната промяна. Например, нетната печалба в QuickBooks за 2020 г. срещу тази в Beancount за 2020 г. и т.н., за да се уверите, че всяка година се е закрила правилно в собствен капитал (QuickBooks автоматично прехвърля нетната печалба в Неразпределена печалба всяка нова година; в Beancount просто ще видите кумулативен собствен капитал). Ако видите разлики, това може да показва проблем в данните за конкретна година.

  • Брой транзакции и дубликати: Пребройте броя на транзакциите в QuickBooks срещу Beancount. QuickBooks не показва директно броя лесно, но можете да прецените, като преброите редовете в CSV файла (всеки заглавен ред на транзакция срещу записванията). В Beancount бърз начин е да се преброят срещанията на txn или * " във файла. Те трябва да са равни или малко повече от тези в QuickBooks (ако сте добавили транзакции за начално салдо или корекции). Значително несъответствие означава, че нещо може да е било пропуснато или дублирано. Нашето използване на уникални ID-та в метаданните може да помогне: ако подозирате дубликати, потърсете във файла на Beancount за един и същ номер на чек или фактура, който се появява два пъти, когато не би трябвало.

  • Статус на равнение: Включихме метаданни rec: "y" или "n" въз основа на статуса на изчистено/равнено в QuickBooks в нашия скрипт (като rec в примера). Това не е стандартна функция на Beancount (Beancount не проследява изчистено/висящо по същия начин като Ledger), но може да бъде полезна метаданна. Можете да проверите дали всички транзакции, които са били равнени в QuickBooks, присъстват. В крайна сметка, новото равнение на банковите сметки в Beancount (използвайки вашите извлечения) може да бъде окончателното доказателство, че нищо не липсва.

Като извършите тези валидации, изграждате увереност, че миграцията е запазила данните. Отделете време за този етап – по-лесно е да се поправят аномалии сега, отколкото месеци по-късно, когато може да се разчита на книгите. Често срещани проблеми, ако валидацията се провали: липсващо начално салдо на сметка, транзакция с дата извън обхвата или инверсия на знака на запис. Всички те са поправими, след като бъдат идентифицирани.

Етап 4: Финализиране на счетоводната книга в Beancount

След почистване и валидиране е време да формализирате данните в структурата на вашата счетоводна книга в Beancount. „Финализиране“ тук означава както финализиране на файловете на счетоводната книга, така и потенциалното им добавяне в система за контрол на версиите за проследимост.

4.1 Организиране на файловете на счетоводната книга и конфигурация

Решете как да структурирате файловете на счетоводната книга на Beancount. За данни от пет години можете да държите всичко в един файл или да го разделите по години или категории. Често срещана, ясна структура е:

  • Основен файл на счетоводната книга: напр. ledger.beancount – Това е входната точка, която може да include други файлове. Тя може да съдържа глобални опции и след това да включва годишните файлове.
  • Файл със сметки: Дефинирайте сметкоплана и началните салда. Например, accounts.beancount с всички директиви open (както са генерирани от скрипта). Можете също да изброите стоките (валутите) тук.
  • Файлове с транзакции: По един за всяка година, напр. 2019.beancount, 2020.beancount и т.н., съдържащи транзакциите за тази година. Това поддържа всеки файл с управляем размер и ви позволява да се съсредоточите върху дадена година, ако е необходимо. Алтернативно, можете да разделите по субект или сметка, но разделянето по време е лесно за финансови данни.

Примерен основен файл:

option "title" "Моята бизнес счетоводна книга"
option "operating_currency" "USD"

include "accounts.beancount"
include "2019.beancount"
include "2020.beancount"
...
include "2023.beancount"

По този начин всички данни се агрегират, когато генерирате отчети, но поддържате ред.

Beancount не изисква множество файлове – можете да имате един голям файл – но горната структура подобрява яснотата и контрола на версиите. Според най-добрите практики на Beancount, е добре да се използват ясни заглавия на секции и да се групират логически свързани записи.


4.2 Задаване на начални салда и собствен капитал

Ако миграцията ви не е от абсолютна нула, ще трябва да се справите с началните салда. Два сценария:

  • Книги, започващи от нулата: Ако петгодишният период започва със създаването на бизнеса (напр. сте започнали да използвате QuickBooks през януари 2019 г. с всички сметки на нула, с изключение на първоначалния капитал), тогава може да не се нуждаете от отделна транзакция за начално салдо. Първите транзакции през 2019 г. (като първоначално финансиране към банкова сметка) естествено ще установят начални салда. Просто се уверете, че всеки първоначален капитал или предишна неразпределена печалба са отчетени чрез транзакции със собствен капитал.

  • Книги в средата на периода (частична история): Ако сте започнали с QuickBooks по-рано и 2019 г. е средна точка, тогава към 1 януари 2019 г. всяка сметка е имала пренесено салдо. QuickBooks би ги имал като начални салда или неразпределена печалба. В Beancount е типично да се създаде запис за начални салда в деня преди началната ви дата:

    • Използвайте сметка от собствен капитал, наречена Equity:Opening-Balances (или подобна), за да компенсирате сумата на всички начални суми.
    • Пример: ако на 31.12.2018 г. паричните средства са били 10,000,вземанията10,000, вземанията 5,000, а задълженията 3,000(кредит),щенапишететранзакция:20181231"Началнисалда"Assets:Cash10000.00USDAssets:AccountsReceivable5000.00USDLiabilities:AccountsPayable3000.00USDEquity:OpeningBalances12000.00USDТоваоставяOpeningBalancesсотрицателнатасума(3,000 (кредит), ще напишете транзакция: `2018-12-31 * "Начални салда"` ` Assets:Cash 10000.00 USD ` ` Assets:Accounts Receivable 5000.00 USD ` ` Liabilities:Accounts Payable -3000.00 USD ` ` Equity:Opening-Balances -12000.00 USD ` Това оставя Opening-Balances с отрицателната сума (–12k), която балансира записа. Сега всички сметки за активи/пасиви започват 2019 г. с правилни салда. Това трябва да отразява всякакви „Неразпределена печалба“ или пренесени салда от QuickBooks.
    • Алтернативно, използвайте директивите pad и balance на Beancount: За всяка сметка можете да я pad-нете от Opening-Balances и да декларирате салдото. Това е по-автоматизиран начин. Например: 2018-12-31 pad Assets:Cash Equity:Opening-Balances 2018-12-31 balance Assets:Cash 10000.00 USD Това казва на Beancount да вмъкне какъвто и да е необходим запис (към Opening-Balances), така че паричните средства да са равни на 10000 USD към тази дата. Направете това за всяка сметка. Резултатът е подобен, но писането на изрична транзакция, както в първия метод, също е лесно.
  • Неразпределена печалба: QuickBooks не експортира изрично транзакция „Неразпределена печалба“ – той просто я изчислява. След миграцията може да забележите, че Equity:Retained Earnings е нула, ако не сте я създали. В Beancount неразпределената печалба е просто печалбата от предходни години. Можете да изберете да създадете сметка за Неразпределена печалба и да прехвърлите предходните печалби в нея в първия ден на всяка нова година, или просто да оставите собствения капитал да бъде сумата от всички приходи/разходи (която се появява под секцията Собствен капитал в отчетите). За прозрачност някои потребители записват приключвателни статии годишно. Това е по избор и е предимно за представяне. Тъй като мигрирахме всички транзакции, печалбата за всяка година естествено ще се натрупа, ако генерирате отчет за всяка година.

  • Сравнителни проверки: След като зададете началните салда, генерирайте баланс на началната дата, за да се уверите, че всичко е правилно (той трябва да показва тези начални салда срещу Начален капитал, които се равняват на нула).


4.3 Финализиране и контрол на версиите

Сега, когато данните са във формат на Beancount и са структурирани, е разумно да добавите файловете в хранилище за контрол на версиите (напр. git). Всяка промяна в счетоводната книга може да бъде проследена и имате одитна следа на всички модификации. Това е голямо предимство на текстовото счетоводство. Например, в QuickBooks промените може да не са лесно сравними, но в Beancount можете да видите разликите ред по ред. Както отбелязват някои потребители, с Beancount получавате прозрачност и възможност да връщате промени, ако е необходимо – всеки запис може да бъде свързан с история на промените.

Помислете за тагване на commit-а на тази първоначална миграция като v1.0 или подобно, за да знаете, че тя представлява състоянието на книгите, както са импортирани от QuickBooks. В бъдеще ще въвеждате нови транзакции директно в Beancount (или ще ги импортирате от банкови извлечения и др.), и можете да използвате нормални практики за разработка на софтуер (commit-ване месечно или ежедневно, използване на клонове за експерименти и др.).

Настройка на Fava или други инструменти: Fava е уеб интерфейс за Beancount, който улеснява преглеждането на отчети. След като commit-нете, изпълнете fava ledger.beancount, за да разгледате финансовите отчети и да ги сравните с отчетите си от QuickBooks за последен път. Може да забележите малки разлики по-лесно в потребителски интерфейс (например, сметка, която трябва да е нула, но показва малко салдо, показва липсващ приключвателен запис или случайна транзакция).

Конвенции за именуване и последователност: Сега имате пълен контрол, така че осигурете последователност:

  • Всички сметки трябва да имат ясни имена, започващи с главни букви на категориите (Assets, Liabilities и др.). Ако някои изглеждат странно (напр. Assets:assets:SomeAccount поради несъответствие в регистъра от QuickBooks), преименувайте ги във файла със сметки и актуализирайте транзакциите (бързо търсене/замяна във файла може да свърши работа, или използвайте bean-format на Beancount или мулти-курсор на редактора).
  • Символите на стоките (валутните кодове) трябва да са последователни. За USD, използвайте USD навсякъде (не $ или US$). За други, използвайте стандартни кодове (EUR, GBP, BGN и др.). Тази последователност е важна за търсенето на цени и отчетите в Beancount.
  • Премахнете всякакви временни или фиктивни сметки, които може да са били създадени (например, ако сте използвали Expenses:Miscellaneous за неизвестни сметки в скрипта като универсално решение, опитайте се да ги елиминирате, като съпоставите правилно всички сметки).

Закриване на QuickBooks: На този етап трябва да имате паралелни книги в Beancount, които съответстват на QuickBooks. Някои избират да поддържат двете системи паралелно за кратък период, за да се уверят, че нищо не е пропуснато. Но ако валидацията е солидна, можете да „закриете“ книгите на QuickBooks:

  • Ако това е корпоративна среда, помислете за експортиране на всички изходни документи от QuickBooks (фактури, сметки, касови бележки) за архив, тъй като те няма да съществуват в Beancount, освен ако не ги прикачите ръчно.
  • Съхранявайте резервно копие на данните от QuickBooks (както файла на компанията, така и експортираните файлове).
  • В бъдеще поддържайте счетоводната книга на Beancount като основна система за запис.

Като финализирате данните в счетоводната книга на Beancount, сте завършили процеса на миграция. Последната стъпка е да извършите одит и да демонстрирате последователността на финансовите отчети, за да се уверите (вие и всякакви заинтересовани страни или одитори), че миграцията е била успешна.

Етап 5: Одит след миграцията и примери

За да илюстрирате успеха на миграцията, подгответе сравнение „преди и след“ на финансовите отчети и евентуално разлика (diff) на транзакциите. Това предоставя доказателства, че книгите са последователни.

5.1 Проверка на финансовите отчети

Генерирайте ключови финансови отчети както от QuickBooks, така и от Beancount за едни и същи дати и ги сравнете:

  • Баланс към 31 декември 2023 г.: Сравнете общите суми на Активи, Пасиви и Собствен капитал ред по ред. Те трябва да съвпадат. Например, ако QuickBooks е показал Общо активи = 150,000иОбщопасиви+собственкапитал=150,000** и **Общо пасиви + собствен капитал = 150,000, балансът на Beancount трябва да показва същите общи суми. Ако сте структурирали сметките малко по-различно (да речем, че сте обединили някои подсметки), коригирайте това в сравнението или разбийте на следващо ниво, за да се уверите, че сумите са равни.

  • Отчет за приходите и разходите 2019–2023 г.: Уверете се, че общите приходи, общите разходи и нетната печалба за всяка година (или за целия период) са идентични. Могат да възникнат незначителни разлики, ако QuickBooks е направил някакво закръгляване в отчетите, но транзакциите обикновено носят стотинки точно, така че нетната печалба трябва да е точна. Ако печалбата за някоя година се различава, разгледайте данните за тази година – това често е индикатор за липсващ или дублиран запис в този период.

  • Разлики в оборотната ведомост: Ако е възможно, създайте електронна таблица, в която да изброите всяка сметка и салдото от QuickBooks срещу Beancount. Тъй като очакваме те да съвпадат, това може да бъде колона с изцяло нулеви разлики. Това по същество е кръстосаната проверка на оборотната ведомост, която обсъдихме, но изписването й помага да се документира.


5.2 Примерно сравнение (Преди и след)

По-долу е даден примерен фрагмент, демонстриращ последователността на данните. Да кажем, че нашата оборотна ведомост от QuickBooks за 31 декември 2023 г. е била:

СметкаСалдо в QuickBooks (31 дек 2023)
Активи
  Assets:Bank:Checking$12,500.00 (дебит)
  Assets:Accounts Receivable$3,200.00 (дебит)
Пасиви
  Liabilities:Credit Card$-1,200.00 (кредит)
  Liabilities:Loans Payable$-5,000.00 (кредит)
Собствен капитал
  Equity:Opening-Balances$-7,500.00 (кредит)
  Equity:Retained Earnings$-2,000.00 (кредит)
  Equity:Current Year Profit$0.00

В Beancount, след импортиране и осчетоводяване на всички транзакции до 2023 г., bean-report balances (оборотна ведомост) извежда:

СметкаСалдо в Beancount (31 дек 2023)
Активи
  Assets:Bank:Checking12,500.00 USD (дебит)
  Assets:Accounts Receivable3,200.00 USD (дебит)
Пасиви
  Liabilities:Credit Card-1,200.00 USD (кредит)
  Liabilities:Loans Payable-5,000.00 USD (кредит)
Собствен капитал
  Equity:Opening-Balances-7,500.00 USD (кредит)
  Equity:Retained Earnings-2,000.00 USD (кредит)
  Equity:Profit (2019-2023)0.00 USD

(Забележка: Секциите на собствения капитал може да са структурирани по различен начин; ключът е общите суми да съвпадат. Тук „Печалба (2019-2023)“ в Beancount играе ролята на комбинирана печалба за текущата година/неразпределена печалба, показвайки нула, защото печалбата е била приключена в Неразпределена печалба.)

Както е показано, всяка сметка съвпада до стотинка. Сумата на дебитите е равна на сумата на кредитите и от двете страни.

Освен това, ако генерираме ОПР за 2023 г.:

  • QuickBooks: Приходи 50,000,Разходи50,000, Разходи 48,000, Нетна печалба $2,000.
  • Beancount: Приходи 50,000,Разходи50,000, Разходи 48,000, Нетна печалба $2,000 (която след това е приключена в Неразпределена печалба или се появява под Собствен капитал в годишния баланс).

Можете да създадете разлика на транзакциите, ако е необходимо, но тъй като данните от QuickBooks не са в счетоводна форма, е по-ефективно да се разчита на отчети. Можете да сортирате както CSV файла от QuickBooks, така и транзакциите в Beancount по дата и да сравните ключови полета като последна проверка (това може да се направи в Excel или със скрипт). Въпреки това, като се има предвид, че се доверяваме на нашата по-ранна валидация, проверката на финансовите отчети обикновено е достатъчна.


5.3 Съвети за одит

  • Ако одитор или заинтересована страна се нуждае от уверение, представете финансовите отчети преди и след един до друг. Прозрачността на Beancount всъщност може да опрости одитите, защото можете да проследите всяко число от отчет обратно до изходния запис бързо (особено като използвате функционалността за детайлизиране на Fava).
  • Съхранявайте резервното копие на QuickBooks и експортираните CSV файлове като част от вашата одитна следа. Документирайте всички корекции, направени по време на миграцията (например, „Преименувана сметка X на Y за последователност“ или „Разделена транзакция Z на два записа за яснота“, ако сте правили такива промени).
  • В бъдеще въведете редовни проверки в Beancount. Например, месечното равнение на банковите сметки и декларация на тяхното крайно салдо помага за улавяне на всякакви проблеми с данните или грешки при въвеждане. Миграцията дава добра основа; поддържането на дисциплина в новата система ще гарантира продължителна точност.

Накрая, отпразнувайте завършването на миграцията: успешно сте прехвърлили счетоводни данни за пет години от QuickBooks към Beancount. Данните вече са в лек, текстови формат с контрол на версиите и пълна цялост на двойното записване. Вие сте експортирали данните, трансформирали сте ги с Python скриптове, валидирали сте целостта чрез оборотни ведомости и отчети, и сте ги финализирали в добре организирана счетоводна книга на Beancount. Този цялостен процес гарантира, че счетоводната книга на Beancount е точна, вярна реплика на вашите книги в QuickBooks за петгодишния период, подготвяйки ви за оптимизирано счетоводство в бъдеще.

Представяне на поддръжката на множество файлове в Beancount

· Една минута четене
Mike Thrift
Mike Thrift
Marketing Manager

Много от нашите клиенти ни питат от февруари как да добавят множество файлове към една счетоводна книга. Те се нуждаят от файловата структура, за да архивират или категоризират транзакции. И така, най-накрая, след няколко месеца работа, с удоволствие съобщаваме, че функцията е пусната безплатно.

Ето как да я използвате:

Файл > създаване на нов файл

Множество файлове в една счетоводна книга

Отидете в раздела за файлов редактор в лявата навигационна странична лента. След това, от падащото меню "Файл" изберете "Създаване на нов файл".

Файл > създаване на нов файл

Наименувайте новия си файл

Дайте на файла си валидно име и го запазете. Всички имена на файлове трябва да завършват на ".bean".

Наименувайте новия си файл

Включете файла

Ето една ключова стъпка, трябва да включите новосъздадения файл в main.bean.

Например, ако сте добавили stock.bean, тогава посочете include "stock.bean" в main.bean.

Включете файла

Опреснете и отидете до файла

Опреснете страницата и ще видите, че файлът се появява в падащото меню "Файл".

Опреснете и отидете до файла

Преименувайте или изтрийте файла

Когато сте навигирали до файла, можете да го преименувате или изтриете от падащото меню "Редактиране".

Преименувайте или изтрийте файла

Имате проблеми?

Задайте въпроси в https://t.me/beancount.

Надстройка на Fava до версия 1.19: Основни промени и подобрения

· Една минута четене
Mike Thrift
Mike Thrift
Marketing Manager

Надстроихме софтуера с отворен код Fava, лицензиран под MIT, до версия 1.19. Ето промените от последната ни актуализация:

  • v1.19 (2021-05-18)
    • мигриране от опциите conversion и interval към опцията default-page
    • добавяне на опция invert-income-liabilities-equity
    • надстройка до CodeMirror 6
    • добавя български превод
    • други малки подобрения и корекции на грешки
  • v1.18 (2021-01-16)
    • няколко малки подобрения и различни корекции на грешки.

Чувствате се развълнувани? Изпробвайте го сега на https://beancount.io/ledger/

2021-07-16-upgrade-fava-to-1-19

Имате въпроси? Ще бъдем на разположение за вас на https://t.me/beancount :)