Ръководство за миграция от QuickBooks към Beancount
Етап 1: Експортиране на данни от QuickBooks
Мигрирането на данни за пет години започва с извличането на всички записи от QuickBooks в използваем формат. QuickBooks Desktop и QuickBooks Online имат различни опции за експорт:
1.1 QuickBooks Desktop – Опции за експорт
IIF (Intuit Interchange Format): QuickBooks Desktop може да експортира списъци (като сметкоплан, клиенти, доставчици) в текстови файлове .IIF
. В QuickBooks Desktop отидете на Файл → Помощни програми → Експорт → Списъци в IIF (File → Utilities → Export → Lists to IIF), след което изберете списъците, от които се нуждаете (напр. Сметкоплан, Клиенти, Доставчици). Това създава текстов файл, който включва имена на сметки, типове и данни от списъците. IIF е патентован, но текстов формат, който е сравнително лесен за анализиране. Използвайте го, за да заснемете своя Сметкоплан и списъци с контакти за справка в Beancount.
Главна книга/Оборотна ведомост чрез CSV: За транзакционни данни QuickBooks Desktop не предоставя експорт с едно кликване, но можете да използвате отчети. Препоръчителният метод е да експортирате Главния журнал (General Journal) (всички транзакции) за желания период. В QuickBooks Desktop отворете Отчети → Счетоводител и данъци → Журнал (Reports → Accountant & Taxes → Journal), задайте датите от най-ранната транзакция до днес и кликнете върху Експорт → Excel. Запазете резултата като CSV, след като премахнете заглавките/долните колонтитули на отчета и празните колони. Уверете се, че числовите данни са чисти: включете стотинки (напр. 3.00
, а не 3
), без излишни кавички и без символи за валута или двойни минуси в CSV файла. CSV файлът трябва да има колони като Дата, № на транзакция, Име, Сметка, Бележка, Дебит, Кредит, Салдо (или една колона за сума в зависимост от формата на отчета).
Съвет: 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 в нашия процес.
1.2 QuickBooks Online – Опции за експорт
Вграден експорт в Excel/CSV: QuickBooks Online (QBO) предоставя инструмент за Експорт на данни (Export Data). Отидете на Настройки ⚙ → Инструменти → Експорт на данни (Settings ⚙ → Tools → Export Data). В диалоговия прозорец за експорт използвайте раздела Отчети (Reports), за да изберете данни (напр. Главна книга или Списък на транзакциите) и раздела Списъци (Lists) за списъци (сметкопла н и др.), изберете Всички дати (All dates) и експортирайте в Excel. QuickBooks Online ще изтегли ZIP архив, съдържащ множество Excel файлове за избраните отчети и списъци (например, Отчет за приходите и разходите, Баланс, Главна книга, Клиенти, Доставчици, Сметкоплан и др.). След това можете да конвертирате тези Excel файлове в CSV за обработка.
Отчет с детайли на транзакциите: Ако експортът по подразбиране на QBO не включва един файл с Главна книга, можете ръчно да генерирате подробен отчет:
- Отидете на Отчети (Reports) и намерете Детайли на транзакциите по сметка (Transaction Detail by Account) (или Главна книга (General Ledger) в някои версии на QBO).
- Задайте Период на отчета (Report period) за целия петгодишен период.
- Под опциите на отчета задайте Групиране по = Няма (Group by = None) (за да се изброят отделните транзакции без междинни суми).
- Персонализирайте колоните, за да включват поне: Дата, Тип на транзакцията, Номер, Име (Получател/Клиент), Бележка/Описание, Сметка, Дебит, Кредит (или една колона Сума) и Салдо. Вкл ючете клас или местоположение, ако се използват.
- Генерирайте отчета и след това Експортирайте в Excel.
Това дава подробна книга на всички транзакции. Запазете я като CSV. Всеки ред ще представлява едно записване (осчетоводяване) на транзакция. По-късно ще трябва да групирате редовете по транзакции за конвертиране.
Сметкоплан и други списъци: QuickBooks Online може да експортира сметкоплана чрез Счетоводство → Сметкоплан → Групови действия → Експорт в Excel (Accounting → Chart of Accounts → Batch Actions → Export to Excel). Направете това, за да получите имената и типовете на сметките. По същия начин експортирайте Клиенти, Доставчици и др., ако искате да прехвърлите имената за метаданни.
QuickBooks Online API (По избор): За програмен подход, Intuit предоставя REST API за данни от QBO. Напредналите потребители могат да създадат приложение за QuickBooks Online (изисква се акаунт на разработчик) и да използват API за извличане на данни в JSON. Например, можете да заявите крайната точка Account
за сметкоплана и крайната точка за отчет JournalEntry
или GeneralLedger
за транзакциите. Има Python SDK-та като python-quickbooks
, които обвиват API-то. Въпреки това, използването на API включва OAuth удостоверяване и е прекалено сложно за еднократна миграция, освен ако не предпочитате автоматизация. В повечето случаи ръчният експорт в CSV/Excel е по-прост и по-малко податлив на грешки.
Етап 2: Трансформиране и почистване на данни
След като имате данните от QuickBooks в CSV (и/или IIF), следващата стъпка е да ги конвертирате в текстовия формат на счетоводната книга на Beancount. Това включва анализиране на експортите, съпоставяне на сметките от QuickBooks със сметкоплана на Beancount и форматиране на транзакциите в синтаксиса на Beancount.