Преминете към основното съдържание

Основни вградени плъгини за Beancount, които трябва да познавате

· 11 минути четене
Mike Thrift
Mike Thrift
Marketing Manager

Силата на Beancount се крие не само в неговия текстов формат, но и в неговата разширяемост чрез плъгини. Вградените плъгини са готови модули, които подобряват функционалността на Beancount, автоматизират досадни задачи и налагат най-добрите практики в счетоводството. В това изчерпателно ръководство ще разгледаме всички вградени плъгини, налични в Beancount, и как да ги използвате ефективно.

Какво представляват плъгините на Beancount?

Плъгините на Beancount са Python модули, които обработват записите във вашия леджър, за да добавят възможности за автоматизация, валидиране или трансформация. Те се изпълняват по време на фазата на зареждане на вашия леджър файл и могат да:

  • Автоматизират повтарящи се задачи (напр. създаване на декларации за сметки)
  • Валидират целостта на данните (напр. проверка за дублирани транзакции)
  • Трансформират записи (напр. генериране на ценови записи от транзакции)
  • Налагат счетоводни правила (напр. само една стока за всяка сметка)

Как да използвате плъгини

За да активирате плъгин във вашия Beancount файл, добавете директивата plugin в горната част на вашия леджър:

plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.implicit_prices"

Някои плъгини приемат опции за конфигурация:

plugin "beancount.plugins.check_commodity" "USD,EUR,CAD"

Категории вградени плъгини

Вградените плъгини на Beancount попадат в четири основни категории:

1. Плъгини за автоматизация

2. Плъгини за валидиране

3. Плъгини за трансформация

4. Мета-плъгини


1. Плъгини за автоматизация

Тези плъгини автоматизират повтарящи се счетоводни задачи, спестявайки ви време и намалявайки ръчните грешки.

auto_accounts - Автоматични декларации на сметки

Какво прави: Автоматично вмъква директиви Open за сметки, които се появяват в транзакции, но не са били изрично декларирани.

Защо да го използвате: Елиминира необходимостта от ръчно деклариране на всяка сметка преди използването ѝ. Идеален за бързо начало или за потребители, които предпочитат минимален обем шаблонен код.

Пример:

plugin "beancount.plugins.auto_accounts"

2026-01-01 * "Кафене"
Expenses:Food:Coffee 4.50 USD
Assets:Cash -4.50 USD

Без плъгина ще трябва да добавите ръчно:

2025-12-01 open Expenses:Food:Coffee
2025-12-01 open Assets:Cash

Кога да го използвате: Идеален за начинаещи или за тези, които искат по-малко подробен леджър. Въпреки това, изричните декларации на сметки могат да помогнат за улавяне на печатни грешки.


close_tree - Автоматично затваряне на йерархия от сметки

Какво прави: Когато затворите родителска сметка, този плъгин автоматично затваря всички нейни подчинени сметки.

Защо да го използвате: Поддържа последователност във вашата йерархия от сметки. Ако затворите Assets:Investments, всички подсметки като Assets:Investments:Stocks и Assets:Investments:Bonds ще бъдат затворени автоматично.

Пример:

plugin "beancount.plugins.close_tree"

2025-06-30 close Assets:Investments

; Тези ще бъдат затворени автоматично:
; Assets:Investments:Stocks
; Assets:Investments:Bonds
; Assets:Investments:RealEstate

Кога да го използвате: При преструктуриране на вашата йерархия от сметки или затваряне на цели категории сметки.


implicit_prices - Автоматично генериране на ценови записи

Какво прави: Синтезира директиви Price от записи на транзакции, които включват себестойност (@) или цени (@@).

Защо да го използвате: Попълва вашата база данни с цени автоматично от вашите транзакции, позволявайки точно отчитане на пазарната стойност без ръчно въвеждане на цени.

Пример:

plugin "beancount.plugins.implicit_prices"

2026-01-02 * "Покупка на акции AAPL"
Assets:Investments:Stocks 10 AAPL @ 150.00 USD
Assets:Cash -1500.00 USD

Това автоматично генерира:

