&Ace.Jones; &Ace.Jones.mail;
3 липня 2011 року
4.6

# Імпортування та експортування

&Tony.Bloomfield; &Tony.Bloomfield.mail;

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

### Файли GnuCash

Інструмент імпортування &kappname; з GnuCash виконує безпосереднє читання стандартних файлів (&XML;), створених за допомогою GnuCash версій 1.8 і 2.0. Не підтримуються такі можливості:

- імпортування бази даних (Postgres)

- імпортування файлів «багатотомної» книги

- імпортування до існуючого файла &kappname;

- імпортування даних малого бізнесу (працівники, інвойси тощо)

- експортування до файлів GnuCash.

Ймовірно, імпортування відбудеться належним чином, лише якщо надано коректний файл. Рекомендуємо вам виконати операцію Перевірити і виправити все у GnuCash (з меню Дії), перш ніж виконувати імпортування.

Файли можна відкривати за допомогою визначення файла у командному рядку (`kmymoney <шлях_до_файла>`) або за допомогою пунктів меню &kappname; &Ctrl;O Файл Відкрити та Файл Імпортувати .

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

### Подібності, відмінності і термінологія

#### Використання у малому бізнесі

Слід зауважити, що &kappname; є інструментом керування особистими фінансами, а отже, не підтримує напряму будь-яких з бізнес-можливостей GnuCash, зокрема податкових таблиць, створення платіжних відомостей та стеження за лотами. Всі рахунки відрахування або отримання платежів буде імпортовано як рахунки пасивів та активів, відповідно.

#### Рахунки

##### Типи рахунків

У обох програмних продуктах найвищим рівнем структури у файлах є рахунок. У &kappname; передбачено підтримку 5 основних типів рахунків: актив, пасив, прибутки, витрати і маржа, кожен з яких має різноманітні підтипи, наприклад чековий, кредитний тощо. У &kappname; для кожного з цих п’яти типів існує «стандартний» рахунок: всі інші рахунки є похідними одного з цих типів. У &kappname; підтримується послідовніший (або менш гнучкий, залежно від точки зору) підхід до розрізнення типів рахунків, ніж у GnuCash. Інструмент імпортування виправляє всі помічені непослідовності. Подібне виправлення може призвести до відхилень у структурі рахунка, але все це можна виправити після завершення імпортування.

##### Категорії

У &kappname; термін «категорія» використовується для позначення належності рахунка до типу прибутків чи витрат. На відміну від GnuCash, категорії не вважаються рахунками «облікових книг», отже запис операцій безпосередньо до тек не підтримується: під час запису операції виконується призначення до рахунків інших типів.

##### Структура і заповнювачі

У GnuCash передбачено підтримку використання рахунків-заповнювачів. За суттю це просто призначені лише для читання рахунки, до яких не можна записувати операції, але які виконують роль, подібну до тек у структурі тек, тобто містять інші рахунки. Хоча у &kappname; і не передбачено безпосередньої підтримки подібної можливості, можливе створення створення відношення підлеглості, отже інструмент імпортування імітуватиме заповнювачі створенням порожніх рахунків.

##### Карта типів ресурсів

Тип GnuCash | Тип &kappname;
--- | ---
BANK | Чековий
CHECKING | Чековий
SAVINGS | Ощадний
ASSET | Активи
CASH | Готівка
CURRENCY | Готівка
MONEYMRKT | MoneyMarket
STOCK | Капітал
MUTUAL | Капітал
Маржа | Маржа
LIABILITY | Пасиви
CREDIT | Кредитна картка
INCOME | Прибуток
EXPENSE | Витрата
RECEIVABLE | Активи
PAYABLE | Пасиви

#### Операції і дроблення

##### Збалансовані операції

