Використовуйте редактор, форму транзакцій та звіти запитів для роботи з вашою книгою обліку. Наведені нижче виконувані приклади призначені для стандартної Fava 1.30.16 з Beancount 3.2.3 та beanquery 0.2.0; дотримуйтесь прив'язаного локального налаштування.
Beancount.io використовує окрему інформаційну панель. Його вихідний код продукту підтверджує маршрути книги обліку для редагування, запитів, документів і налаштувань, а також споживачі для кількох параметрів відображення Fava. Це не означає, що гарячі клавіші, правила вставки, виконання плагінів або шляхи URL стандартної Fava є гарантією сумісності хостингу. Зображення нижче показує інформаційну панель хостингу, а не стандартний інтерфейс.

1. Редагування та введення даних
Вбудований редактор
Редактор стандартної Fava пропонує автодоповнення для рахунків, платників і тегів. Використовуйте default-file, щоб вибрати його початковий вихідний файл. insert-entry також позиціонує курсор на останньому маркері вставки в цьому файлі; це не основна опція Beancount.
2000-01-01 custom "fava-option" "default-file"
2024-01-01 custom "fava-option" "insert-entry" "^Expenses:Food$"Цей фрагмент вибирає файл, у якому він міститься. Нові записи після 1 січня 2024 року, які відповідають Expenses:Food, вставляються перед маркером, якщо пізніше відповідне правило або рахунок пізнішої проводки не має переваги. Див. повний приклад багатофайлової вставки.
Додавання транзакцій
У стандартній Fava натисніть + або клавішу n, щоб відкрити форму транзакції. Поле опису приймає теги та посилання, розділені пробілами, наприклад Lunch #food ^receipt-001. Назви рахунків повинні вже мати директиви open.
Збережіть цю повну книгу обліку як ui-demo.beancount, щоб спробувати звіти нижче. Позитивна витрата є дебетом; негативна проводка готівки є її кредитом.
option "title" "UI Demo"
option "operating_currency" "USD"
2024-01-01 open Assets:Checking USD
fava-uptodate-indication: TRUE
2024-01-01 open Income:Salary USD
2024-01-01 open Expenses:Food USD
2024-01-02 * "Salary"
Assets:Checking 3000.00 USD
Income:Salary -3000.00 USD
2024-01-03 * "Groceries" #food
Expenses:Food 400.00 USD
Assets:Checking -400.00 USD
2024-01-04 balance Assets:Checking 2600.00 USDЗапустіть bea --file ui-demo.beancount check, потім fava ui-demo.beancount. Перевірка проходить, і залишок становить 2 600.00 USD. Транзакція з датою в майбутньому та тегом #template є справжньою транзакцією: цей тег не робить її інертним багаторазовим шаблоном форми. Тримайте гіпотетичні транзакції в окремій книзі обліку для сценаріїв.
2. Керування документами
Стандартна Fava може завантажувати документи, перетягуючи їх на назви рахунків або рядки журналу. Налаштуйте справжній корінь документів і підтримуйте ієрархію його рахунків узгодженою з вашими відкритими рахунками.
Цей додатковий фрагмент можна додати до ui-demo.beancount. Спочатку створіть каталог documents поруч із книгою обліку. Щоб спробувати виявлення, розмістіть справжній файл з назвою 2024-01-03-receipt.pdf усередині documents/Expenses/Food/.
option "documents" "documents"
plugin "fava.plugins.link_documents"
plugin "fava.plugins.tag_discovered_documents"Це справжні модулі, включені до Fava 1.30.16. Beancount виявляє датовані файли в каталогах рахунків; tag_discovered_documents додає #discovered. link_documents зіставляє метадані document із записами документів і зв'язує їх. Він не виводить зв'язок транзакції зі вмісту квитанції. Додайте ці метадані безпосередньо під наявним заголовком Groceries, перед його проводками:
document: "2024-01-03-receipt.pdf"Цей відступний рядок є фрагментом метаданих, а не окремою книгою обліку. Якщо файл присутній, документ отримує #linked і ділиться ^dok-2024-01-03 із транзакцією. Відсутні відповідні документи призводять до помилки. Щодо точної стандартної поведінки див. версійний плагін зв'язування документів.
3. Запити та аналіз за допомогою BQL
Сторінка запитів стандартної Fava виконує мову запитів Beancount. Очистіть глобальні фільтри часу/рахунку, перш ніж відтворювати ці результати для повної книги обліку. Ці фільтри інтерфейсу можуть видаляти записи до виконання запиту.
Результати можна завантажити як CSV. Підтримка діаграм залежить від типів результатів: стандартна довідка описує рівно дві колонки з датою або рядком, за якими йде інвентар. Довільна пара числових колонок не гарантує діаграми.
Практичні приклади запитів
Виконайте ці запити проти ui-demo.beancount на сторінці запитів Fava або передайте кожен запит у лапках команді bea --file ui-demo.beancount query.
Щомісячний звіт про витрати:
SELECT account, SUM(position) AS total
FROM postings
WHERE account ~ '^Expenses:'
AND date >= 2024-01-01 AND date < 2024-02-01
GROUP BY account
ORDER BY account;Очікуваний результат: Expenses:Food, 400.00 USD.
Доходи проти витрат за місяцями:
SELECT YEAR(date) AS year, MONTH(date) AS month,
ROOT(account, 1) AS category, currency,
SUM(number) AS signed_total
FROM postings
WHERE account ~ '^(Income|Expenses):'
GROUP BY year, month, category, currency
ORDER BY year, month, category, currency;| Рік | Місяць | Категорія | Валюта | Підписаний підсумок |
|---|---|---|---|---|
| 2024 | 1 | Витрати | USD | 400.00 |
| 2024 | 1 | Доходи | USD | -3000.00 |
Запит зберігає знаки Beancount і групує одиниці окремо за валютою. Доходи 3 000.00 USD мінус витрати 400.00 USD залишають 2 600.00 USD. Це звіт про одиниці, а не про конвертацію або собівартість. IIF недоступний у beanquery 0.2.0, а унарний -position не підтримується; групування двох категорій рахунків уникає обох операцій.
4. Налаштування та робочий процес
Налаштування вигляду
Додайте ці директиви Fava до прикладної книги обліку, щоб приховати рахунки з нульовим балансом і згорнути інвестиційні гілки:
2000-01-01 custom "fava-option" "show-closed-accounts" "false"
2000-01-01 custom "fava-option" "show-accounts-with-zero-balance" "false"
2000-01-01 custom "fava-option" "collapse-pattern" "^Assets:Investments"Вони впливають на дерева рахунків у звітах. Рахунки з ненульовими балансами залишаються видимими. Основні форми, такі як option "show-closed-accounts" "false", не проходять перевірку Beancount.
Метадані прикладу fava-uptodate-indication: TRUE знаходяться на окремому відступному рядку під open. Не розміщуйте їх на рядку open і не беріть булеве значення в лапки. Остання успішна перевірка балансу дає зелений колір; неуспішна перевірка — червоний; наступна транзакція — жовтий. Твердження від 4 січня є зеленим. Окремий сірий індикатор свіжості також може з'являтися, оскільки ці дати старі.
Посилання на бічній панелі
Для стандартного прикладу під назвою UI Demo ці повні шляхи ведуть до його звітів:
2024-01-01 custom "fava-sidebar-link" "January Expenses" "/ui-demo/income_statement/?time=2024-01"
2024-01-01 custom "fava-sidebar-link" "All Documents" "/ui-demo/documents/"Ці шляхи припускають, що стандартна Fava змонтована на кореневому рівні хоста. Замініть /ui-demo на ваш фактичний проток книги обліку та додайте будь-який префікс серверного монтажу. Див. спеціальні посилання бічної панелі щодо перевіреної поведінки /jump та межі маршрутизації хостингу.
Загальне налаштування
Запуск стандартної Fava з кількома основними файлами створює окремі книги обліку в її перемикачі книг. Файли, включені через include, залишаються частиною однієї книги обліку та відображаються як редаговані джерела; вони не є окремими книгами.
Використовуйте опції Fava для language, default-file та use-external-editor. Зовнішній редактор потребує обробника beancount:// і доступу до вихідних файлів. Справжні стандартні модулі розширень також включають fava.ext.auto_commit та fava.ext.portfolio_list. Розширення використовують custom "fava-extension" з власними передумовами; вони відрізняються від директив plugin, використаних вище. Див. довідку розширень Fava для цієї версії.
5. Продуктивність та усунення неполадок
Робота з великими файлами
Використовуйте include, щоб організувати книгу обліку за рахунком або періодом. Beancount все одно завантажує включені файли, тому розділення однієї книги само по собі не зменшує вхідні дані звіту. Обмежте відображувані дати та спростіть дорогі запити, коли вам потрібен менший звіт.
Поширені проблеми та виправлення
- Помилки книги обліку: Запустіть
bea checkі перегляньте звіт про помилки Fava. Сторінка може відтворюватися, поки завантажувач має помилки. - Неочікувана поведінка опцій: Перевірте протестоване середовище виконання та використовуйте датовані спеціальні директиви Fava.
bea checkне може самостійно виявити невідому опцію Fava. - Неочікувані підсумки запитів: Очистіть глобальні фільтри, увімкніть історію відкриття та тримайте валюти окремо.
- Відсутні документи: Перевірте, що каталог існує, рахунок відкрито, назва файлу починається з дійсної дати та метадані транзакції відповідають документу.
Для контрасту, це навмисно недійсні приклади. Їх не можна копіювати в робочу книгу обліку:
option "insert-entry" "Expenses:Food"
custom "fava-sidebar-link" "Label" "/jump?time=month"Перший використовує невідому основну опцію. Другий пропускає обов'язкову дату. Довідка стандартних функцій описує поведінку інтерфейсу для цього випуску.