2026-01-02 price AAPL  150.00 USD

Кога да го използвате: От съществено значение за проследяване на инвестиции и мултивалутно счетоводство, където искате автоматична история на цените.


2. Плъгини за валидиране

Тези плъгини налагат целостта на данните и най-добрите практики в счетоводството, улавяйки грешките, преди да се превърнат в проблеми.

noduplicates - Откриване на дублирани транзакции

Какво прави: Проверява дали няма две идентични транзакции чрез изчисляване и сравняване на хешове на данните от транзакциите.

Защо да го използвате: Предотвратява случайни дублиращи се записи, особено при импортиране на транзакции от множество източници.

Пример:

plugin "beancount.plugins.noduplicates"

2026-01-02 * "Плащане на наем"
Expenses:Rent 1200.00 USD
Assets:Checking -1200.00 USD

; Това би предизвикало грешка:
2026-01-02 * "Плащане на наем"
Expenses:Rent 1200.00 USD
Assets:Checking -1200.00 USD

Кога да го използвате: Винаги се препоръчва, особено ако импортирате от банкови извлечения или използвате множество източници на данни.


check_commodity - Валидиране на декларации за стоки

Какво прави: Гарантира, че всички стоки, използвани във вашия леджър, имат съответните директиви Commodity.

Защо да го използвате: Налага изрични декларации за стоки, помагайки ви да поддържате чист списък с активи и валути.

Пример:

plugin "beancount.plugins.check_commodity"

2015-01-01 commodity USD
2020-01-01 commodity AAPL

; Това би предизвикало грешка без декларация за стока:
2026-01-02 * "Покупка на Биткойн"
Assets:Crypto 0.5 BTC @ 45000 USD
Assets:Cash -22500.00 USD

Кога да го използвате: Препоръчва се за поддържане на стриктно проследяване на стоки и предотвратяване на печатни грешки в борсовите тикери.

check_average_cost - Валидиране на цената на придобиване

Какво прави: Проверява дали цената на придобиване (cost basis) е правилно запазена в трансакциите, особено при използване на осчетоводяване по средна цена.

Защо да го използвате: Гарантира, че отчитането на разходите ви остава точно за данъчни отчети и изчисления на капиталови печалби.

Кога да го използвате: Критично важно за инвестиционни портфейли и всеки сценарий, при който точното проследяване на себестойността е от значение.


check_closing - Валидиране на закриването на баланса

Какво прави: Разширява метаданните closing в проверки на баланса, гарантирайки, че позициите са нула след затварящи сделки.

Защо да го използвате: Потвърждава, че когато продадете цяла позиция, балансът наистина е нула (не остават дробни части от акции).

Пример:

plugin "beancount.plugins.check_closing"

2026-01-02 * "Затваряне на цялата позиция в AAPL" #closing
Assets:Investments:Stocks -100 AAPL {150.00 USD}
Assets:Cash 15000.00 USD
Income:Investments:Gains -500.00 USD

Тагът #closing указва на плъгина да провери дали позицията ви в AAPL е нула след тази трансакция.

Кога да го използвате: При продажба на цели позиции, за да сте сигурни, че не е останало нищо.


coherent_cost - Проверка за съгласуваност на валута/цена

Какво прави: Валидира, че валутите не се използват непоследователно — както със, така и без анотации за себестойност.

Защо да го използвате: Предотвратява смесването на чисти валути (като 100 USD) с валути с цена (като 100 USD {1.2 CAD}), което може да причини счетоводни грешки.

Кога да го използвате: Препоръчва се за книги с множество валути за поддържане на последователност.


leafonly - Прилагане на крайни сметки

Какво прави: Гарантира, че само крайните сметки (сметки без подсметки) получават записи.

Защо да го използвате: Налага чиста йерархия на сметките, където обобщаващи сметки като Expenses:Food нямат директни записи, а само техните подсметки като Expenses:Food:Groceries и Expenses:Food:Restaurants.

Пример:

plugin "beancount.plugins.leafonly"