Як і у GnuCash, дані вводяться у формі операцій, кожна з яких, загалом кажучи, складається з 2 або більшої кількості записів дроблення. Фактично, коректні операції GnuCash завжди складаються з принаймні 2 дроблень. Щоб підтримувати стандарт облікових книг з подвійним записом GnuCash, ці дроблення мають бути збалансованими (тобто у сумі давати нуль). У &kappname; також підтримується цей стандарт, який, втім, не є обов’язковим, але всі імпортовані записи операцій, які не буде збалансовано, програма позначить у обліковій книзі як такі, що мають проблеми.

##### Отримувачі

У &kappname; бажано, щоб у всіх операцій був отримувач (загальний термін, який визначає як платників, так і отримувачів платежів). На відміну від GnuCash, програма спостерігає за списком цих отримувачів. Назви або імена отримувачів створюються інструментом імпортування на основі даних поля опису операції GnuCash.

##### Трансферти

У &kappname; терміном «трансферт» позначається операція, за якої гроші не переходять з одної категорії до іншої, а лише пересуваються між рахунками активів і/або пасивів.

##### Узгодити

У &kappname; передбачено функціональну можливість узгодження рахунка, подібну до можливості у GnuCash, отже буде імпортовано відповідні позначки стану операцій.

#### Доходи

У GnuCash термін «власність» використовується для позначення грошових та негрошових активів. У &kappname; для кожного з цих активів використовується власний термін.

##### Валюти

У &kappname; передбачено підтримку всіх типів іноземних валют. Крім того, &kappname; вимагає від користувача визначення основної (базової) валюти, яка буде типовою валютою нових облікових записів. Інструмент імпортування спробує визначити найімовірнішу базову валюту, хоча цей вибір і може бути відхилено на користь альтернативної валюти.

(ЗАУВАЖЕННЯ: у поточній версії &kappname; не передбачено підтримки рахунків у вилучених з обігу валютах (окрім валют, замінених на євро). Для роботи у поточній версії програми вам потрібно вилучити всі такі рахунки з файла GnuCash до імпортування. Розробники сподіваються усунути цю незручність у майбутніх випусках програми.)

##### Цінні папери та інвестиції

Негрошові активи (зазвичай, акції та облігації) у &kappname; називаються цінними паперами. У обробці цих активів полягає основна відмінність між двома програмними продуктами. У &kappname; всі рахунки у цінних паперах мають бути підлеглими рахунками інвестиційного рахунка. Докладніше про це можна дізнатися з глави, присвяченої інвестиціям. Хоча користувач і може встановити подібне відношення між рахунками, сама програма GnuCash не визначає подібної структури, отже інструменту імпортування не вдасться виявити подібні рахунки і виконати автоматичне перетворення. Ви можете скористатися одним з трьох варіантів:

- Створити окремий інвестиційний рахунок для кожного цінного паперу з назвою цінного паперу.

- Створити єдиний інвестиційний рахунок, який буде «батьківським» для всіх рахунків цінних паперів.

- Створити декілька інвестиційних рахунків і призначати до них цінні папери за вказівками користувача.

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

##### Ціни та курси валют

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

##### Інтерактивні курси

Для отримання даних про ціни і курси з мережі GnuCash використовує пакунок з назвою Finance::Quote. У останніх версіях &kappname; передбачено підтримку цього пакунка для отримання курсів акцій. Цією підтримкою можна скористатися як типовою під час імпортування даних. Але ви можете скористатися і власним методом отримання даних, що підтримується &kappname;. Цей метод докладніше описано у розділі, присвяченому інтерактивним курсам.

Якщо ви звернетеся саме до останнього способу, програма відкриє наведене нижче діалогове вікно, за допомогою якого ви зможете обрати «рідне» для &kappname; джерело курсів або вказане вами джерело курсів для кожного з рахунків, з якими слід пов’язати курси з мережі. Але позначку біржі (тікер) під час імпортування змінено не буде. Оскільки ця позначка майже напевно буде різною у різних пакунках, вам доведеться змінити її вручну після завершення процесу імпортування. Під час наступних оновлень курсів валют програма вже не використовуватимеFinance::Quote, замість нього завжди використовуватиметься «рідний» спосіб отримання даних.

