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

2 پست با برچسب "Journal Entries"

مشاهده تمام برچسب‌ها

درک ثبت‌های روزنامه‌ای در Beancount

· زمان مطالعه 8 دقیقه
Mike Thrift
Mike Thrift
Marketing Manager

ثبت‌های روزنامه‌ای ستون فقرات حسابداری دوطرفه هستند و در Beancount، هر تراکنش * که می‌نویسید یک ثبت روزنامه‌ای است. این راهنما اصول اساسی—بدهکار و بستانکار، ثبت‌های تعدیل‌کننده و معکوس‌کننده—را توضیح می‌دهد و نشان می‌دهد چگونه به‌صورت تمیز به سینتکس متنی ساده Beancount می‌نقشند. شما یاد می‌گیرید چگونه با حداقل مراسم کتاب‌های دقیق داشته باشید.


2025-09-02-journal-entries-in-beancount

مرور سریع: ثبت روزنامه‌ای چیست؟

ثبت روزنامه‌ای رکورد رسمی و تاریخ‌دار یک معامله مالی است. این رکورد با بدهکار و بستانکار بیان می‌شود که معادله بنیادی حسابداری را متعادل نگه می‌دارند:

Assets=Liabilities+EquityAssets = Liabilities + Equity

در یک سیستم دوطرفه، هر معامله حداقل دو حساب را تحت تأثیر قرار می‌دهد و مجموع بدهکارها باید برابر مجموع بستانکارها باشد. این قانون ساده است که گزارش‌های مالی پایین‌دست مانند صورت سود و زیان و ترازنامه را قابل اعتماد و دقیق می‌کند.


بدهکار و بستانکار در یک دقیقه

مفهوم بدهکار و بستانکار در ابتدا می‌تواند گیج‌کننده باشد، اما به چند قانون ساده خلاصه می‌شود. این‌گونه فکر کنید: «ارزش از کجا آمد؟» (بستانکار) و «ارزش به کجا رفت؟» (بدهکار).

در اینجا یک برگه تقلب برای نحوه افزایش پنج نوع حساب اصلی آورده شده است:

نوع حسابافزایش با
دارایی‌هابدهکار
هزینه‌هابدهکار
بدهی‌هابستانکار
حقوق مالکانهبستانکار
درآمدبستانکار

شکل یک ثبت روزنامه‌ای در Beancount

Beancount از دستورات متنی ساده و قابل خواندن برای انسان استفاده می‌کند تا تراکنش‌ها را ثبت کند. هر تراکنش باید برای هر کالا (مثلاً USD، EUR، سهام AAPL) به صفر متعادل شود. اگر این‌طور نباشد، Beancount خطا می‌دهد.

در اینجا یک تراکنش پایه برای خرید قهوه آورده شده است:

2025-09-10 * "Coffee Bar" "Team coffee"
Expenses:Food:Coffee 18.00 USD
Assets:Bank:Checking -18.00 USD

دقت کنید که دو پست (خط‌های حساب) به صفر می‌رسند: $18.00 + (-$18.00) = 0.

