logo
logo
Пункт 3. [Dervish 23/02/2012 23:04]
Тут вопрос, скорее, идеологический. У меня нет на него однозначного ответа.
 
Первоначально я делал импорт так, чтобы он выполнялся даже с неполными данными на входе. Допустим, импортируются только операции. В одной из операций указано название счета "RUR - Заначка", и на основании этого программа:
 
1. Проверяла наличие валюты RUR. Если ее нет в текущем файле данных, она создавалась. Небольшая проблема в том, что название неизвестно (напомню, файл импорта не содержит данные о валютах) легко обходится присвоением абстрактного названия вроде "Название валюты неизвестно", количество знаков после запятой проставляется в 2.
 
2. Проверяла наличие счета "Заначка" в этой валюте. Если счета нет, он создавался. В нем прописывался начальный остаток равный 0,00.
 
Но кое-то из моих знакомых обратил мое внимание на то, что подобный подход чреват тем, что программа, вообще говоря, может своим вольным подходом в трактовке входных данных насоздавать некорректные данные в рабочем файле. Кроме того, непонятно, как это все будет работать при дальнейшем усложнении и расширении структур данных программы.
 
В общем, я посчитал этот аргумент весомым и сделал импорт так, что он требует наличия всех исходных данных при импорте. Ну и забыл доработать экспорт. Кстати, чтобы файл - результат экспорта всегда был пригоден для импорта, можно сделать:
 
1. Вообще убрать выбор экспортируемых данных и экспортировать все данные. Всегда. Или
 
2. Оставить только возможность выбора периода для экспорта операций. Или
 
3. Оставить закладку выбора экспортируемых данных как есть, но автоматически выбирать галочки вспомогательных элементов данных. Например, если пользователь выбирает для экспорта операции, галки счетов, валют и классификаторов тут же проставляются автоматически.