#### Заплановані операції

У &kappname; не підтримується розділення GnuCash між операціями шаблонів і частотою їх виконання. Дані операцій буде здубльовано, якщо однаковий шаблон використовується у різних розкладах, але подібне дублювання навряд чи зашкодить імпортуванню.

##### Типи розкладу

У &kappname; всі розклади розподіляються за трьома типами: накладні, депозити і трансферти. Оскільки у GnuCash подібного поділу не передбачено, інструмент імпортування спробує визначити тип за рахунком і напрямком руху грошей. Іноді подібне визначення призводитиме до помилкових припущень, які доведеться виправляти вручну.

##### Підозріливі розклади

Деякі з можливостей операцій, що виконуються за розкладом у GnuCash, не передбачено у &kappname;, отже інструмент імпортування намагатиметься досягти розумного компромісу під час перетворення даних. Подібні операції буде позначено як підозріливі, ви зможете змінити їх вручну під час процедури імпортування. Прикладами ситуацій, які можуть спричинити подібні помилки є:

- деякі з проміжків розкладу, які підтримуються у GnuCash ще не реалізовано у &kappname;

- &kappname; не підтримує використання формул і змінних у полях рахунків

- складні випадки, які ще не було визначено для імпортування.

Незважаючи на зусилля авторів програми, через величезну кількість задіяних факторів заплановані операції можуть спричинити критичну помилку у роботі &kappname;. Якщо ви зіткнетеся з такою проблемою, інструмент імпортування запропонує вам відкинути всі підозріливі розклади.

#### Звіти

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

### Вибір параметрів імпортування

#### Обробка інвестицій

Див. розділ «Цінні папери та інвестиції», наведений вище.

#### Інтерактивні курси

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

Див. розділ «Інтерактивні курси», наведений вище.

#### Заплановані операції

Див. розділ «Заплановані операції», наведений вище.

#### Параметри декодування

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

#### Параметр нотаток до операцій

За певних умов нерозділені операції GnuCash можуть містити залишкові, часто некоректні записи приміток, які за звичайних умов невидимі для користувача. Після імпортування до &kappname; через відмінності у параметрах показу ці дані стають видимими. Часто записи таких операцій містять поле «Нотатки», де описано справжнє призначення операції. Якщо цей пункт буде позначено, подібні нотатки, якщо їх буде виявлено, буде використано для заміни надлишкових даних приміток.

#### Параметри зневаджування

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

### Імпортування звіту

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

- Кількість записів

- Непослідовності у типах рахунків і діях

- Подробиці щодо підозріливих розкладів

&Thomas.Baumgart; &Thomas.Baumgart.mail;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Іноді ви можете зіткнутися з даними у нетиповому форматі, наприклад у форматі значень, відокремлених комами, (CSV) або якомусь іншому форматі. З версії 4.6 до складу &kappname; включено додаток імпортування CSV, але ви можете імпортувати до &kappname; дані у інших форматах за допомогою фільтра імпортування 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. Програма &kappname; вважатиме, що типовим кодуванням файлів є UTF8. Якщо ваш файл закодовано у якийсь інший спосіб, варто спочатку перетворити його на файл у кодуванні UTF8. Наприклад, щоб перетворити файл з кодування iso-8859-1, вам слід вказати фільтр-команду `recode iso-8859-1..utf-8`.

### Особливі додатки QIF &kappname;

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

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

Щоб експортувати один з ваших рахунків до файла QIF, скористайтеся пунктом Експортувати QIF з меню Файл. Програма запитає вас про те, який з окремих рахунків слід експортувати, файл, до якого слід виконати експорт, та профіль QIF, яким слід скористатися для експортування.

У поточній версії інструменту експортування QIF не передбачено можливості експортування даних інвестицій.

Експорт до QIF

&Ace.Jones; &Ace.Jones.mail;
&Thomas.Baumgart; &Thomas.Baumgart.mail;

