پرش به محتوای اصلی

ویژگیهای رابط کاربری

ویژگیهای اصلی رابط وب beancount.io را برای ویرایش، جستجو، بارگذاری اسناد و سفارشیسازی گردش کار Beancount خود کاوش کنید.

از ویرایشگر، فرم تراکنش و گزارشهای جستجو برای کار با دفتر کل خود استفاده کنید. دستورهای اجرایی زیر برای Fava استاندارد 1.30.16 با Beancount 3.2.3 و beanquery 0.2.0 هدفگذاری شدهاند؛ به راهاندازی محلی پینشده مراجعه کنید.

beancount.io از یک داشبورد جداگانه استفاده میکند. منبع محصول آن مسیرهای دفتر کل برای ویرایش، جستجو، اسناد و تنظیمات را تأیید میکند، همچنین مصرفکنندههایی برای چند گزینه نمایش Fava. این باعث نمیشود که میانبرهای صفحهکلید، قواعد درج، اجرای پلاگین یا مسیرهای URL Fava استاندارد تضمین سازگاری میزبانی شود. تصویر زیر داشبورد میزبانی را نشان میدهد، نه رابط استاندارد.

داشبورد دفتر کل beancount.io با نمودار روند خالص دارایی، موجودی حسابها و نوار دستیار هوش مصنوعی

دفتر کل زنده را کاوش کنید →

1. ویرایش و ورود داده

ویرایشگر تعبیهشده

ویرایشگر Fava استاندارد تکمیل خودکار برای حسابها، طرفهای پرداخت و برچسبها ارائه میدهد. از default-file برای انتخاب فایل منبع اولیه آن استفاده کنید. insert-entry همچنین مکاننما را در آخرین نشانگر درج در آن فایل قرار میدهد؛ این یک گزینه اصلی Beancount نیست.

2000-01-01 custom "fava-option" "default-file"
2024-01-01 custom "fava-option" "insert-entry" "^Expenses:Food$"

این قطعه فایل محتوی آن را انتخاب میکند. ورودیهای جدید بعد از ۱ ژانویه ۲۰۲۴ که با Expenses:Food مطابقت دارند، قبل از نشانگر درج میشوند مگر اینکه یک قاعده واجدتر بعدی یا حساب یک قید بعدی اولویت بگیرد. برای مثال کامل درج چندفایلی به اینجا مراجعه کنید.

افزودن تراکنشها

در Fava استاندارد، روی + کلیک کنید یا n را فشار دهید تا فرم تراکنش باز شود. فیلد روایت فاصله-جدا شده برچسبها و لینکها را میپذیرد، مانند Lunch #food ^receipt-001. نام حسابها باید از قبل دستورهای open داشته باشند.

این دفتر کل کامل را به عنوان ui-demo.beancount ذخیره کنید تا گزارشهای زیر را آزمایش کنید. هزینه مثبت یک بدهکار است؛ قید منفی پول نقد اعتبار آن است.

option "title" "UI Demo"
option "operating_currency" "USD"
2024-01-01 open Assets:Checking USD
  fava-uptodate-indication: TRUE
2024-01-01 open Income:Salary USD
2024-01-01 open Expenses:Food USD
 
2024-01-02 * "Salary"
  Assets:Checking    3000.00 USD
  Income:Salary     -3000.00 USD
 
2024-01-03 * "Groceries" #food
  Expenses:Food       400.00 USD
  Assets:Checking    -400.00 USD
 
2024-01-04 balance Assets:Checking 2600.00 USD

bea --file ui-demo.beancount check را اجرا کنید، سپس fava ui-demo.beancount. بررسی موفق میشود و موجودی ۲٬۶۰۰٫۰۰ USD است. یک تراکنش با تاریخ آینده و #template همچنان یک تراکنش واقعی است: آن برچسب آن را به یک قالب فرم بیاستفاده قابل استفاده مجدد تبدیل نمیکند. تراکنشهای فرضی را در یک دفتر کل سناریوی جداگانه نگه دارید.

2. مدیریت اسناد

Fava استاندارد میتواند اسناد را با انداختن آنها روی نام حسابها یا ردیفهای روزنامه بارگذاری کند. یک ریشه سند واقعی را تنظیم کنید و سلسله مراتب حساب آن را با حسابهای باز خود سازگار نگه دارید.

