Інструмент імпортування QIF

Thomas Baumgart

Формат QIF вважається шкідливим

Загалом кажучи, якщо можете, уникайте роботи з форматом QIF. Цей формат не пристосовано для передавання фінансових даних. Серед іншого, у QIF є такі проблеми:

  • Відсутність стандартизованого формату. У різних версіях однієї програми одному елементу може бути надано різних значень.

  • Відсутність ідентифікаторів операцій. Оскільки з операціями не пов'язано жодних ідентифікаційних номерів, пошук дублікатів є принаймні непростим завданням.

  • Недостатня виразність. Словник формату дуже простий і не може відтворити всю глибину сучасних фінансових даних.

Загалом кажучи, це і є причини, з яких Intuit припинила підтримку роботи з вхідними даними у форматі QIF у Quicken 2005. Якщо ви можете вибирати формат отримання даних, наприклад можете вибрати OFX, не використовуйте формат QIF.

Як імпортувати файл QIF?

Щоб імпортувати файл QIF, спочатку переконайтеся, що відкрито коректний файл KMyMoney. Потім скористайтеся пунктом меню ІмпортуватиQIF... з меню Файл.

У діалоговому вікні, яке буде відкрито, програма запитає вас про назву файла QIF і надасть вам змогу вказати файл у графічному режимі за допомогою натискання кнопки Навігація.

Крім того, у KMyMoney існують відмінності між імпортом файла виписки банку і даних журналу, експортованих іншою програмою. Типовим є імпортування файла банківської виписки. Якщо ви імпортуєте дані з вашої попередньої програми для ведення фінансового обліку, позначте відповідний пункт.

Загалом кажучи, типовий профіль QIF має виконати своє завдання під час імпортування ваших даних QIF. Але іноді може виникнути потреба у використанні зміненого профілю QIF. Докладніше про це можна дізнатися з наступного розділу.

Натисніть кнопку Імпортувати, щоб наказати програмі імпортувати файл QIF.

У відповідь KMyMoney розпочне сканування файла для визначення форматів, використаних для представлення дат і чисел. Якщо програмі не вдасться однозначно визначити формат дати, KMyMoney попросить користувача обрати один з форматів зі списку можливих форматів дати.

Далі, KMyMoney імпортує дані і створює всі потрібні об'єкти, зокрема записи даних отримувачів, рахунки і записи категорій, записи даних щодо курсів. Якщо це можливо, буде зроблено спробу встановити відповідність існуючих записів до імпортованих відомостей. Під час процедури імпортування буде показано панель поступу.

Якщо KMyMoney не вдасться визначити назву рахунку, до якого слід виконати імпорт, програма попросить користувача обрати запис рахунку, куди буде імпортовано дані. Якщо у вашому файлі ще немає запису цього рахунку, ви можете створити рахунок натисканням кнопки Створити.

Наприкінці процедури імпортування KMyMoney покаже вікно статистичних даних щодо імпортування виписки.

Статистичні дані виписки

Після імпортування всі імпортовані записи у перегляді облікової книги буде позначено жовтим тлом. Якщо KMyMoney вдасться встановити відповідність імпортованого запису операції з вже існуючим записом операції, колір тла буде змінено на світло-зелений.

На наступному кроці вам слід перевірити імпортовані дані і підтвердити їх. Цей крок є спільним для всіх операцій з імпортування з будь-яких джерел. Його докладно розглянуто у окремому розділі цього підручника.

Примітка

Кольори, які програма використовуватиме для позначення імпортованих та відповідних записів операцій можна змінювати. У вашому середовищі вони можуть бути відмінними від вказаних у цьому підручнику.

Налаштування профілю QIF

Оскільки не існує загальновизнаного стандарту щодо запису файлів QIF, виробники програмного забезпечення припускаються певних довільних тлумачень у цьому форматі та додають власні нюанси. За допомогою профілю QIF ви можете повідомити KMyMoney про особливості вашого файла. Щоб розпочати редагування існуючого профілю QIF чи створити профіль, натисніть кнопку Створити у діалоговому вікні імпортування QIF, розташовану поруч з інструментом вибору профілів.