## Додаток імпортування OFX

### Звантаження додатка

У &kappname; передбачено простий і точний імпорт файлів OFX. Але цю функціональну можливість не вбудовано до основної програми. Вам доведеться звантажити і встановити додаток імпортування OFX. Після встановлення цього додатка, у меню Файл Імпортувати автоматично з’явиться пункт, призначений для імпортування файлів OFX.

Зауважте, що значна частина версій &kappname; у пакунках зібрана з вбудованим інструментом імпортування OFX. Цей інструмент може зберігатися у окремому пакунку. Якщо ви виявили, що у вашій версії не встановлено інструменту імпортування OFX, спочатку пошукайте відповідний пакунок у тому ж сховищі, звідки ви встановлювали основний пакунок &kappname;.

Якщо ви виконували встановлення з пакунків RPM, додаток імпортування OFX міститься у kmymoney-ofx. Цей пакунок можна знайти поряд з основним пакунком RPM &kappname;. Якщо ви збирали програму з вихідних кодів, вам слід попередньо встановити заголовки бібліотеки та саму бібліотеку libOFX 0.9 у вашій системі. Скрипт збирання &kappname; виявить відповідні файли і збере потрібний вам додаток. Передбачено і підтримку libOFX 0.8.2, але у цій версії бібліотеки немає підтримки декількох цікавих можливостей. На час випуску версії &kappname; 4.6 найсвіжішою версією libofx була 0.9.4.

Якщо під час спроби збирання &kappname; у вас виникнуть проблеми і ви впевнені, що встановили належну версію libOFX, будь ласка, зверніться до списку листування розробників за адресою &devlist; по допомогу. До вашого повідомлення долучіть файл config.log, стиснутий за допомогою gzip.

### Імпортування файла OFX

Основним способом імпортування файла OFX є вибір інструменту імпортування за допомогою панелі меню. У меню Файл оберіть пункт Імпортувати, а потім пункт OFX.... Якщо у підменю «Імпортувати» немає пункту OFX, додаток імпортування OFX не було встановлено належним чином. Будь ласка, зверніться до попереднього розділу цього підручника.

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

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

Будь ласка, зауважте, що у цьому розділі описано «рідний» для програми інструмент імпортування OFX. Крім нього, файли OFX може бути імпортовано за допомогою додатка імпортування AqBanking, якщо вами було встановлено цей додаток. Зауважте, що поведінка цих двох інструментів імпортування буде дещо різною, їх написанням та супроводом переймаються зовсім різні люди.

### Імпортування даних щодо інвестування

Будь ласка, зауважте, що якщо ви імпортуєте файл з записами щодо операцій з інвестування, ці записи від початку мають міститися у вашому файлі &kappname;. Для встановлення відповідності використовується стандартний символ акції, отже переконайтеся, що цей символ у &kappname; точно збігається з символом у файлі, який ви імпортуєте.

### З’єднання з мережею

Найпростішим способом імпортування файла OFX є встановлення вебз’єднання. Відвідайте сайт вашої банківської установи і натисніть посилання для звантаження файла OFX. Ваш переглядач інтернету запитає вас про назву програм, за допомогою якої ви бажаєте відкрити відповідний файл. Вкажіть на файл програми &kappname;. Після цього звантажений файл OFX буде імпортовано до файла &kappname;, який було відкрито у програмі останнім. Крім того, ви можете змінити прив’язку файлів у вашому стільничному середовищі, отже зробити так, що файли OFX завжди відкриватимуться у &kappname;.

Якщо вам потрібно імпортувати файл OFX у якийсь інший файл &kappname;, спочатку завантажте цей файл до &kappname;, а потім відвідайте сторінку вашого банку.

### Безпосереднє з’єднання

У поточній версії &kappname; підтримується також безпосереднього з’єднання OFX (Direct Connect). Це надає вам змогу встановити безпосередній зв’язок з вашою банківською установою для отримання виписок. У майбутньому, коли буде створено докладнішу довідку, ці відомості буде пересунуто до окремого розділу.

