Перейти к основному содержимому

Руководство по веб-интерфейсу 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 * "Ежемесячная оплата аренды" #template
    Expenses:Housing:Rent 1500.00 USD
    Assets:Checking -1500.00 USD

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

Эффективно связывайте квитанции, выписки и другие файлы с вашими транзакциями.

  • Загрузка перетаскиванием:

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

  • Автоматическое связывание: Beancount может автоматически обнаруживать и связывать документы с транзакциями. Включите это с помощью следующих плагинов:

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

3. Запросы и анализ с помощью BQL

Страница Запрос позволяет выполнять запросы на языке запросов Beancount (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" "Расходы за этот месяц" "/income_statement/?time=month"
2024-01-01 custom "fava-sidebar-link" "Все документы" "/journal/?show=document"

Общая конфигурация

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

5. Производительность и устранение неполадок

Обработка больших файлов

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

  • Использование включений: Разделите свою книгу на несколько файлов по годам или месяцам и используйте директиву 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" "Метка" "URL"

    ; Неправильно (вызовет ошибки)
    option documents "/path/to/docs"
    custom fava-sidebar-link "Метка" "URL"