شما می‌توانید با استفاده از برچسب‌ها (مانند #clientX) برای فیلتر کردن و لینک‌ها (مانند ^INV-2025-001) برای ارتباط بین ورودی‌های مرتبط، زمینه قدرتمندی را مستقیماً در روایت اضافه کنید.

به عنوان مثال، این‌جا نحوه لینک‌کردن یک فاکتور به پرداخت آن را می‌بینید:

; ابتدا فاکتور ارسالی به مشتری را ثبت می‌کنیم
2025-09-15 * "Acme Corp" "Invoice 2025-001 #clientX ^INV-2025-001"
Assets:AccountsReceivable 1000.00 USD
Income:Consulting -1000.00 USD

; سپس پرداخت را ثبت می‌کنیم و به فاکتور اصلی لینک می‌کنیم
2025-09-28 * "Acme Corp" "Payment on ^INV-2025-001"
Assets:Bank:Checking 1000.00 USD
Assets:AccountsReceivable -1000.00 USD

برچسب #clientX به شما امکان می‌دهد به‌راحتی تمام تراکنش‌های این مشتری را فیلتر کنید و لینک ^INV-2025-001 ارتباطی بین دو ورودی ایجاد می‌کند که می‌توانید در گزارش‌ها دنبال کنید.


ثبت‌های روزنامه‌ای رایج (آماده برای کپی)

در ادامه چند تراکنش تجاری رایج به فرمت Beancount آورده شده است.

سرمایه‌گذاری نقدی توسط مالک

یک مالک برای راه‌اندازی کسب‌وکار، وجوه شخصی خود را سرمایه‌گذاری می‌کند.

2025-01-01 * "Owner" "Initial capital contribution"
Assets:Bank:Checking 10000.00 USD
Equity:Owner-Capital -10000.00 USD

فروش نقدی با مالیات فروش

یک مشتری به‌صورت نقدی محصولی می‌خرد که شامل ۸٪ مالیات فروش است که بعداً باید به دولت پرداخت شود.

2025-01-05 * "Walk-in Customer" "Cash sale with 8% tax"
Assets:Cash 108.00 USD
Income:Sales -100.00 USD
Liabilities:Tax:Sales -8.00 USD

فروش اعتباری (فاکتور) و دریافت پرداخت

شما خدمتی ارائه می‌دهید و برای مشتری فاکتور می‌گیرید، سپس بعداً پرداخت را دریافت می‌کنید.

2025-01-10 * "Acme Corp" "Consulting invoice ^INV-2025-002"
Assets:AccountsReceivable 2500.00 USD
Income:Consulting -2500.00 USD

2025-01-30 * "Acme Corp" "Payment on ^INV-2025-002"
Assets:Bank:Checking 2500.00 USD
Assets:AccountsReceivable -2500.00 USD

هزینه با کارت اعتباری

شما لوازم اداری را با کارت اعتباری شرکت خریداری می‌کنید.

2025-01-12 * "OfficeMax" "Supplies on credit card"
Expenses:Office:Supplies 75.00 USD
Liabilities:CreditCard -75.00 USD

حقوق (مدل ساده)

شما حقوق کارکنان را پردازش می‌کنید و هزینه کل حقوق، کسورات مالیاتی کارمند و پرداخت خالص از حساب بانکی را ثبت می‌کنید.

2025-01-31 * "Payroll" "January wages and withholdings"
Expenses:Payroll:Wages 2000.00 USD
Liabilities:Taxes:Withheld -400.00 USD
Assets:Bank:Checking -1600.00 USD

استهلاک ماهانه

هزینه استهلاک ماهانه یک دارایی، مانند لپ‌تاپ، را ثبت می‌کنید.

2025-01-31 * "Depreciation" "Laptop, straight-line"
Expenses:Depreciation 100.00 USD
Assets:Equipment:AccumDepr -100.00 USD

هزینه پیش‌پرداخت و استهلاک ماهانه

شما برای یک سال بیمه به‌صورت پیش‌پرداخت هزینه می‌کنید، سپس هزینه یک ماه را به‌عنوان هزینه شناسایی می‌کنید.

; 1. پرداخت حق بیمه سالانه
2025-01-01 * "InsureCo" "Annual insurance premium"
Assets:Prepaid:Insurance 1200.00 USD
Assets:Bank:Checking -1200.00 USD

; 2. شناسایی یک ماه هزینه در پایان ژانویه
2025-01-31 * "InsureCo" "Amortize 1/12 of insurance"
Expenses:Insurance 100.00 USD
Assets:Prepaid:Insurance -100.00 USD

درآمد نامعین و شناسایی ماهانه

یک مشتری برای اشتراک ۳ ماهه پیش‌پرداخت می‌کند. شما نقدینگی را ثبت می‌کنید و سپس یک ماه درآمد را شناسایی می‌کنید.

; 1. پیش‌پرداخت مشتری برای سرویس
2025-02-01 * "Subscriber" "3-month plan prepaid"
Assets:Bank:Checking 300.00 USD
Liabilities:Unearned:Subs -300.00 USD

; 2. شناسایی یک ماه درآمد پس از ارائه سرویس
2025-02-28 * "Recognition" "Recognize month 1 of 3"
Liabilities:Unearned:Subs 100.00 USD
Income:Subscriptions -100.00 USD

ذخیره‌سازی بدهی مشکوک و حذف بدهی

شما برای فاکتورهای احتمالی غیرقابل وصول یک ذخیره ایجاد می‌کنید و سپس یک فاکتور معین را حذف می‌کنید.

; 1. ایجاد ذخیره بر پایه ۲٪ از حساب‌های دریافتنی
2025-03-31 * "Provision" "2% of A/R for doubtful accounts"
Expenses:BadDebt 200.00 USD
Assets:AllowanceForDoubtful -200.00 USD

; 2. حذف فاکتور معینی که می‌دانید پرداخت نخواهد شد
2025-04-15 * "Write-off" "Customer XYZ invoice"
Assets:AllowanceForDoubtful 150.00 USD
Assets:AccountsReceivable -150.00 USD

موجودی دوره‌ای و تنظیم هزینه کالای فروخته‌شده (COGS)

در پایان دوره، هزینه کالای فروخته‌شده را با تنظیم حساب موجودی محاسبه می‌کنید.

2025-03-31 * "COGS adjustment" "Periodic inventory method"
Expenses:COGS 4500.00 USD
Assets:Inventory -4500.00 USD

ثبت‌های تعدیل‌کننده در مقابل ثبت‌های معکوس‌کننده

ثبت‌های تعدیل‌کننده در پایان یک دوره حسابداری (مثلاً ماه یا سه‌ماهه) ثبت می‌شوند تا درآمدها و هزینه‌ها به دوره‌ای که واقعاً کسب یا صرف شده‌اند، منطبق شوند. این شامل تعهدات، تعویق‌ها و برآوردهایی مانند استهلاک می‌شود.

ثبت‌های معکوس‌کننده ورودی‌های اختیاری هستند که در اولین روز دوره جدید انجام می‌شوند و دقیقاً یک ثبت تعدیل‌کننده خاص از دوره قبلی را معکوس می‌کنند. هدف آن ساده‌سازی کتابداری است. با معکوس کردن یک تعهد، می‌توانید تراکنش نقدی بعدی را به‌صورت استاندارد ثبت کنید بدون این‌که به یاد داشته باشید آن را مقابل حساب بدهی قرار دهید.

مثال: تعهد هزینه‌های خدمات عمومی و معکوس آن

فرض کنید باید هزینه خدمات عمومی ژانویه را ثبت کنید، اما صورتحساب تا فوریه دریافت نمی‌شود.

; 1. تخمین هزینه در پایان ژانویه
2025-01-31 * "Accrual" "Estimate January utilities expense"
Expenses:Utilities 500.00 USD
Liabilities:Accrued:Utilities -500.00 USD

; 2. (اختیاری) معکوس کردن تعهد در اولین روز دوره بعدی
2025-02-01 * "Reversal" "Undo January utilities accrual"
Liabilities:Accrued:Utilities 500.00 USD
Expenses:Utilities -500.00 USD

; 3. ثبت پرداخت واقعی وقتی که در فوریه می‌رسد
; صورتحساب واقعی 520 دلار است. به‌دلیل معکوس‌سازی می‌توانید
; کل مبلغ را به حساب هزینه بزنید بدون مشکل.
; هزینه خالص فوریه برابر است با 520 - 500 = 20 دلار.
2025-02-10 * "City Utilities" "Payment for January bill"
Expenses:Utilities 520.00 USD
Assets:Bank:Checking -520.00 USD

توجه: مثال در طرح اصلی نشان می‌دهد که پرداخت نهایی تقسیم می‌شود. روش معکوس‌سازی یک گزینه برای ساده‌سازی ثبت نهایی است.


چک‌لیست برای هر ثبت روزنامه‌ای در Beancount

این مراحل را دنبال کنید تا ورودی‌های شما تمیز و صحیح باشند:

  1. با تاریخ (YYYY-MM-DD) و یک پرچم تراکنش (*) شروع کنید.
  2. یک طرف حساب و یک شرح توصیفی اضافه کنید. از #برچسب‌ها و ^لینک‌ها برای جستجوپذیری استفاده کنید.
  3. حداقل دو خط پست داشته باشید که برای هر کالا به صفر متعادل شوند.
  4. از نام‌های حساب صحیح تحت پنج نوع استفاده کنید: Assets, Liabilities, Equity, Income, Expenses.
  5. به‌صورت اختیاری، متادیتا مانند document: "invoices/INV-2025-001.pdf" برای ردیابی اضافه کنید.

اشتباهات رایج (و نحوه کمک Beancount)

  • پست‌های نامتعادل: اگر بدهکارها و بستانکارها به صفر نرسند، Beancount ورود را رد می‌کند. این ویژگی اصلی است که از خطاها جلوگیری می‌کند. حتی می‌توانید یک مقدار را خالی بگذارید و Beancount به‌صورت خودکار آن را محاسبه می‌کند.
  • علامت نادرست روی حساب: به‌راحتی می‌توانید فراموش کنید که Income، Equity و Liabilities با بستانکار (که معمولاً در Beancount عدد منفی است) افزایش می‌یابند. اگر اشتباه کنید، گزارش‌هایتان عجیب به‌نظر می‌رسند، اما قانون تعادل همچنان یک شبکه امنیتی فراهم می‌کند.
  • عدم وجود لینک بین ورودی‌ها: فراموش کردن لینک فاکتور به پرداخت آن، ردیابی مانده‌ها را دشوار می‌کند. استفاده مداوم از ^لینک‌ها این مشکل را با ایجاد ردپای قابل حسابرسی حل می‌کند.

مسیرهای بعدی

  • زبان Beancount و قوانین تعادل: به مستندات رسمی عمیق‌تر بپردازید.
  • برگه تقلب سینتکس: مرجع مفیدی برای تمام دستورات Beancount.
  • مقدمه‌ای بر بدهکار/بستانکار: نقطه شروع عالی اگر با قوانین حسابداری تازه‌کار هستید.
  • ثبت‌های تعدیل‌کننده/معکوس‌کننده: مقالات دقیق‌تر درباره نظریه حسابداری.

پیوست: نقشهٔ اصطلاحات حسابداری → Beancount

این راهنمای ترجمه سریع می‌تواند به شما کمک کند تا دستورات حسابداری را به سینتکس Beancount تبدیل کنید.

دستور حسابداریعمل Beancount
بدهکار کردن یک هزینهمقدار مثبت به حساب Expenses:
بستانکار کردن یک بدهیمقدار منفی به حساب Liabilities:
تعهد درآمدAssets:AccountsReceivable +
Income:* -
تعویق درآمدAssets:Bank:* +
Liabilities:Unearned:* -
شناسایی درآمد تعویق‌خوردهLiabilities:Unearned:* +
Income:* -

با این الگوها و مثال‌ها می‌توانید تقریباً هر رویداد تجاری را به‌صورت تمیز در Beancount مدل‌سازی کنید و اطمینان حاصل کنید که گزارش‌های مالی‌تان بدون شگفتی‌ایی هم‌راستا هستند.

ثبت‌های دفتر روزنامه Beancount: آموزش، تعاریف و مثال‌ها

· زمان مطالعه 5 دقیقه
Mike Thrift
Mike Thrift
Marketing Manager

هر تراکنش مالی که کسب و کار شما انجام می‌دهد، باید ثبت شود - و در دنیای حسابداری متن ساده، این با ثبت‌های دفتر روزنامه شروع می‌شود. اگر از Beancount استفاده می‌کنید، درک ثبت‌های دفتر روزنامه کلید ایجاد سوابق مالی دقیق، قابل ممیزی و پاکیزه است.

این راهنما شما را در موارد زیر راهنمایی می‌کند:

2025-06-27-journal-entries

  • ثبت دفتر روزنامه چیست؟
  • چرا ثبت‌های دفتر روزنامه مهم هستند؟
  • چگونه آن‌ها را در دستور زبان Beancount بنویسیم؟
  • چگونه به طور موثر از آن‌ها استفاده کنیم؟
  • مثال‌هایی از تراکنش‌های دنیای واقعی (پرداخت‌های مشتری، خریدها، وام‌ها و غیره)

🧾 ثبت دفتر روزنامه در Beancount چیست؟

در Beancount، ثبت دفتر روزنامه یک تراکنش تاریخ‌دار است که در قالب متن ساده و قابل خواندن توسط انسان نوشته شده است. هر ورودی از اصول حسابداری دوبل پیروی می‌کند - شما ثبت می‌کنید که پول از کجا می‌آید (بستانکار) و به کجا می‌رود (بدهکار)، و اطمینان حاصل می‌کنید که دفاتر شما همیشه تراز هستند.

مثال:

2024-06-01 * "پرداخت مشتری برای فاکتور #123"
Assets:Bank:Checking 600.00 USD
Income:Sales
  • علامت * نشان دهنده یک تراکنش تسویه شده است.
  • شرح، زمینه را برای ورودی نشان می‌دهد.
  • Assets:Bank:Checking بدهکار شده است.
  • Income:Sales بستانکار شده است (مقدار ضمنی است).

هر ورودی در داخل یک فایل .beancount قرار دارد - فقط یک فایل متنی که می‌توانید نسخه آن را کنترل کنید، پشتیبان‌گیری کنید و حتی در Vim یا VSCode ویرایش کنید.

📒 چرا ثبت‌های دفتر روزنامه مهم هستند

ثبت‌های دفتر روزنامه واحد اتمی دفتر کل شما هستند.

آنها:

  • به دفتر کل و مانده حساب‌ها وارد می‌شوند.
  • همه گزارش‌ها را هدایت می‌کنند: صورت سود و زیان، ترازنامه، جریان‌های نقدی
  • به شما این امکان را می‌دهند که هر دلار را، خط به خط، تا منبع آن ردیابی کنید.

با ابزارهای مناسب، این تراکنش‌ها را در یک رابط کاربری مشاهده خواهید کرد - طبقه‌بندی شده، قابل جستجو و فیلتر کردن. اما همه چیز با آن ورودی ساده متن ساده شروع می‌شود.

📚 نحوه کارکرد حسابداری دوبل در Beancount

Beancount حسابداری دوبل را اعمال می‌کند. هر تراکنش باید متوازن باشد: مجموع بدهی‌ها = مجموع بستانکاری‌ها.

قانون سریع:

  • بدهکار دارایی‌ها و هزینه‌ها (شما وجه نقد به دست می‌آورید یا هزینه‌ای را متحمل می‌شوید)
  • بستانکار درآمد و بدهی‌ها (شما پول به دست می‌آورید یا بدهی را بر عهده می‌گیرید)

مثال - خرید لوازم اداری:

2024-06-02 * "خرید جوهر چاپگر"
Expenses:OfficeSupplies 100.00 USD
Assets:Bank:Checking

🧠 تجسم ورودی‌ها

پس از ذخیره، در سمت چپ نوار پیمایش https://beancount.io/ledger/0/income_statement/ موارد زیر را خواهید دید ...

  • نمای دفتر روزنامه: تراکنش‌ها را با جستجو، برچسب‌ها و فیلتر کردن ببینید
  • منوی کشویی فیلتر حساب: مانده‌های جاری و ورودی‌های هر حساب را ببینید
  • صورت سود و زیان: مجموع حساب‌های Income:* و Expenses:* شما
  • ترازنامه: دارایی‌های شما منهای بدهی‌ها

Fava به تبدیل ورودی‌های خام Beancount شما به گزارش‌های عملی کمک می‌کند - بدون نیاز به تنظیم پایگاه داده.

💡 مثال‌های رایج ثبت دفتر روزنامه

✅ شما توسط یک مشتری حقوق دریافت می‌کنید

2024-06-05 * "پرداخت برای فاکتور #456"
Assets:Bank:Checking 1,200.00 USD
Income:Consulting

اختیاری: اگر از حساب‌های دریافتنی استفاده می‌کنید:

2024-05-20 * "فاکتور #456 ارسال شد"
Assets:AccountsReceivable 1,200.00 USD
Income:Consulting

2024-06-05 * "پرداخت برای فاکتور #456"
Assets:Bank:Checking 1,200.00 USD
Assets:AccountsReceivable -1,200.00 USD

🖨️ شما لوازم اداری می‌خرید

2024-06-07 * "خرید از Staples"
Expenses:OfficeSupplies 85.00 USD
Assets:Bank:Checking

🏦 شما پرداخت وام انجام می‌دهید

فرض کنیم شما 1000 دلار پرداخت می‌کنید، با 200 دلار سود و 800 دلار به سمت اصل:

2024-06-10 * "بازپرداخت وام"
Liabilities:Loan -800.00 USD
Expenses:LoanInterest 200.00 USD
Assets:Bank:Checking -1,000.00 USD

🔒 بستن ورودی‌ها در پایان سال

برای "بستن دفاتر"، شما معمولاً همه حساب‌های Income و Expenses را به Equity منتقل می‌کنید.

2024-12-31 close Income:*
2024-12-31 close Expenses:*

یا، به صورت دستی:

2024-12-31 * "بستن دفاتر"
Equity:RetainedEarnings 45,000.00 USD
Income:Consulting -45,000.00 USD

🛠️ تعدیل ورودی‌ها

اگر در حال انجام حسابداری تعهدی هستید، می‌خواهید تعدیل ورودی‌ها را اضافه کنید - برای هزینه‌های پیش پرداخت شده، درآمد معوق و غیره.

مثال: اشتراک نرم افزار ماهانه 100 دلاری که سالانه پرداخت می‌شود

2024-01-01 * "پرداخت سالانه نرم افزار"
Assets:Prepaid 1,200.00 USD
Assets:Bank:Checking -1,200.00 USD

2024-01-31 * "استهلاک ماهانه"
Expenses:Software 100.00 USD
Assets:Prepaid -100.00 USD

با اسکریپت‌ها یا ابزارهای Beancount موجود، آن را خودکار کنید.

🧰 Beancount: سبک وزن، قابل ممیزی، قدرتمند

Beancount فقط یک ابزار حسابداری نیست - بلکه یک ایده است: حقیقت مالی شفاف و متن ساده. این یک سیستم دفترداری مدرن است که:

  • به راحتی قابل کنترل نسخه است (Git!)
  • کاملاً قابل حمل است (بدون پایگاه داده اختصاصی)
  • برای توسعه دهندگان، فریلنسرها و مشاغل کوچک عالی است

آماده شروع هستید؟

فایل Beancount خود را با این موارد شروع کنید:

option "title" "دفتر کل کسب و کار من"
option "operating_currency" "USD"

2024-01-01 open Assets:Bank:Checking USD
2024-01-01 open Income:Sales USD
2024-01-01 open Expenses:OfficeSupplies USD
2024-01-01 open Equity:OpeningBalances USD

2024-01-01 * "مانده اولیه"
Assets:Bank:Checking 10,000.00 USD
Equity:OpeningBalances

سپس فایل خود را با ابزار تجسم ترجیحی خود بارگیری کنید تا جادو را ببینید.

یک شروع آسان‌تر می‌خواهید؟ الگوها، واردکننده‌ها یا ابزارهای انجمن مانند bean-extract را امتحان کنید.

با Beancount، دفاتر شما سرانجام متعلق به خودتان هستند - ساده، قابل اسکریپت‌نویسی و ضد ممیزی.

اگر نسخه PDF قابل دانلود یا تغییرات خاص کسب و کارهای کوچک از مثال‌ها را می‌خواهید، به من اطلاع دهید.