logo
logo

Форум Есть ли запрещенные символы в названиях счетов?

создать новую тему раскрыть все
Есть ли запрещенные символы в названиях счетов? RUSSIAN 10/04/2023 09:25 #написать ответ
Регулярно сталкиваюсь с тем, что при импорте XML (выгруженных из ACash) в Ability Cash получаю ошибку "В импортируемых данных обнаружено два счёта с одинаковым названием".
 
Так как само название проблемного счёта в тексте ошибки не фигурирует (я это уже завёл в доработку), то ищу приходится искать дубликаты при помощи других средств. Например, загружаю фрагмент <accounts> ... <accounts/> в Excel и там строю сводную, чтобы найти дубли.
 
И вот сегодня столкнулся с ситуацией, когда фактических дублей НЕТ. Все счета имеют уникальные наименования. А ошибка всё равно вылезает.
 
В итоге, методом дихотомии, нашёл проблемные счета. Подчёркиваю: они НЕ являются дубликатами, их названия уникальны. Но когда я удалил их из XML - то данные импортировались успешно (к счастью, транзакций по этим счетам не было, поэтому их наличие не было критичным).
 
Обратил внимание, что в наименованиях счетов у меня используются символы "%" (процент) и "*" (звёздочка).
 
И хотя я многие годы использовал такие символы (например, если счёт - это банковский депозит, то я указываю в наименовании процентную ставку), я решил уточнить: нет ли каких-то ситуаций, когда % работает как, например, wildcards в каком-нибудь внутреннем SQL-запросе в Ability Cash, что приводит к такой коллизии?
 
Сейчас пытаюсь создать минимальный файл, достаточный чтобы воспроизвести эту проблему, на случай, если dervish захочет пощупать это руками.
нашёл источник проблемы RUSSIAN 10/04/2023 09:40 #написать ответ
Всё, пока пытался составить воспроизводимый пример, сам понял в чём дело. Однако, считаю это багом программы.
 
Оказывается, у меня есть счета, в которых внутри названия в одном месте встречается ДВОЙНОЙ пробел, а есть такие же, но счета, но с ОДИНАРНЫМ пробелом.
 
EXCEL считает эти строки разными, и я тоже склонен считать их разными.
 
Но Ability Cash видимо тримит даже внутренние пробелы, и счета при импорте оказываются с одинаковыми названиями.
 
p.s. происхождение таких счетов это отдельная загадка, мне это тоже кажется каким-то багом какой-то из двух программ, но утверждать это на 100% не берусь, вдруг это меня самого когда-то так странно заглючило.
 
Ниже приведу код XML. В первой тройке счетов перед словом "под" стоит ДВА пробела, а во второй тройке счетов - по одному пробелу.
 
XML
<?xml version="1.0" encoding="UTF-8"?><ability-cash>
<currencies>
<currency>
<name>Российские рубли</name>
<code>RUR</code>
<precision>2</precision>
</currency>
</currencies>
<accounts>
<account>
<name>Депозит  под 7,00% *0113</name>
<currency>RUR</currency>
<comment/>
<locked>+</locked>
</account>
<account>
<name>Депозит  под 7,00% *0114</name>
<currency>RUR</currency>
<comment/>
<locked>+</locked>
</account>
<account>
<name>Депозит  под 6,75% *0243</name>
<currency>RUR</currency>
<comment/>
<locked>+</locked>
</account>
<account>
<name>Депозит под 7,00% *0113</name>
<currency>RUR</currency>
<comment/>
<locked>+</locked>
</account>
<account>
<name>Депозит под 7,00% *0114</name>
<currency>RUR</currency>
<comment/>
<locked>+</locked>
</account>
<account>
<name>Депозит под 6,75% *0243</name>
<currency>RUR</currency>
<comment/>
<locked>+</locked>
</account>
</accounts>
</ability-cash>