Щоб увімкнути цю можливість, вам слід зібрати &kappname; з параметром налаштування --enable-ofxbanking (тепер цей параметр є типовим).

Будь ласка, зауважте: багато банків вимагають окремої підписки, надають окремі паролі або коди PIN, а також можуть стягувати окрему плату за відповідну послугу. Жоден з банків не надасть вам безпосередньої підтримки &kappname;. Вам слід повідомити працівникам банку, що ви маєте намір встановити безпосередній зв’язок за допомогою MS Money або Quicken.

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

Після того, як ваш рахунок буде налаштовано для мережевої роботи з банком, перейдіть до облікової книги цього рахунка. Потім оберіть у меню Рахунок оберіть пункт Оновити рахунок…. Програма з’єднається з вашим банком і звантажить виписку за попередні 60 днів.

У версіях &kappname; до 4.6 назва отримувача завжди визначалося за полем PAYEEID. З версії 4.6 назва отримувача під час операції з OFX визначається на основі одного з полів PAYEEID, NAME або MEMO. Налаштувати цю можливість та деякі інші параметри безпосереднього з’єднання OFX можна за допомогою відповідної вкладки діалогового вікна редагування рахунка.

### Експортування файла OFX

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

&Allan.Anderson; &Allan.Anderson.mail;

## Додаток імпортування CSV

### Чому виникає потреба у імпортуванні файлів CSV

Загалом кажучи, імпортувати краще OFX. Але не всі банківські установи надають виписки саме у цьому форматі. Доступ же до файлів CSV (значень, відокремлених комами) майже завжди можна отримати (іноді такі файли описують як файли Excel або файли електронних таблиць). Крім того, часто такі файли створити доволі просто, достатньо скопіювати дані, наприклад з текстового файла, і виконати їхнє редагування вручну.

Основним завданням додатка є імпортування даних з виписок банків, але передбачено можливості імпортувати деякі виписки щодо інвестицій (вкладень). Крім того, у додатку передбачено базові можливості створення файлів QIF на основі даних з CSV.

### Звантаження додатка

У &kappname; передбачено простий і точний імпорт файлів CSV. Але цю функціональну можливість не вбудовано до основної програми, хоча код є частиною архіву з кодами програми &kappname;. Вам доведеться встановити додаток окремо. Після встановлення цього додатка у меню Файл Імпортувати автоматично з’явиться пункт, призначений для імпортування файлів CSV.

Додаток імпортування CSV є набагато новішим за додаток OFX, отже має пройти певний час доки у пакунки з &kappname; буде включено можливість імпортування або передбачено можливість встановлення окремого пакунка з додатком. Переконайтеся, що додаток увімкнено у &kappname;. Скористайтеся пунктом меню Параметри Налаштувати KMyMoney Додатки. Якщо у списку немає додатка CSV, спочатку переконайтеся, що додаток встановлено у те саме місце, куди встановлено основний пакунок &kappname;.

Якщо ви виконували встановлення з пакунків RPM, додаток імпортування CSV міститься у kmymoney-csv. Цей пакунок можна знайти поряд з основним пакунком RPM &kappname;. Якщо ви збирали програму з вихідних кодів, ніяких додаткових залежностей не потрібно. Скрипт збирання &kappname; виявить відповідні файли і збере додаток.

Якщо під час спроби збирання &kappname; у вас виникнуть проблеми і у вас буде початковий код додатка, будь ласка, зверніться до списку листування розробників за адресою &devlist; по допомогу. До вашого повідомлення долучіть файл config.log, стиснутий за допомогою gzip.

### Імпортування файла CSV

Щоб імпортувати дані з файла CSV, скористайтеся пунктом основного меню програми: Файл Імпортувати CSV.... Якщо пункту CSV немає у меню «Імпортувати», додаток імпортування CSV встановлено з помилками. Щоб усунути їх, будь ласка, зверніться до попереднього розділу підручника.

