Модуль импорта файлов QIF

Thomas Baumgart

Использование формата QIF считается опасным

Рекомендуется использовать формат QIF только при крайней необходимости. Он не подходит для передачи финансовых данных. Помимо прочего, с использованием этого формата связаны следующие проблемы:

  • Отсутствие стандартного формата: разные версии одной и той же программы присваивают разные значения одному и тому же элементу.

  • Отсутствие идентификаторов операций: так как для операций не предусмотрены идентификаторы, поиск дубликатов операций будет крайне затруднителен.

  • Отсутствие выразительности: словарь формата очень примитивен и не позволяет отразить всю глубину современных финансовых данных.

По этим причинам компания Intuit прекратила поддержку работы с входными данными в формате QIF в Quicken 2005. Если доступны другие варианты получения данных (например, в формате OFX), не используйте формат QIF.

Импорт файла QIF

Чтобы импортировать файл QIF, убедитесь, что открыт корректный файл KMyMoney. Затем выберите пункт меню ФайлИмпортQIF....

В появившемся диалоговом окне будет предложено выбрать файл QIF: нажмите кнопку Обзор.

В KMyMoney существуют различия между импортом файла банковской выписки и данных журнала, экспортированных другой программой. По умолчанию выполняется импорт файла банковской выписки. Для импорта данных из использовавшейся ранее программы ведения финансового учёта необходимо отметить соответствующий пункт.

Обычно при импорте данных QIF используется стандартный профиль QIF. Но иногда возникает необходимость в использовании изменённого профиля QIF. Подробные сведения об этом доступны в следующем разделе.

Нажмите кнопку Импорт для импорта файла QIF.

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 поддерживает поле «#». Средство импорта будет интерпретировать значение этого поля как уникальный идентификатор операции и пропустит запись, если соответствующая операция уже зарегистрирована в системе.