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

Beancount v3: Что нового?

Опубликовано Обновлено 5 мин чтенияMike ThriftMike Thrift
Beancount v3: Что нового?
Содержание страницы

Актуально на 2026-09-15.

Beancount версии 3, выпущенный в середине 2024 года, знаменует собой значительную архитектурную эволюцию популярного инструмента учета в виде открытого текста. Хотя он сохраняет обратную совместимость для пользовательских файлов учета, базовая структура и сопутствующие инструменты претерпели существенные изменения. Вот разбивка того, что нового в Beancount v3 — и что появилось в линейке 3.1–3.2 с момента первой публикации этого руководства.

Что касается синтаксиса и первых бухгалтерских книг, см. Справочник по синтаксису Beancount и Начало работы. Для получения информации о размещенном CLI, который объединяет проверку, запросы, импорт и отчеты, см. Справочник по CLI Beancount.

Более модульная и оптимизированная архитектура​

Наиболее значительным изменением в Beancount v3 является переход к более модульной экосистеме. Несколько ключевых функций, которые ранее были включены в ядро, были выделены в отдельные независимые проекты. Это делает ядро Beancount более компактным и позволяет более целенаправленно развивать отдельные компоненты.

Ключевые компоненты, которые теперь являются отдельными пакетами, включают:

  • beanquery: Мощный инструмент запросов в стиле SQL для ваших файлов учета теперь находится в собственном пакете.
  • beangulp: Это новый дом для фреймворка импорта данных, заменяющий прежний модуль beancount.ingest.
  • beanprice: Специализированный инструмент для получения цен на товары и акции.

Это разделение означает, что пользователям необходимо будет установить эти пакеты в дополнение к самому beancount, чтобы сохранить полную функциональность, к которой они привыкли в версии 2.

Изменения в инструментах командной строки и рабочих процессах​

Отражая новую модульную архитектуру, есть несколько заметных изменений в инструментах командной строки:

  • bean-report удален: Этот инструмент был удален. Теперь пользователям рекомендуется использовать bean-query (из пакета beanquery) для своих потребностей в отчетности.
  • Новый рабочий процесс импорта: Команды bean-extract и bean-identify были удалены из ядра. Новый подход с beangulp основан на сценариях. Пользователи теперь будут создавать свои собственные скрипты Python для обработки импорта данных из внешних источников, таких как банковские выписки.

Улучшения синтаксиса и функций​

Хотя основные принципы бухгалтерского учета остаются прежними, Beancount v3 вносит некоторые долгожданные изменения в свой синтаксис:

  • Более гибкие коды валют: Прежние ограничения на длину и символы для названий валют были смягчены. Теперь поддерживаются однозначные символы валют.
  • Расширенные флаги транзакций: Пользователи теперь могут использовать любую заглавную букву от A до Z в качестве флага для транзакций, что позволяет более детально классифицировать их.

Важно отметить, что эти изменения обратно совместимы, поэтому ваши существующие файлы учета Beancount v2 будут работать без каких-либо изменений.

Переписывание на C++ и производительность​

Одной из долгосрочных целей Beancount было переписывание его критически важных для производительности компонентов на C++. Первоначальный выпуск Beancount v3 не включал ядро на C++, и по состоянию на 2026-09-15 это остается верным: опубликованная линейка PyPI (через 3.2.3) по-прежнему является модульной веткой Python v3. Историческая работа по C++/Bazel находится в отдельной ветке cpp и не является частью пакетов, которые пользователи устанавливают с PyPI. Таким образом, повседневная производительность текущих выпусков v3 находится в том же классе, что и поздние версии v2, с постепенными улучшениями парсера и инструментов, а не с переписыванием на C++ на порядок величины.

С момента написания этой статьи (v3.1 → v3.2.x)​

Основные источники: файл проекта CHANGES, представления сравнения GitHub для 3.1.0…3.2.0, и PyPI beancount (последняя версия 3.2.3 по состоянию на 2026-09-15).

  • Линейка 3.1.x — Продолжение очистки упаковки и API после модульного разделения 3.0 (beanquery, beangulp, beanprice остаются отдельными установками).
  • 3.2.0 (2025-09-14) — Коммит выпуска в beancount/beancount; заметная работа, ориентированная на пользователя, в этом окне включает многофайловый bean-format, уточнения допусков/точности и обслуживание колес/CI (см. ссылку сравнения выше).
  • 3.2.1–3.2.3 (2026) — Последующие выпуски двоичных файлов и упаковки (включая тестовое покрытие Python 3.14 и каркасы документации, упомянутые в сводке 3.2.1 в списке рассылки). Установите с помощью pip install -U beancount и привяжите сопутствующие пакеты (beanquery, beangulp) к соответствующим мажорным версиям при обновлении.

Fava: Fava 1.30 добавил поддержку Beancount 3 (2024-12-29). Fava 1.30.13 (2026-05-19) прекратил поддержку Beancount 2 и ожидает beangulp для импортеров. Текущая линейка PyPI по состоянию на 2026-09-15 — 1.30.16. Объединяйте обновления Fava с бухгалтерской книгой Beancount 3.

Миграция с v2 на v3​

Для большинства пользователей миграция с Beancount v2 на v3 относительно проста:

  1. Файлы учета: Никаких изменений в ваших файлах .beancount не требуется.
  2. Установка: Вам необходимо будет установить новые отдельные пакеты, такие как beanquery и beangulp, с помощью pip.
  3. Скрипты импорта: Если у вас есть пользовательские импортеры, вам нужно будет обновить их для использования нового API beangulp. Это в основном включает изменение базового класса, от которого наследуются ваши импортеры, и корректировку некоторых сигнатур методов.
  4. Fava: Популярный веб-интерфейс для Beancount, Fava, был обновлен для совместимости с v3. Убедитесь, что у вас установлена последняя версия Fava для бесперебойной работы.

По сути, Beancount v3 — это основополагающий выпуск, который оптимизирует архитектуру проекта, делая его более модульным и легким в обслуживании и расширении в долгосрочной перспективе. Хотя он требует некоторых корректировок в рабочих процессах пользователей, особенно в отношении импорта данных, он закладывает основу для будущего развития этого мощного инструмента учета.

Дополнительное чтение​

Источник: https://beancount.io/ru/blog/2025/06/06/whats-new-in-beancount-v3

Опубликовано: 6 июня 2025 г.

Обновлено: 15 сентября 2026 г.