Вікно інструмента імпортування CSV поділено на три основних частини.

- У верхній лівій частині ви побачите три вкладки: Робота з банком, Інвестиція та Параметри. Через відмінності у обробці банківських та інвестиційних даних вам слід визначитися з типом даних, які імпортуються до вибору файла. Зробити це можна натисканням заголовка потрібної вкладки: Робота з банком або Інвестиція. Вибрану вкладку буде позначено символом «*» після заголовка, щоб уникнути помилкового позначення не тієї вкладки. Якщо пізніше ви вирішите перейти на іншу вкладку, додаток попередить вас про те, що ви втратите поточні параметри і надасть вам змогу скасувати перемикання. Докладний опис всіх трьох вкладок можна знайти нижче.

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

- У верхній правій частині буде показано декілька кнопок керування діями з імпортування.

  #### Відкрити файл

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

  #### Імпортувати

  За допомогою цієї кнопки можна наказати додатку виконати дію з імпортування даних з файла на основі параметрів, визначених за допомогою вкладки Робота з банком або Інвестиція та вкладки Параметри у описаний нижче спосіб. &kappname; спитає вас про назву рахунка, до якого слід імпортувати дані.

  #### Зберегти як QIF

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

  #### Вийти

  Закриває вікно додатка після збереження значень параметрів.

  #### Спорожнити позначені

  Спорожнює всі вибрані або налаштовані значення у стовпчиках і параметри.

Імпортування файла CSV є багатокроковим процесом. Обов’язковими є не всі кроки, точний порядок кроків залежить від особливостей імпортованих даних.

1. Вкажіть тип даних, які має бути імпортовано: банківські чи інвестиційні.

2. Відкрийте файл з даними.

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

4. Пов’яжіть поля або стовпчики у імпортованих даних з певними типами даних у програмі.

5. Підтвердіть або скоригуйте параметри імпортування, зокрема формат дати та запис десяткових чисел.

6. Підтвердіть імпортування.

Після вибору вкладки Робота з банком або Інвестиція натисніть кнопку Відкрити файл і виберіть файл вхідних даних CSV. До виконання дії з імпортування даних з файла вам слід вказати &kappname; параметри форматування файла, які є різними для файлів, які містять дані щодо роботи з банками та дані інвестицій. Для початку ж, ви можете скоригувати деякі параметри, які є спільними для файлів обох типів.

#### Параметри додатка імпортування CSV

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

##### Роздільник полів

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

##### Роздільник тексту

Таким роздільником зазвичай є одинарні або подвійні лапки. Він є важливим у разі, якщо символ відокремлення полів міститься у стовпчику, зокрема у полі нотатки.

Після того, як поля буде показано належним чином, вам слід повідомити додаток про розташування стовпчиків даних у файлі CSV. Зробити це можна на вкладці Робота з банком або Інвестиція, відповідно. Зауважте, що ви можете перемикатися між вкладками типів даних та вкладкою параметрів без втрати даних. Якщо ви зробили помилку на вкладці Робота з банком або Інвестиція у визначенні кількості стовпчиків, просто вкажіть змініть цю кількість. Крім того, ви можете натиснути кнопку Скасувати вибір, щоб скасувати вибір всіх параметрів і повторити спробу з початку.

##### Десятковий знак

Під час кожного імпортування після вибору полів імпортування має бути вибрано символ відокремлення дробової частини, оскільки його вибір запускає процедуру перевірки вибору стовпчиків сум на вкладці Робота з банком або Інвестиція. Встановіть Десятковий знак відповідно до використаного у вашому файлі, а не відповідно до визначень локалі. Якщо для вашої локалі встановлено інше значення, це буде помітно за результатом перетворення. У області показу вмісту (нижня частина вікна) числові поля буде позначено кольорами: зеленим, якщо результат є коректним, червоним, якщо маємо помилку. Крім того, позначено буде початковий і кінцевий рядки (див. нижче). Можливо, буде показано попередження, якщо у жодній з вибраних комірок не міститься позначеного символу.