این قطعه اختیاری میتواند به ui-demo.beancount افزوده شود. ابتدا یک دایرکتوری documents در کنار دفتر کل ایجاد کنید. برای آزمایش کشف، یک فایل واقعی با نام 2024-01-03-receipt.pdf داخل documents/Expenses/Food/ قرار دهید.

option "documents" "documents"
plugin "fava.plugins.link_documents"
plugin "fava.plugins.tag_discovered_documents"

اینها ماژولهای واقعی هستند که در Fava 1.30.16 ارسال شدهاند. Beancount فایلهای تاریخدار در دایرکتوریهای حساب را کشف میکند؛ tag_discovered_documents برچسب #discovered را اضافه میکند. link_documents ابردیت document را به ورودیهای سند مطابقت میدهد و آنها را لینک میکند. این از محتوای رسید یک ارتباط تراکنش را استنتاج نمیکند. این ابردیت را مستقیماً زیر سربرگ موجود Groceries، قبل از قیدهای آن، اضافه کنید:

  document: "2024-01-03-receipt.pdf"

آن خط تورفته یک قطعه ابردیت است، نه یک دفتر کل مستقل. با وجود فایل، سند برچسب #linked دریافت میکند و ^dok-2024-01-03 را با تراکنش به اشتراک میگذارد. اسنادهای نامطابق تولید خطا میکنند. برای رفتار دقیق استاندارد، به پلاگین پیوند سند نسخهدار مراجعه کنید.

3. جستجو و تحلیل با BQL

صفحه Query در Fava استاندارد زبان جستجوی Beancount را اجرا میکند. قبل از بازتولید این نتایج کل-دفتر، فیلترهای زمانی/حساب جهانی را پاک کنید. آن فیلترهای رابط میتوانند ورودیها را قبل از اجرای جستجو حذف کنند.

نتایج میتوانند به صورت CSV دانلود شوند. پشتیبانی نمودار به نوع نتایج بستگی دارد: کمک استاندارد دقیقاً دو ستون را توصیف میکند، با یک تاریخ یا رشته و سپس یک موجودی. یک جفت دلخواه از ستونهای عددی نمودار را تضمین نمیکند.

مثالهای عملی جستجو

این جستجوها را علیه ui-demo.beancount در صفحه Query فاوا اجرا کنید یا هر جستجوی نقلقولشده را به bea --file ui-demo.beancount query بدهید.

خلاصه هزینه ماهانه:

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 account;

نتیجه مورد انتظار: Expenses:Food، ۴۰۰٫۰۰ USD.

درآمد در برابر هزینهها بر اساس ماه:

SELECT YEAR(date) AS year, MONTH(date) AS month,
       ROOT(account, 1) AS category, currency,
       SUM(number) AS signed_total
FROM postings
WHERE account ~ '^(Income|Expenses):'
GROUP BY year, month, category, currency
ORDER BY year, month, category, currency;
سالماهدستهارزجمع امضا شده
20241ExpensesUSD400.00
20241IncomeUSD-3000.00

جستجو علامات Beancount را حفظ میکند و واحدها را جداگانه بر اساس ارز گروهبندی میکند. درآمد ۳٬۰۰۰٫۰۰ USD منهای هزینهها ۴۰۰٫۰۰ USD برابر ۲٬۶۰۰٫۰۰ USD است. این یک گزارش واحد است، نه یک گزارش تبدیل یا مبنا-هزینه. IIF در beanquery 0.2.0 در دسترس نیست، و -position یکتایی پشتیبانی نمیشود؛ گروهبندی دو دسته حساب هر دو عملیات را اجتناب میکند.

4. سفارشیسازی و گردش کار

سفارشیسازی نمایش

این دستورهای Fava را به دفتر کل مثال اضافه کنید تا حسابهای با موجودی صفر پنهان شوند و شاخههای سرمایهگذاری جمع شوند:

2000-01-01 custom "fava-option" "show-closed-accounts" "false"
2000-01-01 custom "fava-option" "show-accounts-with-zero-balance" "false"
2000-01-01 custom "fava-option" "collapse-pattern" "^Assets:Investments"

آنها بر درخت حسابهای گزارش تأثیر میگذارند. حسابهای با موجودی غیرصفر قابل دید باقی میمانند. فرمهای اصلی مانند option "show-closed-accounts" "false" اعتبارسنجی Beancount را رد میکنند.

