Перейти до основного вмісту

Посібник з веб-інтерфейсу beancount.io

Веб-інтерфейс beancount.io (на основі Fava) надає повний набір інструментів для управління, запитів і візуалізації ваших фінансових даних. Цей посібник охоплює його основні функції, від базового введення даних до розширеного налаштування та усунення несправностей.

1. Редагування та введення даних

Вбудований редактор

Інтерфейс містить потужний текстовий редактор для внесення безпосередніх змін до ваших файлів Beancount. Основні функції включають:

  • Автозаповнення: Натисніть Tab, щоб завершити назви рахунків, платників, теги та посилання.

  • Комбінації клавіш:

    • Ctrl+Space: Активувати автозаповнення.
    • Ctrl+/: Закоментувати або розкоментувати рядки.
    • Ctrl+D: Дублювати поточний рядок.
    • Alt+Up/Down: Перемістити поточний рядок вгору або вниз.
  • Розумне розміщення курсора: Використовуйте опцію $insert-entry$ у вашому файлі, щоб автоматично розмістити курсор у найновішому записі для конкретного рахунку, коли відкривається редактор.

    option "insert-entry" "Expenses:Food:Dining-Out"

Додавання транзакцій

Натисніть кнопку + (або натисніть n), щоб відкрити форму транзакції.

  • Швидке введення: Форма пропонує останні рахунки та запам'ятовує загальні суми для платників.

  • Вбудовані теги/посилання: Додавайте теги та посилання безпосередньо в поле опису (наприклад, Lunch #food ^receipt-001).

  • Шаблони транзакцій: Створюйте записи з майбутньою датою з тегом #template. Потім ви можете використовувати форму, щоб знайти та заповнити їх.

    2099-01-01 * "Monthly Rent Payment" #template
    Expenses:Housing:Rent 1500.00 USD
    Assets:Checking -1500.00 USD

2. Управління документами

Ефективно пов'язуйте квитанції, виписки та інші файли з вашими транзакціями.

  • Завантаження за допомогою перетягування:

    • Перетягніть файл на назву рахунку, щоб зберегти його у папці цього рахунку.
    • Перетягніть файл на транзакцію в журналі, щоб безпосередньо пов'язати його.
  • Зберігання документів: Файли зберігаються у папці, вказаній директивою $option "documents" "path/to/your/documents"$ у вашому файлі Beancount.

  • Автоматизоване зв'язування: Beancount може автоматично знаходити та пов'язувати документи з транзакціями. Увімкніть це за допомогою наступних плагінів:

    plugin "fava.plugins.link_documents"
    plugin "fava.plugins.tag_discovered_documents"

3. Запити та аналіз за допомогою BQL

Сторінка Query дозволяє запускати запити мовою Beancount Query Language (BQL), подібно до інструменту командного рядка bean-query.

  • Візуалізація: Результати запиту автоматично відображаються у вигляді таблиць. Якщо ваш запит повертає два стовпці (наприклад, дату/рядок і число), інтерфейс також згенерує лінійний, стовпчастий графік або деревоподібну карту.
  • Експорт: Завантажте будь-який результат запиту як файл CSV.

Практичні приклади запитів

  • Підсумок щомісячних витрат:

    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 total DESC;
  • Доходи проти витрат за місяць:

    SELECT YEAR(date) as year, MONTH(date) as month,
    SUM(IIF(account ~ '^Income', -position, 0)) as income,
    SUM(IIF(account ~ '^Expenses', position, 0)) as expenses
    FROM postings
    GROUP BY year, month
    ORDER BY year, month;

4. Налаштування та робочий процес

Налаштування вигляду

Налаштуйте відображення інтерфейсу за допомогою цих параметрів у вашому файлі Beancount:

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

    option "show-closed-accounts" "false"
    option "show-accounts-with-zero-balance" "false"
    option "collapse-pattern" "Assets:Investments:.*"
  • Індикатори актуальності: Кольорові крапки поруч з рахунками показують їхній статус (зелений для проходження балансу, червоний для невдалого, жовтий для відсутності останньої перевірки балансу). Увімкніть це в директиві open рахунку:

    2020-01-01 open Assets:Checking   fava-uptodate-indication: "TRUE"

Посилання на бічній панелі

Додайте власні посилання на часто використовувані звіти або відфільтровані перегляди на бічній панелі.

2024-01-01 custom "fava-sidebar-link" "This Month's Expenses" "/income_statement/?time=month"
2024-01-01 custom "fava-sidebar-link" "All Documents" "/journal/?show=document"

Загальна конфігурація

  • Кілька файлів: Якщо ви завантажуєте кілька файлів .beancount, ви можете перемикатися між ними за допомогою спадного списку у верхньому лівому куті.
  • Зовнішній редактор: Налаштуйте інтерфейс для відкриття файлів безпосередньо у вашому локальному редакторі за допомогою опції $use-external-editor$ та обробника URL-адрес.
  • Мова: Встановіть мову інтерфейсу за допомогою опції $language$ або дозвольте їй автоматично визначати її з вашого браузера.
  • Експорт: Експортуйте будь-який відфільтрований перегляд журналу у форматі Beancount за допомогою кнопки Export.

5. Продуктивність і усунення несправностей

Обробка великих файлів

Для книг з тисячами транзакцій покращте продуктивність, виконавши такі дії:

  • Використання Includes: Розділіть свою книгу на кілька файлів за роком або місяцем і використовуйте директиву include.

    include "accounts.beancount"
    include "transactions/2023.beancount"
    include "transactions/2024.beancount"
  • Фільтрування: Використовуйте параметри часу та фільтра, щоб обмежити обсяг даних, що відображаються одночасно.

Поширені проблеми та виправлення

  • Інтерфейс не завантажується:

    1. Перевірте свій файл на наявність синтаксичних помилок за допомогою інструменту командного рядка bean-check.
    2. Шукайте повідомлення про помилки внизу веб-сторінки.
    3. Очистіть кеш вашого браузера.
  • Низька продуктивність:

    1. Зменште активний діапазон дат в інтерфейсі користувача.
    2. Спростіть складні запити BQL.
  • Помилки конфігурації: Переконайтеся, що назви опцій і типи спеціальних директив укладено в лапки.

    ; Правильно
    option "documents" "/path/to/docs"
    custom "fava-sidebar-link" "Label" "URL"

    ; Неправильно (викликає помилки)
    option documents "/path/to/docs"
    custom fava-sidebar-link "Label" "URL"