список сообщений создать тему

экспорт и импорт XML: "Валюта не найдена"

Версия:

Тип: Ошибка
Статус: Отклонено
Важность: Если время будет
Описание
Версия 218 скачанная сегодня, 1 октября 2011
 
Сделал экспорт нескольких операций, посмотрел формат, на основе его сделал файл с одной операцией, при попытке импорта говорит "Валюта не найдена.". Сразу подумал что я что-то накосячил, взял исходный файл экспорта (который выгрузил вначале), с ним такая же история - на все операции ругается на валюту.
 
PS Очень рад, что вы пошли в сторону такого простого формата, как XML, а то с этими Екселями, openофисами сложно что-то сделать адекватное и автоматическое.
Теперь можно написать простецкий скрипт, который будет перегонять банковские выписки в xml в нужном формате, и легко вносить в программу!
Последовательность действий
Выгрузить пару операций в XML, и загрузить (импортировать) обратно, на все ругается "Валюта не найдена."
 
Сам пробовал ещё свой файл загружать, всё таже ошибка:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<ability-cash>
  <transactions>
    <transaction>
      <date>2011-07-07</date>
      <expense>
        <executed />
        <expense-account>
          <name>Безнал/карточки</name>
          <currency>RUR</currency>
        </expense-account>
        <expense-amount>-2228.0000</expense-amount>        
        <category classifier='Статья'>\Разные статьи расхода\Гардероб\Одежда</category>
      </expense>
      <comment>для души</comment>
    </transaction>
  </transactions>
</ability-cash>

Файлы: import.xml
Ну как бы, это не баг а фича. Если в 217-й сборке валюты брались, в том числе, и из файла, в который импортируются данные, то теперь все валюты и счета должны быть определены в импортируемом xml. Просто определите все валюты и счета в xml-файле и он должен импортироваться без проблем.
 
Кстати, по задумке, примерно аналогичное поведение должно быть и в отношении классификаторов. В Вашем примере есть ссылка на классификатор "Статья", если программа не ругнулась, это баг, его нужно исправлять. Программа должна ругаться на отсутствие классификатора, но не категории.
Dervish
Ну как бы, это не баг а фича...

 
Понял, спасибо! У вас нет где-то хотя бы какой-то маленькой документации по формату файла? Я надеялся, что импорт-экспорт будет очень толерантным и будет "хавать" всё подряд, а оказалось что есть куча нюансов))
В общем, если сделать экспорт в xml, то там почти все видно. Структура документа именно такая, какая нужна. Добавить к этой структуре можно только вот что:
 
1. AbilityCash поддерживает только кодировку utf-8, попытка импортировать xml в другой кодировке добром не закончится.
 
2. К любому тегу в потоке импорта можно добавить атрибут ref="...", где вместо многоточия можно указать "местоположение" данного тега в исходном документе. Например, модуль импорта, конвертирующий данные из Excel-я может подставлять в этот атрибут название листа и ячейки исходного документа. Если при импорте будет замечена ошибка, AbilityCash прочитает значения атрибута ref для ошибочного тега и всех его родителей, сконкатенирует все значения и добавит получившееся в сообщение об ошибке. Ну а пользователь сможет найти в исходном документе ошибочное место.