##### Символ тисячних розрядів

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

##### Формат дати

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

##### Початковий рядок

Тут можна вказати кількість рядків, які інструмент імпортування має пропустити на початку файла.

##### Кінцевий рядок

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

#### Імпортування банківських даних

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

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

- Якщо стовпчиків два, «витрати» і «надходження», позначте пункт Стовпчики витрат/надходжень і вкажіть відповідні номери стовпчиків у спадних списках Витрати і Надходження.

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

- Додаток автоматично виявляє спроби призначити один стовпчик до двох різних полів. Оскільки сама програма не може визначити, яке з призначень є правильним, вона повідомить про помилку і скасує обидва призначення.

Після визначення параметрів і призначення стовпчиків ви можете імпортувати дані з файла у описаний нижче спосіб.

#### Імпортування даних щодо інвестування

Щоб імпортувати дані інвестиції (купівлі акцій), перейдіть на вкладку Інвестиція. Процес визначення параметрів подібний до описаного вище.

- Виберіть стовпчик, який міститиме Дату операції.

- Виберіть стовпчик, який містить Ціну. Пункт Коефіцієнт призначено для прив’язування імпортованих одиниць ціни до вже визначених параметрів цін, наприклад, дані може бути вказано у $ і центах або у фунтах стерлінгів і пенсах. Якщо, наприклад у &kappname; всі ціни визначаються у доларах, і так само визначаються ціни у файлі CSV, встановіть значення Коефіцієнт 1.0. Якщо ж, у файлі CSV ціни вказано у центах, вам слід встановити Коефіцієнт рівним 0.01.

- Стовпчик Тип/Дія призначено для визначення дії: buy (купівля), sell (продаж), reinvest (повторне інвестування) тощо.

- Виберіть стовпчик, у якому міститься Кількість акцій, задіяних у операції.

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

- Як і з даними роботи з банком, полем Нотатка можна скористатися для вибору декількох стовпчиків (послідовно), дані яких буде використано для поля нотатки щодо імпортованої операції.

- Виберіть стовпчик, у якому міститься Сума.

- У полі Назва цінного паперу вкажіть назву цінного паперу (переконайтеся, що ця назва точно збігається з назвами цінних паперів, які вже було визначено у &kappname;). Якщо назву цінного паперу вказано у імпортованому файлі, двічі клацніть лівою кнопкою миші на назві, щоб позначити її, потім скопіюйте, вставте і скоригуйте її, беручи до уваги відмінність у скороченнях з вже створеними записами &kappname;. Після визначення назви цінного паперу у цьому полі, цю назву буде збережено у файлі ресурсів (див. нижче, щоб дізнатися більше про цей файл). Це означає, що назву буде вказано у спадному списку, коли ви користуватиметеся додатком наступного разу. Якщо хочете, ви можете внести зміни до файла ресурсів, щоб додати повний список цінних паперів, які можуть зустрічатися у імпортованих файлах. Якщо ви вказали назву з помилками, натисніть кнопку Приховати цінний папір. Після натискання цієї кнопки назву буде вилучено зі списку додатка, її не буде показано у інших списках даних &kappname;.

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

#### Завершення імпортування

Для обох типів даних, роботи з банком і інвестиції, після призначення відповідних стовпчиків вам слід натиснути кнопку Імпортувати. &kappname; покаже діалогову панель вибору рахунка для імпортування даних. На цьому кроці ви можете зберегти файл з даними у форматі qif, якщо ці дані вам навіщось потрібні, натисканням кнопки Зберегти як QIF.