Редактор профілів QIF

Примітка

У попередніх версіях KMyMoney для визначення специфікації дат і сум було передбачено окрему вкладку. Поточна версія KMyMoney визначає ці параметри шляхом аналізу самого файла. Якщо програмі не вдасться визначити всі параметри, вона попросить користувача уточнити їх під час імпортування.

Пошук відповідних операцій

Як ми вже раніше вказували, одним з основних недоліків формату QIF є відсутність унікального ідентифікатора для кожної операції. Отже, якщо під час імпортування файла QIF деякі з записів операцій збігатимуться з записами операцій, які вже є у вашій обліковій книзі, ви можете отримати дублікати. KMyMoney намагається запобігти утворенню таких дублікатів шляхом виявлення записів операцій, які є подібними до записів, вже присутніх у списку операцій. Програма знайде дублікати за вказаними вами параметрами і відкине зайві записи.

Під час подібного відкидання можуть виникнути проблеми через автоматичне відкидання операцій, параметри яких схожі, але які є насправді різними операціями. У такому разі ви зможете пізніше скасувати встановлення відповідності між такими записами операцій за допомогою перегляду облікових книг.

Створення фільтра імпортування

Іноді ви можете зіткнутися з даними у нетиповому форматі, наприклад у форматі значень, відокремлених комами, (CSV) або якомусь іншому форматі. З версії 4.6 до складу KMyMoney включено додаток імпортування CSV, але ви можете імпортувати до KMyMoney дані у інших форматах за допомогою фільтра імпортування QIF. Фільтром буде написана вами програма, яка отримає дані з імпортованого файла і створить на виході файл QIF. Цією програмою може бути скрипт оболонки, скрипт мовою Perl, зібрана програма, написана мовою C/C++, або будь-який інший інструмент обробки. Достатньо лише, щоб система могла його запустити.

Щоб скористатися цим фільтром, відкрийте вікно редагування профілю QIF і перейдіть на вкладку «Фільтр». Введіть у відповідне поле адресу вашої програми для фільтрування. Згодом, під час імпортування QIF за допомогою створеного вами профілю файл перед імпортуванням буде оброблено вашою програмою-фільтром.

Часто виникає проблема з перетворенням списку відокремлених комою значень на файл QIF. Приклад подібного перетворення можна знайти у підручнику з програми awk. Створіть скрипт з назвою csv2qif.awk, який складатиметься з таких двох рядків:

BEGIN { FS=","; print "!Type:Bank" }

        { print "D"$1; print "T"$2; print "N"$3; print "P"$4; print "M"$5; print "^" }

Після цього змініть ключі QIF (D,T,N,P,M) так, щоб їх порядок відповідав порядку полів у ваших даних CSV. Встановіть фільтр вхідних даних awk -f csv2qif.awk.

Іншою проблемою, з якою ви можете зіткнутися, є кодування файлів QIF. Програма KMyMoney вважатиме, що типовим кодуванням файлів є UTF8. Якщо ваш файл закодовано у якийсь інший спосіб, варто спочатку перетворити його на файл у кодуванні UTF8. Наприклад, щоб перетворити файл з кодування iso-8859-1, вам слід вказати фільтр-команду recode iso-8859-1..utf-8.

Особливі додатки QIF KMyMoney

Як ми вже згадували раніше, одним з основних недоліків формату QIF є відсутність унікальних ідентифікаторів для кожної з операцій. Якщо ви пишете власний інструмент створення QIF (або фільтр, про який ми говорили вище), ви можете подолати цю проблему. У KMyMoney передбачено підтримку поля «#». Інструмент імпортування вважатиме вміст цього поля унікальним ідентифікатором операції і відкидатиме запис, якщо запис з таким ідентифікатором вже є у системі.