Актуально на 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 относительно проста:
- Файлы учета: Никаких изменений в ваших файлах
.beancountне требуется. - Установка: Вам необходимо будет установить новые отдельные пакеты, такие как
beanqueryиbeangulp, с помощьюpip. - Скрипты импорта: Если у вас есть пользовательские импортеры, вам нужно будет обновить их для использования нового API
beangulp. Это в основном включает изменение базового класса, от которого наследуются ваши импортеры, и корректировку некоторых сигнатур методов. - Fava: Популярный веб-интерфейс для Beancount, Fava, был обновлен для совместимости с v3. Убедитесь, что у вас установлена последняя версия Fava для бесперебойной работы.
По сути, Beancount v3 — это основополагающий выпуск, который оптимизирует архитектуру проекта, делая его более модульным и легким в обслуживании и расширении в долгосрочной перспективе. Хотя он требует некоторых корректировок в рабочих процессах пользователей, особенно в отношении импорта данных, он закладывает основу для будущего развития этого мощного инструмента учета.





