سیستم موجودی Beancount یک ویژگی قدرتمند برای ردیابی داراییهایی است که در طول زمان خریداری و فروخته میشوند، مانند سهام، صندوقهای سرمایهگذاری مشترک یا ارزهای خارجی. این سیستم امکان ردیابی دقیق بهای تمامشده را فراهم میکند که برای محاسبه سود سرمایه و درک عملکرد پرتفوی ضروری است. این آموزش مکانیکهای اصلی مدیریت موجودیها در دفتر کل شما را پوشش میدهد.
مفاهیم اصلی
در قلب خود، مدیریت موجودی حول ردیابی موقعیتها میچرخد. یک «موقعیت» به سادگی مقداری از یک کالا است که در یک حساب نگهداری میشود. Beancount بین دو نوع بنیادین موقعیت تمایز قائل میشود.
انواع موقعیتها
-
موقعیت ساده (بدون بهای تمامشده): این یک ثبت موجودی استاندارد است. مقداری از یک کالا را بدون هیچ هزینه تحصیل مرتبط نشان میدهد. برای وجه نقد یا تأیید موجودی ساده مناسب است.
Assets:Bank:Checking 100.00 USD -
موقعیت با بهای تمامشده: این نوع موقعیت نه تنها تعداد واحدها و کالا را شامل میشود، بلکه هزینهای که با آن تحصیل شده است را نیز در بر میگیرد. این پایه و اساس ردیابی موجودی است. بهای تمامشده درون آکولاد
{}مشخص میشود.Assets:Invest:VTSAX 10 VTSAX {100.00 USD, "lot-1"}در این مثال، ما ۱۰ واحد از
VTSAXرا نگهداری میکنیم. هر واحد با هزینه ۱۰۰.۰۰ دلار آمریکا تحصیل شده است. این دسته خاص از سهام به عنوان یک «لات» شناسایی میشود.
عملیات موجودی
دو عملیات اصلی وجود دارد که میتوانید روی یک موجودی انجام دهید:
-
افزایشها (افزودن به موجودی): وقتی کالایی میخرید، موجودی خود را افزایش میدهید. لات جدیدی با تعداد مشخصی واحد و بهای تمامشده ایجاد میکنید.
2024-01-15 * "خرید سهام" Assets:Invest:STOCK 50 STOCK {25.00 USD, "lot-1"} Assets:Bank:Checking -1250.00 USDدر اینجا، ما ۵۰ واحد از
STOCKرا با هزینه هر واحد ۲۵.۰۰ دلار آمریکا میخریم. این یک لات در حسابAssets:Invest:STOCKایجاد میکند. -
کاهشها (حذف از موجودی): وقتی کالایی میفروشید، موجودی خود را کاهش میدهید. باید مشخص کنید که از کدام لات میفروشید. این کار با ارائه اطلاعات منطبق درون آکولاد انجام میشود.
2024-01-20 * "فروش سهام" Assets:Invest:STOCK -25 STOCK {25.00 USD} Assets:Bank:Checking 625.00 USDدر این تراکنش، ما ۲۵ واحد از
STOCKرا از لاتی که با ۲۵.۰۰ دلار آمریکا به ازای هر واحد خریداری شده بود، میفروشیم.
روشهای ثبت
وقتی موجودی را کاهش میدهید، Beancount به یک قاعده نیاز دارد تا تصمیم بگیرد اگر چندین لات با کاهش مطابقت دارند، از کدام لات خاص برداشت کند. این قاعده «روش تخصیص» نامیده میشود. میتوانید یک پیشفرض برای کل فایل با یک گزینه تعیین کنید، یا به یک حساب روش خودش را در دستور open بدهید.
Beancount 3.2.3 هفت نام روش را میپذیرد: STRICT (پیشفرض)، STRICT_WITH_SIZE، NONE، FIFO، LIFO، HIFO و AVERAGE. شش مورد از آنها پیادهسازی شدهاند؛ AVERAGE تجزیه میشود اما در لحظهای که باید یک کاهش را تخصیص دهد، خطا صادر میکند، همانطور که بخش AVERAGE در زیر نشان میدهد.
1. STRICT (پیشفرض)
روش STRICT پیشفرض و ایمنترین روش تخصیص است. تطبیق صریح و بدون ابهام را الزامی میکند.
2024-01-01 open Assets:Invest:STOCK "STRICT"- نیاز به تطبیق دقیق لات: مشخصکننده بهای تمامشده در ثبت کاهش (
{...}) باید یک لات واحد را شناسایی کند — بر اساس بهای تمامشده، تاریخ تحصیل، برچسب، یا هر ترکیبی از آنها. - خطا در تطبیقهای مبهم: اگر مشخصکننده با بیش از یک لات مطابقت داشته باشد، Beancount به جای حدس زدن، یک
AmbiguousMatchErrorصادر میکند. - استثنا: اگر یک کاهش دقیقاً کل تعداد واحدی را که مشخصکننده با آن مطابقت دارد حذف کند، یک مشخصکننده خالی (
{}) مجاز است و کاهش بین آن لاتها تقسیم میشود.
این دفتر کل دو لات نگهداری میکند و یکی از آنها را با نامبردن بهای تمامشدهاش میفروشد، که بدون ابهام است:
1970-01-01 commodity STK
1970-01-01 open Assets:Broker:Strict STK "STRICT"
1970-01-01 open Assets:Broker:Cash USD
1970-01-01 open Income:Gains USD
2024-01-10 * "خرید لات اول"
Assets:Broker:Strict 10 STK {100.00 USD}
Assets:Broker:Cash -1000.00 USD
2024-02-10 * "خرید لات دوم"
Assets:Broker:Strict 10 STK {120.00 USD}
Assets:Broker:Cash -1200.00 USD
; بهای تمامشده دقیقاً یک لات را شناسایی میکند، پس STRICT برآورده میشود.
2024-06-01 * "فروش لات ۱۲۰.۰۰ دلاری"
Assets:Broker:Strict -10 STK {120.00 USD} @ 150.00 USD
Assets:Broker:Cash 1500.00 USD
Income:Gainsبدون خطا بارگذاری میشود، ۳۰۰.۰۰ دلار سود را به Income:Gains تخصیص میدهد و 10 STK {100.00 USD} را در حساب باقی میگذارد.
ثبت آخر را با یک مشخصکننده خالی جایگزین کنید و همان فایل شکست میخورد:
; تحت STRICT رد میشود: "-10 STK {}" با هر دو لات مطابقت دارد.
2024-06-01 * "فروش ۱۰ سهم"
Assets:Broker:Strict -10 STK {} @ 150.00 USD
Assets:Broker:Cash 1500.00 USD
Income:GainsBeancount گزارش میدهد Ambiguous matches for "-10 STK {}" و نامزدها را فهرست میکند. اما فروش کل موقعیت اشکالی ندارد، چون چیزی برای انتخاب باقی نمیماند:
; تحت STRICT مجاز است: -20 STK کل دارایی است، پس مشخصکننده
; خالی بین هر دو لات تقسیم میشود.
2024-06-01 * "بستن موقعیت"
Assets:Broker:Strict -20 STK {} @ 150.00 USD
Assets:Broker:Cash 3000.00 USD
Income:Gainsاین ۸۰۰.۰۰ دلار سود را تخصیص میدهد — ۳٬۰۰۰.۰۰ دلار عایدی در مقابل ۱٬۰۰۰.۰۰ + ۱٬۲۰۰.۰۰ دلار بهای تمامشده — و حساب را خالی میگذارد. این ویژگی خودِ STRICT است، نه چیزی که مجبور باشید برای آن به STRICT_WITH_SIZE سوئیچ کنید.
2. FIFO (اولین وارده، اولین صادره)
روش FIFO به طور خودکار کاهشها را ابتدا در مقابل قدیمیترین لاتهای موجود تخصیص میدهد.
2024-01-01 open Assets:Invest:STOCK "FIFO"- حل خودکار ابهام: ابهام را با انتخاب قدیمیترین لاتهای منطبق برطرف میکند.
- تطبیق زمانی: فرض میکنید داراییهایی را میفروشید که طولانیترین مدت نگهداری کردهاید. چندین مرجع مالیاتی این را به عنوان پیشفرض وقتی لاتی را شناسایی نکردهاید، در نظر میگیرند.
3. LIFO (آخرین وارده، اولین صادره)
روش LIFO نقطه مقابل FIFO است. کاهشها را ابتدا در مقابل جدیدترین لاتهای موجود تخصیص میدهد.
2024-01-01 open Assets:Invest:STOCK "LIFO"- ترتیب زمانی معکوس: جدیدترین لاتهای منطبق تحصیلشده را انتخاب میکند.
- جدیدترین، نه گرانترین: LIFO تنها بر اساس تاریخ تحصیل انتخاب میکند. اتفاقاً وقتی قیمتها در حال افزایش بودهاند، سهام گرانترین را میفروشد، اما اگر جدیدترین لات شما ارزانترین باشد — که مثال زیر دقیقاً برای نشاندادن آن ساخته شده — LIFO بزرگترین سود را محقق میکند، نه کوچکترین. روشی که همیشه گرانترین سهام را میفروشد
HIFOاست که در ادامه توضیح داده میشود.
4. HIFO (بالاترین قیمت هنگام ورود، خروج اول)
روش HIFO کاهشها را ابتدا در مقابل گرانترین لاتهای موجود تخصیص میدهد، بدون توجه به تاریخ آنها.
2024-01-01 open Assets:Invest:STOCK "HIFO"- تطبیق بر اساس رتبه بهای تمامشده: لاتهای منطبق با بالاترین بهای تمامشده را انتخاب میکند.
- کوچکترین سود محققشده: برای یک قیمت فروش معین، فروش گرانترین سهام کوچکترین سود (یا بزرگترین زیان) را محقق میکند. اینکه آیا مجاز به استفاده از آن هستید یک مسئله قضایی است — برای مثال در ایالات متحده، انتخاب هر لات اصلاً نیازمند شناسایی خاص در زمان فروش است — پس با این روش به عنوان یک مکانیزم دفتری برخورد کنید و انتخاب مالیاتی را جداگانه تأیید کنید.
5. مقایسه FIFO، LIFO و HIFO بر روی همان دستهها
این سه روش تنها زمانی متفاوت هستند که قدیمیترین، جدیدترین و گرانترین لات سه لات متفاوت باشند. این دفتر کل دقیقاً همین را ترتیب میدهد — لات A قدیمیترین است، لات C جدیدترین، و لات میانی B گرانترین — و سپس ۱۰ سهم را از سه حسابی که فقط در روش تخصیصشان تفاوت دارند، میفروشد:
1970-01-01 commodity STK
1970-01-01 open Assets:Broker:Fifo STK "FIFO"
1970-01-01 open Assets:Broker:Lifo STK "LIFO"
1970-01-01 open Assets:Broker:Hifo STK "HIFO"
1970-01-01 open Assets:Broker:Cash USD
1970-01-01 open Income:Gains USD
; لات A - قدیمیترین، با ۱۰۰.۰۰ دلار به ازای هر سهم
2024-01-10 * "خرید لات A"
Assets:Broker:Fifo 10 STK {100.00 USD}
Assets:Broker:Lifo 10 STK {100.00 USD}
Assets:Broker:Hifo 10 STK {100.00 USD}
Assets:Broker:Cash -3000.00 USD
; لات B - گرانترین، با ۱۲۰.۰۰ دلار به ازای هر سهم
2024-02-10 * "خرید لات B"
Assets:Broker:Fifo 10 STK {120.00 USD}
Assets:Broker:Lifo 10 STK {120.00 USD}
Assets:Broker:Hifo 10 STK {120.00 USD}
Assets:Broker:Cash -3600.00 USD
; لات C - جدیدترین، با ۹۰.۰۰ دلار به ازای هر سهم
2024-03-10 * "خرید لات C"
Assets:Broker:Fifo 10 STK {90.00 USD}
Assets:Broker:Lifo 10 STK {90.00 USD}
Assets:Broker:Hifo 10 STK {90.00 USD}
Assets:Broker:Cash -2700.00 USD
; ۱۰ سهم از هر حساب را با ۱۵۰.۰۰ دلار بفروشید و بگذارید
; روش تخصیص هر حساب تعیین کند کدام لات خارج میشود.
2024-06-01 * "فروش ۱۰ سهم از هر حساب"
Assets:Broker:Fifo -10 STK {} @ 150.00 USD
Assets:Broker:Lifo -10 STK {} @ 150.00 USD
Assets:Broker:Hifo -10 STK {} @ 150.00 USD
Assets:Broker:Cash 4500.00 USD
Income:Gainsبا صفر خطا بارگذاری میشود و ۱٬۴۰۰.۰۰ دلار سود را به طور کل تخصیص میدهد، که اینگونه تقسیم میشود:
| حساب | روش | لات تخصیصیافته | بهای تمامشده | سود محققشده | لاتهای باقیمانده |
|---|---|---|---|---|---|
Assets:Broker:Fifo | FIFO | لات A، ۲۰۲۴-۰۱-۱۰ | $100.00 | $500.00 | 10 @ $120.00, 10 @ $90.00 |
Assets:Broker:Lifo | LIFO | لات C، ۲۰۲۴-۰۳-۱۰ | $90.00 | $600.00 | 10 @ $100.00, 10 @ $120.00 |
Assets:Broker:Hifo | HIFO | لات B، ۲۰۲۴-۰۲-۱۰ | $120.00 | $300.00 | 10 @ $100.00, 10 @ $90.00 |
سطر LIFO همان چیزی است که ارزش خیرهشدن دارد: بزرگترین سود را از بین این سه محقق کرد، چون جدیدترین لات هم ارزانترین بود.
6. STRICT_WITH_SIZE
STRICT_WITH_SIZE همان STRICT است به علاوه یک تساویشکن اضافی: وقتی چندین لات مطابقت دارند اما دقیقاً یکی از آنها دقیقاً همان تعداد واحدی را که حذف میکنید نگهداری میکند، آن لات انتخاب میشود.
1970-01-01 commodity STK
1970-01-01 open Assets:Broker:Sized STK "STRICT_WITH_SIZE"
1970-01-01 open Assets:Broker:Cash USD
1970-01-01 open Income:Gains USD
2024-01-10 * "خرید ۱۰ سهم"
Assets:Broker:Sized 10 STK {100.00 USD}
Assets:Broker:Cash -1000.00 USD
2024-02-10 * "خرید ۷ سهم"
Assets:Broker:Sized 7 STK {120.00 USD}
Assets:Broker:Cash -840.00 USD
; تنها یک لات دقیقاً ۷ واحد نگهداری میکند، پس مشخصکننده خالی حل میشود.
2024-06-01 * "فروش ۷ سهم"
Assets:Broker:Sized -7 STK {} @ 150.00 USD
Assets:Broker:Cash 1050.00 USD
Income:Gainsاین ۲۱۰.۰۰ دلار سود را در مقابل لات ۱۲۰.۰۰ دلاری تخصیص میدهد. همان فایل با "STRICT" در خط open با Ambiguous matches for "-7 STK {}" شکست میخورد.
7. میانگین (پذیرفته شده، اما پیادهسازی نشده)
AVERAGE یک نام معتبر است — option "booking_method" "AVERAGE" و open … "AVERAGE" هر دو تجزیه میشوند — اما Beancount 3.2.3 هیچ پیادهسازی پشت آن ندارد. همه چیز در اینجا تا زمان فروش بارگذاری میشود:
1970-01-01 commodity STK
1970-01-01 open Assets:Broker:Avg STK "AVERAGE"
1970-01-01 open Assets:Broker:Cash USD
1970-01-01 open Income:Gains USD
2024-01-10 * "خرید ۱۰ سهم با ۱۰.۰۰ دلار"
Assets:Broker:Avg 10 STK {10.00 USD}
Assets:Broker:Cash -100.00 USD
2024-02-10 * "خرید ۱۰ سهم دیگر با ۸.۰۰ دلار"
Assets:Broker:Avg 10 STK {8.00 USD}
Assets:Broker:Cash -80.00 USD
; یک موتور بهای تمامشده میانگین این را با ۹.۰۰ دلار به ازای هر سهم تخصیص میداد. این یکی امتناع میکند.
2024-06-01 * "فروش ۵ سهم"
Assets:Broker:Avg -5 STK {}
Assets:Broker:Cash 45.00 USD
Income:Gainsدر لحظهای که آن کاهش باید تخصیص یابد، بارگذار متوقف میشود با:
AVERAGE method is not supportedبرای آن دفتر کل برنامهریزی نکنید. اگر امروز رفتار بهای تمامشده میانگین را میخواهید، موقعیت را در یک حساب NONE نگه دارید و میانگین را خودتان محاسبه کنید، یا هر لات را ردیابی کنید و سود در سطح لات را بپذیرید.
8. هیچکدام
روش NONE تطبیق لات را کاملاً غیرفعال میکند.
2024-01-01 open Assets:Invest:STOCK "NONE"- بدون تطبیق لات: Beancount تلاش نمیکند کاهشها را با افزایشها تطبیق دهد.
- اجازه علائم مختلط: این به یک حساب اجازه میدهد همزمان موجودیهای مثبت و منفی از همان کالا را نگهداری کند. این رفتار مشابه نحوه برخورد ابزار CLI Ledger با کالاها است.
مشخصات دسته
یک «لات» یک بلوک خاص از یک کالا است که در زمان و قیمت خاصی تحصیل شده است. وقتی موقعیتی را ایجاد یا کاهش میدهید، میتوانید ویژگیهای لات آن را به تفصیل مشخص کنید.
مشخصات کامل
وقتی موجودی را افزایش میدهید (خرید)، میتوانید تا سه ویژگی برای لات مشخص کنید، جداشده با کاما درون یک جفت آکولاد:
Assets:Invest:STOCK 10 STOCK {100.00 USD, 2024-01-15, "lot-identifier"}100.00 USD— بهای تمامشده، بیانشده به ازای هر واحد.2024-01-15— تاریخ تحصیل. Beancount این را از تاریخ تراکنش پر میکند وقتی آن را حذف کنید، به همین دلیل پیامهای خطای بالا یک تاریخ روی هر لات نشان میدهند."lot-identifier"— یک برچسب رشتهای اختیاری.
اگرچه هر سه اختیاری هستند، ارائه حداقل بهای تمامشده رویه استاندارد است. آکولادها باید در یک خط بمانند، و نظرات درون دفتر کل با ; شروع میشوند، هرگز با #.
روشهای تطبیق
وقتی موجودی را کاهش میدهید (فروش)، از همان نحو برای مشخصکردن اینکه از کدام لات(ها) بفروشید استفاده میکنید.
-
تطبیق بر اساس بهای تمامشده: این رایجترین روش است.
Assets:Invest:STOCK -5 STOCK {100.00 USD} -
تطبیق بر اساس تاریخ: اگر بهای تمامشدهها یکسان باشند، میتوانید با استفاده از تاریخ تحصیل ابهام را برطرف کنید.
Assets:Invest:STOCK -5 STOCK {2024-01-15} -
تطبیق بر اساس برچسب: برچسبها راهی مطمئن برای شناسایی یک لات فراهم میکنند.
Assets:Invest:STOCK -5 STOCK {"lot-identifier"} -
واگذاری لات به روش تخصیص: یک مجموعه خالی از آکولاد
{}هیچ لاتی را نام نمیبرد، پس روش تخصیص حساب انتخاب میکند. تحتFIFO،LIFOیاHIFOاین قدیمیترین، جدیدترین یا گرانترین لات منطبق است؛ تحتSTRICTپیشفرض یکAmbiguousMatchErrorاست مگر اینکه کاهش لاتهای منطبق را دقیقاً خالی کند.Assets:Invest:STOCK -5 STOCK {}
مدیریت قیمت
درک تفاوت بین بهای تمامشده ({}) و قیمت (@) حیاتی است. آنها اهداف متفاوتی را دنبال میکنند و قابل تعویض نیستند.
قیمت در مقابل هزینه
{cost}: هزینه تحصیل یک دارایی را تعریف میکند. بخشی از خود لات موجودی است و برای تخصیص کاهشها و محاسبه سود سرمایه استفاده میشود.@ price: یک حاشیهنویسی که قیمت بازار را در زمان یک تراکنش ثبت میکند. برای تبدیل ارز یا یادداشت ارزش بازار در یک تاریخ خاص استفاده میشود.
در اینجا سه سناریو وجود دارد:
-
حاشیهنویسی قیمت (تبدیل): از
@برای تبدیل از یک ارز به ارز دیگر استفاده کنید.Assets:Forex 1000 USD @ 0.85 EUR -
بهای تمامشده (تحصیل): هنگام خرید یک دارایی برای تعیین بهای تمامشده آن از
{}استفاده کنید.Assets:Invest 10 STOCK {100.00 USD} -
هر دو (فروش با ثبت قیمت): هنگام فروش یک دارایی، از
{}برای شناسایی لات فروختهشده و از@برای ثبت قیمت فروش استفاده کنید. این امکان محاسبه خودکار سود سرمایه را فراهم میکند.Assets:Invest -10 STOCK {100.00 USD} @ 105.00 USDاین ثبت ۱۰
STOCKرا از لاتی که هر کدام ۱۰۰.۰۰ دلار هزینه داشته، با قیمت فروش ۱۰۵.۰۰ دلار هر کدام میفروشد.
یک دستور price مستقل دادههای مرجع برای ارزشگذاری بازار فراهم میکند. قیمتهای زنده میتواند این دستورات را برای داراییهای پشتیبانیشده در دفترهای کل میزبانیشده نگهداری کند. یک تازهسازی لاتها، روش تخصیص، هزینههای تحصیل و عایدیهای فروش ثبتشده شما را بدون تغییر میگذارد.
قوانین استفاده از قیمت
- حاشیهنویسیهای قیمت (
@) بر اینکه کدام لات تخصیص مییابد تأثیری ندارند. تطبیق لات منحصراً توسط بهای تمامشده ({}) و روش تخصیص حساب انجام میشود. - نماد
@تنها برای موارد زیر استفاده میشود:
- تبدیل ارز.
- ثبت ارزش بازار یک دارایی در زمان یک تراکنش.
- ارائه قیمت فروش برای محاسبات سود سرمایه.
پیکربندی
میتوانید روشهای تخصیص را به صورت سراسری یا بر اساس هر حساب پیکربندی کنید.
روش ثبت جهانی
میتوانید یک روش تخصیص پیشفرض برای کل فایل Beancount خود با استفاده از دستور option تعیین کنید.
option "booking_method" "STRICT"مقادیر پذیرفتهشده عبارتند از "STRICT" (پیشفرض وقتی چیزی تعیین نمیکنید)، "STRICT_WITH_SIZE"، "NONE"، "FIFO"، "LIFO"، "HIFO" و "AVERAGE". هر رشته دیگری در زمان بارگذاری با Error for option 'booking_method' رد میشود. "AVERAGE" اینجا و در open پذیرفته میشود، اما تخصیص یک کاهش تحت آن شکست میخورد، همانطور که بخش AVERAGE در بالا نشان میدهد.
جایگزینی به ازای هر حساب
اغلب مفید است که روشهای متفاوتی برای حسابهای مختلف داشته باشید. برای مثال، ممکن است FIFO برای یک حساب بازنشستگی اما STRICT برای یک حساب کارگزاری مشمول مالیات بخواهید تا اطمینان حاصل کنید که لاتهای مالیاتی خاصی را میفروشید. میتوانید روش تخصیص را هنگام باز کردن حساب تعیین کنید.
2024-01-01 open Assets:Retirement:401K "FIFO"
2024-01-01 open Assets:Taxable:Stock "STRICT"بهترین روشها
-
سازماندهی موجودی: برای تمیز و ساده نگهداشتن دفتر کل، به شدت توصیه میشود از حسابهای جداگانه برای هر کالای منحصربهفردی که نگهداری میکنید استفاده کنید، و هر کدام را در دستور
openخود به آن کالا محدود کنید.; خوب: حسابهای جداگانه بر اساس کالا، هر کدام محدود به یکی 2024-01-01 open Assets:Invest:VTSAX VTSAX 2024-01-01 open Assets:Invest:VFIAX VFIAXاز مخلوطکردن سهام یا صندوقهای مختلف در یک حساب خودداری کنید، چون مدیریت موجودی را پیچیده میکند. فهرست کالا در
openباعث میشود Beancount یک ثبت سرگردان را رد کند به جای اینکه بیصدا دو موجودی را مخلوط کند. -
مدیریت لات:
-
از برچسبهای معنادار برای لاتها استفاده کنید، خصوصاً برای تراکنشهای خاص مانند برداشت زیان مالیاتی یا اعطای سهام کارمندان.
Assets:Invest:STOCK 10 STOCK {100.00 USD, "tax-loss-harvest-2024"} -
معاملات خود را با نظرات مستند کنید. این کار خواندن و درک دفتر کل شما را بعداً آسانتر میکند.
Assets:Invest:STOCK -10 STOCK {100.00 USD} @ 110.00 USD ; سود: ۱۰٪
- اشکالزدایی: اگر با خطاها یا رفتار غیرمنتظره مواجه شدید، Beancount ابزارهایی برای بررسی وضعیت موجودی شما فراهم میکند.
-
بررسی وضعیت موجودی: از
bea doctor context main.beancount 42برای بررسی تراکنش در خط ۴۲، شامل ثبتها و موجودی حسابهای متأثر استفاده کنید. نام فایل و شماره خط را با تراکنشی که میخواهید بررسی کنید جایگزین کنید.<LINENO>را با شماره خط بلافاصله بعد از یک تراکنش جایگزین کنید تا اثر آن را ببینید. -
تأیید تطبیق لات: ابزار
bea checkکل فایل شما را اعتبارسنجی میکند. هر خطای تخصیص، مانند تطبیقهای مبهم لات در حالتSTRICTرا میگیرد.