ابردیت fava-uptodate-indication: TRUE در نمونه روی خط خود تورفته زیر open قرار دارد. آن را روی خط open قرار ندهید یا بولی را نقلقول نکنید. یک بررسی موجودی آخرین موفق سبز تولید میکند؛ بررسی ناموفق قرمز تولید میکند؛ تراکنش بعدی زرد تولید میکند. تأیید ۴ ژانویه سبز است. یک نشانگر تازگی خاکستری جداگانه نیز ممکن است ظاهر شود زیرا این تاریخها کهنه هستند.

لینکهای نوار جانبی

برای نمونه استاندارد با عنوان UI Demo، این مسیرهای کامل به گزارشهای آن منجر میشوند:

2024-01-01 custom "fava-sidebar-link" "January Expenses" "/ui-demo/income_statement/?time=2024-01"
2024-01-01 custom "fava-sidebar-link" "All Documents" "/ui-demo/documents/"

این مسیرها فرض میکنند Fava استاندارد در ریشه میزبان نصب شده است. /ui-demo را با نام دفتر کل واقعی خود جایگزین کنید و هر پیشوند نصب سرور را شامل کنید. برای رفتار آزمایششده /jump و مرز مسیریابی میزبانی به لینکهای نوار جانبی سفارشی مراجعه کنید.

تنظیمات عمومی

شروع Fava استاندارد با چند فایل اصلی، دفترهای کل جداگانه در تغییردهنده دفتر کل آن ایجاد میکند. فایلهای واردشده از طریق include بخشی از یک دفتر کل باقی میمانند و به عنوان منابع قابل ویرایش ظاهر میشوند؛ آنها کتابهای جداگانه نیستند.

از گزینههای Fava برای language، default-file و use-external-editor استفاده کنید. یک ویرایشگر خارجی به یک مدیریتکننده beancount:// و دسترسی به فایلهای منبع نیاز دارد. ماژولهای افزونه واقعی استاندارد همچنین شامل fava.ext.auto_commit و fava.ext.portfolio_list هستند. افزونهها از custom "fava-extension" با پیششرطهای خود استفاده میکنند؛ آنها از دستورهای plugin که در بالا استفاده شدند متمایز هستند. به کمک افزونه نسخهدار Fava مراجعه کنید.

5. عملکرد و عیبیابی

مدیریت فایلهای بزرگ

از شاملها برای سازماندهی دفتر کل بر اساس حساب یا دوره استفاده کنید. Beancount همچنان فایلهای شاملشده را بارگذاری میکند، بنابراین تقسیم یک کتاب به خودی خود ورودی گزارش را کاهش نمیدهد. تاریخهای نمایشی را محدود کنید و جستجوهای پرهزینه را ساده کنید وقتی گزارش کوچکتر نیاز دارید.

مشکلات رایج و راهحلها

  • خطاهای دفتر کل: bea check را اجرا کنید و گزارش Errors فاوا را بررسی کنید. یک صفحه ممکن است رندر شود در حالی که بارگذاریکننده خطا دارد.
  • رفتار غیرمنتظره گزینه: زمان اجرای آزمایششده را بررسی کنید و از دستورهای سفارشی تاریخدار Fava استفاده کنید. bea check به تنهایی نمیتواند یک گزینه ناشناخته Fava را شناسایی کند.
  • مجموعهای غیرمنتظره جستجو: فیلترهای جهانی را پاک کنید، تاریخچه باز را شامل کنید و ارزها را جدا نگه دارید.
  • اسناد گمشده: بررسی کنید دایرکتوری وجود دارد، حساب باز است، نام فایل با یک تاریخ معتبر شروع میشود و ابردیت تراکنش با سند مطابقت دارد.

برای مقایسه، اینها مثالهای عمداً غیرمعتبر هستند. آنها نباید در یک دفتر کل کارکننده کپی شوند:

option "insert-entry" "Expenses:Food"
custom "fava-sidebar-link" "Label" "/jump?time=month"

اولی از یک گزینه اصلی ناشناخته استفاده میکند. دومی تاریخ الزامی را حذف میکند. مرجع ویژگیهای استاندارد رفتار رابط را برای این انتشار توصیف میکند.

منبع: https://beancount.io/fa/docs/Tips/ui-features