; Това би предизвикало грешка:
2026-01-02 * "Покупка на хранителни стоки"
Expenses:Food 50.00 USD ; Грешка: Трябва да се запише в крайна сметка
Assets:Cash -50.00 USD

; Правилен начин:
2026-01-02 * "Покупка на хранителни стоки"
Expenses:Food:Groceries 50.00 USD ; Правилно: Запис в крайна сметка
Assets:Cash -50.00 USD

Кога да го използвате: Когато искате да поддържате стриктно йерархично счетоводство с ясна категоризация.


nounused - Откриване на неизползвани сметки

Какво прави: Идентифицира сметки, които са били отворени, но никога не са били реално използвани в трансакции.

Защо да го използвате: Помага ви да изчистите декларациите на сметките си и да идентифицирате потенциални печатни грешки или изоставени сметки.

Кога да го използвате: Периодично, за одит и почистване на структурата на вашите сметки.


onecommodity - Една стока на сметка

Какво прави: Налага изискването всяка сметка да съдържа само един вид стока (commodity).

Защо да го използвате: Предотвратява смесването на различни активи в една и съща сметка, което по принцип е добра счетоводна практика.

Пример:

plugin "beancount.plugins.onecommodity"

2026-01-02 * "Покупка на акции"
Assets:Investments 10 AAPL @ 150 USD
Assets:Cash -1500.00 USD

; Това би предизвикало грешка:
2026-01-03 * "Покупка на още акции"
Assets:Investments 5 GOOGL @ 140 USD ; Грешка: Различна стока
Assets:Cash -700.00 USD

Кога да го използвате: Когато предпочитате стриктно разделение на сметките (една сметка за всяка акция/актив).


sellgains - Валидиране на капиталовите печалби

Какво прави: Проверява декларираните капиталови печалби спрямо изчислените печалби от продажби на партиди, гарантирайки точността на вашите изчисления за печалба/загуба.

Защо да го използвате: Улавя грешки при ръчни изчисления на капиталови печалби, което е критично за точното данъчно отчитане.

Пример:

plugin "beancount.plugins.sellgains"

2026-01-02 * "Продажба на акции на AAPL"
Assets:Investments:Stocks -10 AAPL {140.00 USD}
Assets:Cash 1500.00 USD
Income:Investments:Gains -100.00 USD ; Плъгинът валидира, че това е правилно

Плъгинът ще провери: Приходи от продажба (1500) - Цена на придобиване (1400) = Печалба (100)

Кога да го използвате: От съществено значение за всеки, който търгува с акции, криптовалути или други активи, при които капиталовите печалби са важни.


unique_prices - Проверка за уникалност на цените

Какво прави: Гарантира, че има само един запис на цена за стока на определена дата.

Защо да го използвате: Предотвратява конфликтни данни за цените, които биха могли да доведат до неправилни оценки.

Кога да го използвате: Препоръчва се при ръчно въвеждане на цени или импортиране от множество източници на цени.


3. Плъгини за трансформация

Тези плъгини модифицират или подобряват данните във вашата счетоводна книга по полезни начини.

currency_accounts - Сметки за валутна търговия

Какво прави: Внедрява сметки за валутна търговия за изрично проследяване на форекс конверсии.

Защо да го използвате: Осигурява детайлно проследяване на трансакциите за конвертиране на валута, полезно за счетоводни стандарти, които го изискват.

Кога да го използвате: Когато трябва да проследявате форекс печалби/загуби отделно или да отговаряте на специфични счетоводни изисквания.


commodity_attr - Валидиране на атрибутите на стоките

Какво прави: Валидира, че директивите за стоки имат необходимите атрибути (като export, name и т.н.).

Защо да го използвате: Гарантира, че метаданните за вашите стоки са пълни и последователни.

Кога да го използвате: Когато поддържате подробни метаданни за стоки за целите на отчитане или експорт.


4. Мета-плъгини

Тези плъгини са колекции от други плъгини за удобство.

auto — Всички автоматични плъгини

Какво прави: Активира колекция от „разхлабени“ или автоматични плъгини в една директива.