Якщо імпортуються дані щодо інвестиції і операція стосується іншого рахунка, наприклад кредитного рахунка або маклерського рахунка для отриманих дивідендів або сплати за послуги, програма покаже вікно для введення назви цього рахунка. Якщо, скажімо, у рахунку вкладів передбачено можливість підписування чеків, ви можете вказати назву вже створеного кредитного/маклерського рахунка. Ви так само можете вказати номер стовпчика, у якому міститься назва отримувача, якщо це потрібно. Якщо під час введення назви рахунка сталася помилка, імпортування буде виконано, але &kappname; не зможе розпізнати дані і позначить відповідні операції, як операції без категорії. Якщо назва рахунка є доволі довгою, вкажіть декілька символів з цієї назви. Імпорт буде виконано, але всі операції буде позначено &kappname; як такі, що не призначено до жодної категорії. Пізніше ви зможете визначити для цих операцій відповідний рахунок.

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

Якщо ви помітите, що у ваших виписках щодо інвестицій містяться типи дій, які не розпізнаються програмою, просто додайте нові типи у відповідний розділ файла ресурсів. Докладніші відомості щодо цього файла викладено нижче. Наприклад, у розділі [InvestmentSettings] цього файла поле BuyParam містить записи для дій «Purchase», «Buy», «New Inv» і «Switch In». Якщо вами буде виявлено інший запис дії, додайте його до відповідного списку і перезапустіть додаток. Ви можете зауважити, що між записами різних полів є подібність, через що вибрано помилковий тип дії. Додаток обробляє списки у такому порядку: Shrsin, DivX, Reinvdiv, Brokerage, Buy, Sell, Remove. Перевпорядкування списків відповідно до ваших потреб не спрацює, оскільки записи у файлі ресурсів впорядковано за абеткою. Якщо помилковий параметр вам не потрібен, просто вилучіть його з файла. Якщо параметр є потрібним, ймовірно, вам доведеться редагувати файл імпортованих даних.

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

#### Налаштування додатка імпортування у форматі CSV

Добре відомою вадою формату QIF є те, що стандарт форматування є доволі розпливчастим. Проблема файлів CSV схожа на проблему файлів QIF, але для цих файлів взагалі не існує стандартів. Зокрема, у файлах інвестиційних даних можливі значні різночитання у визначенні типів дій. У додатку передбачено визначення типів дій у файлі ресурсів, який має назву csvimporterrc. Місце зберігання цього файла залежить від використаного вами дистрибутива. Зазвичай, цей файл зберігається у теці ~/.kde4/share/config/, але назва теки може починатися і з ~/.kde/... За допомогою цього файла ресурсів користувач здатен додати тип дій, який не передбачено розробниками. Якщо такого файла у вашій системі немає, під час першого використання додатка буде створено файл з типовими даними, що міститиме декілька очевидних описів дій.

З програмою постачається декілька зразків файлів CSV. Ці файли зберігаються у теці kmymoney/contrib/csvimporter/ ієрархії кодів програми у сподіванні, що ці зразки будуть корисними. У прикладі для інвестицій, наприклад, визначено тип дії "ReInvestorContract Buy : ReInvested Units". Під час процедури перевірки першим відповідником дії буде «ReInv» у розділі «ReInvestorContract Buy», отже операцію буде визначено як Reinvdiv, хоча «Buy» також було згадано. Іншим прикладом є призначення типу дії Reinvest, хоча у записі операції не було згадки ні про ціну, ні про суму, а лише про кількість, отже операцію слід вважати операцією типу «додавання цінних паперів, тобто Shrsin.

Під час створення цього додатка було використано як приклади лише декілька форматів запису інвестицій, отже, ймовірно, ви можете зіткнутися з форматами, які обробляються неправильно. Якщо вами буде виявлено файл у такому форматі, будь ласка, надішліть відповідний приклад (змініть дані так, щоб не залишилося конфіденційних частин) до списку листування користувачів &kappname;, &userlist;, або до списку листування розробників, &devlist;. Розробники зроблять все можливе, щоб додаток зміг обробляти ваші дані.

## Написання додатка з імпортування

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