logo
logo
Расскажу о причинах такого решения. [Dervish 30/08/2012 17:05]
Первоначально я, собственно, и не планировал вводить такое ограничение. Как уже справедливо отмечалось, проблема вызвана именно введением поддержки нескольких планов счетов. Итак, представим, что будет происходить, если такого ограничения нет.
 
Допустим, мы в разных ветках создаем два счета с одинаковым названием в одной и то же валюте и программа разрешает это сделать. После этого мы включаем поддержку нескольких планов счетов и создаем новый план с названием... Ну пусть будет оригинальное названием "Новый план". Поскольку все счета должны входить в этот план счетов, они, конечно же, добавляются в корневую папку этого плана. И мы получаем два совершенно неотличимых счета.
 
Есть еще одна проблема, связанная с экспортом и импортом. Дело в том, что при экспорте и импорте счет, по которому передаются данные (выгружаются или загружаются) должен быть однозначно идентифицирован. И если раньше можно было указывать путь к этому счету, например, "\Все счета\Наличные\RUR - Наличные" то с введением планов счетов, вообще говоря, становится непонятно, какой именно план счетов использовать для идентификации счета и что делать если в одной папке окажутся два счета с одинаковым названием и валютой (а такое будет происходить, как в приведенном выше примере, при создании нового плана счетов).
 
Поэтому и было принято решение ввести требование уникальности названия счета.
 
Способы обхода? Пожалуй, единственный способ, это просто сделать названия счета уникальными. Можно, например, путем добавления какого-то спецсимвола. Например, символ "#" перед названием счета может обозначать поставщика. Либо так и написать: "Поставщик ИЧП Иванов И.И.". Других путей я не вижу. Равно как и не вижу каких-то других решений, которые позволили бы снять требования к уникальности названий счетов.
 
И последнее, насчет сообщения, которое выдает программа при попытке добавить счет с уже существующей парой (название, валюта). Это моя ошибка, конечно, следует исправить это сообщение.