Кога да се използва: Бърза настройка за потребители, които искат максимална автоматизация с минимална конфигурация.


pedantic — Всички плъгини за валидация

Какво прави: Активира всички плъгини за строга валидация едновременно.

Защо да се използва: Налага максимална цялост на данните и счетоводна стриктност. Страхотно за производствени главни книги или когато точността е от първостепенно значение.

Пример:

plugin "beancount.plugins.pedantic"

; Това е еквивалентно на активирането на:
; - check_commodity
; - check_average_cost
; - coherent_cost
; - leafonly
; - noduplicates
; - nounused
; - onecommodity
; - sellgains
; - unique_prices

Кога да се използва: За производствени главни книги, където искате максимална валидация и сте готови да поддържате по-строги счетоводни практики.


Препоръчителни конфигурации на плъгини

За начинаещи

plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.noduplicates"
plugin "beancount.plugins.implicit_prices"

Този минимален набор осигурява автоматизация, като същевременно предотвратява чести грешки.

За инвеститори

plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.implicit_prices"
plugin "beancount.plugins.sellgains"
plugin "beancount.plugins.check_average_cost"
plugin "beancount.plugins.unique_prices"

Фокусира се върху проследяването на инвестициите и точността на капиталовите печалби.

За строго счетоводство

plugin "beancount.plugins.pedantic"
plugin "beancount.plugins.sellgains"
plugin "beancount.plugins.check_closing"

Максимална валидация за производствени среди.

Конфигурация по подразбиране в Beancount.io

В Beancount.io включваме плъгина auto_accounts по подразбиране във всички нови файлове на главната книга:

plugin "beancount.plugins.auto_accounts"

Това осигурява отличен баланс между леснота на използване и функционалност за бързо начало.


Най-добри практики

  1. Започнете с минимум, добавяйте според нуждите: Започнете с auto_accounts и noduplicates, след което добавете плъгини за валидация, когато вашата главна книга се развие.

  2. Тествайте плъгините поотделно: Когато добавяте няколко плъгина, активирайте ги един по един, за да разберете тяхното въздействие.

  3. Четете внимателно съобщенията за грешки: Грешките от плъгините често показват реални счетоводни проблеми, които се нуждаят от коригиране.

  4. Използвайте pedantic за производство: След като работният ви процес е установен, помислете за активиране на строга валидация.

  5. Комбинирайте с персонализирани плъгини: Нативните плъгини работят заедно с персонализирани такива, като например плъгина за прогнозиране, за максимална функционалност.


Отвъд нативните плъгини

Докато нативните плъгини осигуряват основната функционалност, екосистемата на Beancount включва много плъгини, разработени от общността, за специализирани нужди:

  • fava.plugins.forecast — За прогнозиране на повтарящи се трансакции
  • fava.plugins.link_documents — За свързване на трансакции с файлове с касови бележки
  • Персонализирани импортери за банкови CSV формати
  • Данъчни калкулатори и отчети

Разгледайте екосистемата на Beancount за повече опции.


Заключение

Нативните плъгини на Beancount превръщат счетоводството в обикновен текст от ръчен процес в автоматизирана, валидирана и стабилна система за финансово управление. Като разберете и използвате тези вградени инструменти, можете да:

  • ✅ Автоматизирате досадни задачи по счетоводно отчитане
  • ✅ Улавяте грешки, преди да са се превърнали в проблеми
  • ✅ Поддържате строга цялост на данните
  • ✅ Генерирате точни финансови отчети
  • ✅ Се фокусирате върху финансовите анализи, вместо върху въвеждането на данни

Започнете да експериментирате с тези плъгини във вашата главна книга днес. Започнете с auto_accounts и implicit_prices, след което постепенно добавяйте плъгини за валидация, докато вашите счетоводни практики се усъвършенстват.

Готови ли сте да изпробвате тези плъгини? Отидете на Beancount.io и започнете да ги използвате във вашия файл на главната книга още днес!


Източници


Имате въпроси относно плъгините на Beancount? Присъединете се към дискусията в нашия форум на общността или разгледайте нашата документация.

References: