راهنمای جامع مهاجرت از QuickBooks به Beancount
مرحله ۱: استخراج دادهها از QuickBooks
مهاجرت دادههای پنج ساله با خارج کردن تمام سوابق QuickBooks در یک فرمت قابل استفاده آغاز میشود. QuickBooks Desktop و QuickBooks Online گزینههای خروجیگیری متفاوتی دارند:
۱.۱ QuickBooks Desktop – گزینههای خروجیگیری
IIF (Intuit Interchange Format): نرمافزار QuickBooks Desktop میتواند لیستها (مانند سرفصل حسابها، مشتریان، فروشندگان) را به فایلهای متنی .IIF
خروجی بگیرد. در QuickBooks Desktop، به مسیر File → Utilities → Export → Lists to IIF بروید، سپس لیستهای مورد نیاز خود (مانند Chart of Accounts، Customers، Vendors) را انتخاب کنید. این کار یک فایل متنی تولید میکند که شامل نام حسابها، انواع آنها و دادههای لیست است. IIF یک فرمت اختصاصی اما مبتنی بر متن ساده است که تجزیه (parse) آن نسبتاً آسان است. از آن برای استخراج سرفصل حسابها (Chart of Accounts) و لیست مخاطبین خود برای ارجاع در Beancount استفاده کنید.
دفتر کل/دفتر روزنامه از طریق CSV: برای دادههای تراکنش، QuickBooks Desktop یک خروجی کامل با یک کلیک ارائه نمیدهد، اما میتوانید از گزارشها استفاده کنید. روش پیشنهادی، خروجی گرفتن از دفتر روزنامه عمومی (General Journal) (شامل تمام تراکنشها) در بازه زمانی مورد نظر است. در QuickBooks Desktop، به مسیر Reports → Accountant & Taxes → Journal بروید، تاریخها را از اولین تراکنش تا امروز تنظیم کنید و روی Export → Excel کلیک کنید. پس از حذف هرگونه سرصفحه/پاصفحه گزارش و ستونهای خالی، نتیجه را به صورت CSV ذخیره کنید. اطمینان حاصل کنید که دادههای عددی تمیز هستند: شامل سنت (مثلاً 3.00
نه 3
)، بدون علامت نقل قول اضافی، و بدون نماد ارز یا منفیهای دوگانه در CSV باشند. فایل CSV باید ستونهایی مانند Date, Trans #, Name, Account, Memo, Debit, Credit, Balance (یا یک ستون Amount واحد بسته به فرمت گزارش) داشته باشد.
نکته: QuickBooks Desktop 2015 به بعد همچنین میتواند تراکنشها را از طریق کادر محاورهای Find خروجی بگیرد. از مسیر Edit → Find → Advanced استفاده کنید، بازه زمانی را برای پنج سال تنظیم کنید، سپس نتایج را به CSV خروجی بگیرید. هشدار: برخی نسخهها خروجی را به 32,768 خط محدود میکنند. اگر دادههای بسیار بزرگی دارید، برای جلوگیری از بریده شدن دادهها، سال به سال (یا در بخشهای کوچکتر) خروجی بگیرید و بعداً آنها را ترکیب کنید. اطمینان حاصل کنید که بازههای زمانی برای جلوگیری از تکرار، همپوشانی نداشته باشند.
فرمتهای دیگر (QBO/QFX/QIF): نرمافزار QuickBooks Desktop میتواند تراکنشهای بانکی را از طریق فایلهای .QBO
(Web Connect) یا .QFX/.OFX
وارد کند، اما برای خروجی گرفتن از QuickBooks، این فرمتها م عمول نیستند. اگر هدف شما فقط استخراج تراکنشهای بانکی است، ممکن است قبلاً آنها را در فرمت QBO/OFX از بانک خود داشته باشید. با این حال، برای خروجی کامل دفتر کل، به IIF و CSV پایبند باشید. QuickBooks Desktop نمیتواند مستقیماً بدون ابزارهای شخص ثالث به فرمت QIF (Quicken Interchange Format) خروجی بگیرد. اگر راهی برای دریافت QIF پیدا کردید، توجه داشته باشید که برخی از ابزارهای دفتر کل (مانند Ledger 2.x قدیمی) میتوانستند QIF را بخوانند، اما بهتر است در این فرآیند با CSV کار کنیم.
۱.۲ QuickBooks Online – گزینههای خروجیگیری
خروجی داخلی Excel/CSV: نسخه آنلاین QuickBooks (QBO) ابزاری به نام Export Data ارائه میدهد. به Settings ⚙ → Tools → Export Data بروید. در کادر محاورهای خروجی، از تب Reports برای انتخاب دادهها (مانند General Ledger یا Transaction List) و از تب Lists برای لیستها (سرفصل حسابها و غیره) استفاده کنید، All dates را انتخاب کرده و به Excel خروجی بگیرید. QuickBooks Online یک فایل ZIP حاوی چندین فایل Excel برای گزارشها و لیستهای انتخاب شده (به عنوان مثال، سود و زیان، ترازنامه، دفتر کل، مشتریان، فروشندگان، سرفصل حسابها و غیره) دانلود میکند. سپس میتوانید این فایلهای Excel را برای پردازش به CSV تبدیل کنید.
گزارش جزئیات تراکنش: اگر خروجی پیشفرض QBO شامل یک فایل دفتر کل واحد نباشد، میتوانید به صورت دستی یک گزارش دقیق تهیه کنید:
- به Reports بروید و Transaction Detail by Account (یا General Ledger در برخی نسخههای QBO) را پیدا کنید.
- Report period را روی بازه کامل پنج ساله تنظیم کنید.
- زیر گزینههای گزارش، Group by = None را تنظیم کنید (تا تراکنشهای فردی بدون جمعهای فرعی لیست شوند).
- ستونها را سفارشی کنید تا حداقل شامل این موارد باشند: Date، Transaction Type، Number، Name (Payee/Customer)، Memo/Description، Account، Debit، Credit (یا یک ستون Amount واحد) و Balance. در صورت استفاده، هرگونه class یا location را نیز شامل کنید.
- گزارش را اجرا کرده و سپس Export to Excel را بزنید.
این کار یک دفتر کل دقیق از تمام تراکنشها را به دست میدهد. آن را به صورت CSV ذخیره کنید. هر خط نشاندهنده یک آرتیکل (پستینگ) از یک تراکنش است. بعداً برای تبدیل، باید خطوط را بر اساس تراکنش گروهبندی کنید.
سرفصل حسابها و لیستهای دیگر: در QuickBooks Online میتوانید سرفصل حسابها را از طریق Accounting → Chart of Accounts → Batch Actions → Export to Excel خروجی بگیرید. این کار را برای دریافت نامها و انواع حسابها انجام دهید. به همین ترتیب، اگر میخواهید نامها را برای فراداده (metadata) حفظ کنید، لیست مشتریان، فروشندگان و غیره را نیز خروجی بگیرید.
API QuickBooks Online (اختیاری): برای یک رویکرد برنامهنویسی، Intuit یک REST API برای دادههای QBO ارائه میدهد. کاربران پیشرفته میتوانند یک اپلیکیشن QuickBooks Online ایجاد کنند (نیاز به حساب توسعهدهنده دارد) و از API برای دریافت دادهها در فرمت JSON استفاده کنند. به عنوان مثال، میتوانید از نقطه پایانی (endpoint) Account
برای سرفصل حسابها و از نقاط پایانی گزارش JournalEntry
یا GeneralLedger
برای تراکنشها کوئری بگیرید. SDKهای پایتون مانند python-quickbooks
وجود دارند که API را در خود جای دادهاند. با این حال، استفاده از API شامل احراز هویت OAuth است و برای یک مهاجرت یکباره، مگر اینکه اتوماسیون را ترجیح دهید، بیش از حد پیچیده است. برای اکثر موارد، خروجی دستی به CSV/Excel سادهتر و کمتر مستعد خطا است.