logo
logo

Форум Сборка 207.

создать новую тему раскрыть все
Сборка 207. Dervish 06/05/2006 01:03 #написать ответ
Вначале об исправленных ошибках. Я постарался поправить все, что было замечено в 206-й сборке относительно страницы и диалога операций. Если вдруг что-то пропустил или исправить не удалось, надеюсь, что мне на это будет указано.
 
Об ошибках:
 
1. Ошибка с дублированием группировки. Если была установлена группировка по датам на странице операций и если добавлялась запись с другой датой, отсутствующей в списке дат, то создавалась вся ветка дерева, начиная с года, месяца, дня.
 
2. Ошибка изменения типа операции. 206-я неправильно обрабатывала изменение типа операции с расхода/прихода на перевод и обратно во время редактирования операции.
 
3. Ошибка редактирования нескольких операций. Если редактировались операции по разным счетам, было невозможно изменить дату этих операций.
 
4. На странице счетов выбрана валюта пересчета. Настройки сохранены. После перезапуска программы в некоторых случаях не показывались остатки.
 
5. Ошибка в диалоге операций. В окне добавления операций если по выпадающему списку кликнуть правой клавишей мышки, то вылезает контекстное меню окна операций.
 
6. В диалоге операций не работало комбо выбора курса для операций перевода в разных валютах.
 
7. Не работала сортировка по колонке "Остаток" страницы операций. Исправлено.
 
8. Исправлены ошибки с выделением операций при добавлении, отметке повторяющейся операции, блокировании.
А теперь о доработках и нововведениях. Dervish 06/05/2006 01:04 #написать ответ
9. Обновлена реализация фильтров на странице операций. Я постарался сделать это обновление незаметным, так что, возможно, вы заметите только то, что при переходе на 207-ю сборку придется заново сохранить настройки страницы операций.
 
10. Реализовано предупреждение "Операция не попадает под условия фильтров" аналогичное существующему в первой версии программы. Правда, в AbilityCash это предупреждение можно отключить (галочка в самом предупреждении или в настройках программы F9).
 
11. Увеличен вертикальный размер выпадающих списков по умолчанию. Раньше было 8 строк, стало 16.
 
12. Доработаны настройки (и меню настроек) статусной строки для страницы операций.
 
13. Реализована настройка инициализации даты при дублировании операций. Теперь можно установить режим, при котором во время дублирования операции в диалоге автоматически выбирается текущая дата/время. Эта настройка доступна в диалоге настроек программы (F9).
 
14. Реализовано сохранение настроек в ini-файле. В случае если в папке программы обнаружен ini-файл, AbilityCash не будет обращаться к реестру и все настройки будет сохранять именно в ini-файле.
 
Работа с настройками привела к тому, что мне пришлось сбросить некоторые значения настроек.
Для владельцев флешек. Dervish 06/05/2006 02:47 #написать ответ
207-я сборка, это первая сборка, которая специально предназначена для использования на флеш-карте.
 
В 207-й вы сможете настроить программу так, что на флешке будет находится и программа, и база данных, и все резервные копии и все настройки. При этом программа будет прекрасно работать, не будет обращаться к реестру (или как-то еще оставлять о себе следы) и, при правильной настройке, даже не должно возникнуть проблем, если флешке на разных компьютерах будут назначаться разные буквы устройств (drive letters).
 
Приступим к настройке флеш-карты? (Чтобы не быть голословным я не просто опишу шаги, я на самом деле пройду их на своем компьютере).
Алгоритм настройки. Dervish 06/05/2006 02:49 #написать ответ
1. Втыкаем флешку в порт. На моем компьютере появился новый сменный диск для флеш-карты с буквой "F:".
 
2. Создаю на флешке папку для программы и базы данных. Пусть она будет называться "F:\Cash".
 
3. Копирую в эту папку саму программу "AbilityCash.exe" и файл данных "data.acb".
 
4. Программа не будет обращаться к реестру только если она увидит в своей папке файл настроек. Его нужно создать вручную. Создаем в этой папке пустой файл "AbilityCash.ini".
 
5. Теперь запускаем саму программу обязательно из папки на флешке. При старте программа заметит ini-файл и попробует все настройки загрузить из него. Но этот файл пуст, поэтому программа загрузится со всеми настройками по умолчанию.
 
6. Открываем диалог настроек (пункт "Настройки программы" из меню "Сервис" или просто кнопка F9 на клавиатуре) и заново устанавливаем все что нам нужно. Только нужно иметь в виду, что настройки автоматического запуска (закладка "Общие") не хранятся ни в реестре ни в ini-файле, а сохраняются в виде ярлыка в папке Автозапуска Windows. Так что Автозапуск лучше не настраивать.
 
7. В настройке резервного копирования есть некоторые тонкости. Тонкость лишь в том, что если мы вручную указываем папку для резервного копирования, то ни в коем случае нам нельзя указывать для этой папки букву диска. Лучше всего ввести полный путь но без указания буквы. Если буква не указана, то программа всегда будет считать, что эта папка находится на флешке. Если буква диска указана, то папка будет находиться на указанном диске.
 
8. В общем, мы включаем резервное копирование отметив соответствующую галочку. После этоговыбираем радио-кнопку "в папке:" и вводим название папки: "\Cash\Backups".
 
9. Все остальные настройки устанавливаем по своему вкусу и нажимаем на OK.
Завершение настройки. Dervish 06/05/2006 02:50 #написать ответ
10. Теперь нам нужно открыть файл данных. Меню "Файл", пункт "Открыть". Выбираем тот самый файл данных, что записали на флешку. В моем случае "f:\Cash\data.acb"
 
11. Нажимаем OK, файл открывается в программе.
 
12. Выходим из программы. Alt+F4. Это нужно для того, чтобы немножко подправить файл настроек.
 
13. Подправить настройки придется ручками. Просто открываем его в любом текстовом редакторе (например, в обычном Блокноте) и ищем в файле настроек значение "mru0=F:\Cash\data.acb". Видно, что в этом значении указывается мой файл данных, что я записал на флешку. Но он указывается в виде полного пути вместе с буквой диска. Вот именно эту букву нам и нужно удалить. Нужное нам значение "mru0=\Cash\data.acb". Исправляем и сохраняем файл настроек.
 
14. Если на флешке нужно переносить несколько файлов данных, то можно создать еще значения "mru1", "mru2" и "mru3". Тогда эти файлы будут доступны нам в программе из подменю "Базы данных" меню "Файл".
 
15. Запускаем программу и видим, что при запуске в AbilityCash сразу же открывается наш файл данных.
 
16. Теперь лучше всего развернуть окно программы (это пригодится, если с флешки программа будет запускаться на разных компьютерах, с разными разрешениями экрана) и закрыть программу.
 
17. Собственно, настройка закончена, теперь все должно работать. Осталось упомянуть о последней особенности: если мы теперь установим атрибут "Только чтение" (Read only) для файла настроек, то программа не разрешит изменять настройки в диалоге настроек. Эту особенность вы можете использовать если захотите избежать случайного изменения настроек.
 
18. Ну а теперь можно удалить из реестра все настройки чтобы окончательно скрыть использование программы на этом компьютере. Настройки из реестра все равно не будут использоваться, если работать только с настроенной флешки. Открываем RegEdit и ищем в нем ключ "HKEY_CURRENT_USER\Software\AbilitySoft" и удаляем его. Наш реестр чист.
 
На этом все, удачи!
Огромное спасибо! Valeriu 06/05/2006 10:10 #написать ответ
Огромное спасибо! Заметно что вы работали до поздна.
Удачи во всем.
Заметка на использование *.ini Valeriu 06/05/2006 10:53 #написать ответ
Для тех кто изменил первоначальное имя *.ехе с "AbilityCash.exe" (к примеру у меня "AbilityCash 2 Alpha (Build 207).exe") - имя *.ini файла должно совпадать с именем *.ехе; в противном случае, программа будет обращатся к реестру.
Удачи.
Совершенно верное замечание. (+) Dervish 06/05/2006 11:18 #написать ответ
Я просто не думал, что кто-то будет переназывать программу другим именем файла. Действительно, название ini-файла должно совпадать с названием exe-файла.
об имени файла are 06/05/2006 13:09 #написать ответ
хочется сказать следующее:
лучше бы он назывался по имени базы.
В таком случае при наличии нескольких баз
каждая имела бы свои настройки в .ini файле.
Сейчас же, это принципиально невозможно.
Т.е., несколько баз будут клонами с настройках,
если каждую из них не расположить
со своим .ini в отдельном директории.
Конечно, это не недостаток программы, но
заметное ограничение функциональности.
Не беда ...
Все сделано правильно. Dervish 07/05/2006 03:04 #написать ответ
Какие именно "свои" настройки делать для каждой базы данных? Цвет ссылок? Кнопочки слева/кнопочки справа? Но позвольте, эти настройки не являются свойствами базы данных...
 
Кроме того, заметьте, что вы предлагаете для каждой базы данных иметь свой ini, но тогда, возможно, лучше будет настройки спрятать в саму базу? А?
 
И еще, а где тогда прикажете держать список MRU (последних использованных файлов)?
 
Ну уж если очень-очень хочется иметь на одной флешке несколько файлов настроек, привязанных каждый к своей базе данных, то это тоже можно сделать. Просто создайте две отдельные папки, положите в каждую из них по одной базе данных, по одному экземпляру программы и по своему, индивидуальному ini-файлу. И будет вам щастье!
если are 08/05/2006 03:26 #написать ответ
посмотреть этот .ini файл

[Settings]
mru0=Program FilesAbilityCashBaZa.acb
mru1=
BackupMode=1
BackupPeriod=0
BackupVersions=4
Flags0=276
InitDupDate=1
RefColor=16711680
WindowPlacement=2C0000000200000003000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF850000006D0000007B0300005D020000F0

то он действительно примитивный и сожержит настройки, которые могут быть "общими" для многих баз. И логичным было бы хранить эти настройки в самой базе - она увеличится при этом незначительно.
Почему я предложил назвать .ini файл именем базы - так некоторые поступают, например, <B>EssentialPIM</B>.  
Повторюсь, с точки зрения универсальности - это было бы здорово. Поскольку это сложно и не принципиально - забудем.
aga, ya vse vremya pereimenovyvau v derevyannyaya_bashka 05/06/2006 20:21 #написать ответ
AC.exe
А зачем? (-) (-) Dervish 06/06/2006 02:50 #написать ответ
так ведь очень просто turok 08/06/2006 14:44 #написать ответ
администратор сети может просматривать названия запущенных процессов. а потом, по имени процесса, может заглянуть в Гугл и выяснить, что это такое.
 
а название ac.exe никому ничего не скажет
а у меня и так с флешки работало.. Шурочка 09/05/2006 19:16 #написать ответ
интересно, в чем разница-то?
А работали за одним компом? (-) (-) Дмитрий 11/05/2006 10:01 #написать ответ
Разница в том,... Dervish 13/05/2006 03:56 #написать ответ
...что 206-я сборка оставляла следы в реестре даже если запускалась с флешки. Это нежелательно если запускаете программу на чужом компьютере. Или в случае если флешка из разряда "перед прочтением сжечь".
 
А все описанные манипуляции для 207-й сборки служат лишь для того, чтобы сделать запуск программы так, чтобы она совсем не оставляла следов на компьютере. Поработали на компе с программой, вытащили флешку и никто никогда не определит, что AbilityCash вообще запускался на этой машине.
 
Собственно, это вся разница.
спасибо! turok 18/05/2006 14:18 #написать ответ
большое спасибо за вашу работу. приятно наблюдать за последовательным и целенаправленным развитием программы.
 
хочу сказать спасибо так же за то, что программу пакуете в зип-файл, а не выкладываете просто в ехе-файл, поскольку в некоторых сетях скачивание ехе-файлов запрещено.
 
возможность не оставлять следов -- тоже очень актуальная!
и еще! turok 18/05/2006 14:22 #написать ответ
спасибо за то, что работаете на англоязычных компьютерах. а то тут уже несколько программ от русских авторов показали свою глючность со шрифтами (кракозябры показываются), а ваша работает!
 
отлично!
Фокус на дублированную операцию Denis ® 06/05/2006 11:00 #написать ответ
Спасибо за доработку программы!
 
Отдельное спасибо за реализацию пункта №13 (инициализации даты при дублировании операций).  
 
Возможно ли сделать так, чтобы при дублировании фокус устанавливался на вновь созданную операцию?
А разве сейчас не так? (+) Dervish 06/05/2006 11:22 #написать ответ
Видимо пропустил. Это довольно просто поправить. Обязательно сделаю, спасибо.
Присоединяюсь ludacik 06/05/2006 20:10 #написать ответ
Спасибо огромное за версию и за дату при дублировании ) Мне этого действительно очень не хватало.
Большой мерси + багги AlexND 11/05/2006 11:28 #написать ответ
11 пункт - как глоток воздуха. Стало заметно легче. Спасибо!
 
В статусной строке непонятно как считается "изменение остатка" - в некоторых случаях "висит" одно и то же значение, неправильное или "неочевидное". Точнее пока не могу сказать - не разобрался.  
 
Не появляется столбец "По счету", когда выбираешь сразу несколько счетов. Приходится его постоянно добавлять руками.  
Это случается после того как сохраняешь настройки страницы с выбранным одним счетом. А когда настройки сохранены при выбранном групповом счете и с открытой колонкой "По счету", то при смене счетов такого не происходит - возвратившись опять к групповому счету колонка "По счету" видна.
а когда?.. turok 18/05/2006 14:32 #написать ответ
бублик из отчетов будет занимать всю область на экране? а то если экран побольше чем 800х600, то бублик такой сиротливый маленький в уголке сидит. ужасно жалко его... полечить бы...
А вот может быть... Dervish 19/05/2006 00:51 #написать ответ
...в 208-й и будет сделано. Как раз занимаюсь сейчас отчетами.
ага, спасибо, да. turok 24/05/2006 20:34 #написать ответ
хочется уж наконец-то потыкать в разные фрагментики бублика.
 
еще вам на разымшление такая тема.
 
есть такая модель в аналатике называется ватыф, то есть what if?
 
сейчас ваша программа хорошо позволяет моделировать развития бюджета только на одном (и на том спасибо) отчете -- ОстаткиПоСчетам, поскольку будущие (невыполненые) операции тоже отображаются.
 
можно делать моделирование. что будет, если, например, я увеличу расходы на питание на 30%? или буду покупать новую одежду не раз в полгода а два раза? или за квартиру буду платить на 45% больше? чем, собственнО, кормить ребенка, если. если. если.
 
очень удобно.
 
можно как-нибудь (с пользой, естественно, с тем, что называется валью-аддед-активити {value-added activity}) применить эту стратегию к оставшимся репортам?
 
мирси.
Размышления, это хорошо. Dervish 24/05/2006 23:50 #написать ответ
У нас есть время "на подумать" потому как я буду стараться побыстрее закончить с отчетами и ускоренными темпами двигаться в сторону релиза. Наверное уже хватит находиться в состоянии альфы.
a mojno programmy na angliskom? derevyannyaya_bashka 05/06/2006 20:20 #написать ответ
a to moya jena russki ne ponimaet, a pravit` binarnik ne hochetsya
Английскую версию... Dervish 06/06/2006 02:56 #написать ответ
...обещал очень давно, но пока не сдержал своего обещания, увы. Хотя, могу констатировать, что до этого осталось совсем немного. Фактически программа уже готова к переводу, мне осталось только доделать несколько мастеров (Wizards). После этого можно будет "открыть" файл с метками и править этот файл обычным редактором. Можно будет поменять любую метку в программе.
 
А править бинарник действительно не нужно: это будет крайне неэффективно. И "проживет" такой бинарник не дальше как до следующей сборки.
 
Я постараюсь побыстрее перейти к возможности перевода программы.
тут дело такое turok 08/06/2006 14:45 #написать ответ
что у меня все созданное самим собой на английском, а интерфейс на русском. жена уже словечки выучила, но все равно крайне весело =)
Операцию не видно при вкл. фильтре Дмитрий 06/05/2006 13:58 #написать ответ
Увидел разный результат, при разных статьях.
 
1 случай. Ставлю фильтр по счету и фильтр по статье <B>верхнего уровня статей расхода</B> (т.е. Все статьи расхода - Транспорт), выбираю операцию по статье Транспорт и дублирую её, ставлю в ней текущую дату, OK...
 
Получаю предупреждение "Внимание! Добавленная операция не удовлетворяет условиям фильтров ..."
Что странно.
 
2 случай. Ставлю фильтр по счету и фильтр по статье <B>верхнего уровня статей расхода</B> (т.е. Все статьи расхода - Транспорт), выбираю операцию по <B>под-статье</B> Транспорт - Общественный и дублирую её, ставлю в ней текущую дату, OK.
 
Операции не видно в списке.  
Ощущение что список операций не перечитывается.
Все, увидел. Dervish 06/05/2006 16:51 #написать ответ
Буду исправлять, спасибо.
сорт по колонке "Статья" не раб(- (-) Максим 06/05/2006 19:19 #написать ответ
А у меня работает! Dervish 06/05/2006 19:28 #написать ответ
Что делать будем?
 
Максим, если не затруднит, можете более подробно описать, как именно увидеть ошибку или, может быть, пришлете маленький файл данных (собранный только для демонстации ошибки). Это поможет разобраться в том что происходит и, если есть ошибка, она будет исправлена.
вот Максим 06/05/2006 20:54 #написать ответ
Стоит любая сортировка.
Кликаю по "Статье", сортировка устанавливается по мере добавления данных в базу данных.
Больше при клике по "Статье" ничего не происходит, треугольник на заголовке столбца не появляется.
Я сейчас посмотрел и подумал, Максим 06/05/2006 20:58 #написать ответ
а, может быть так и должно быть, я перешёл недавно с версии 1.4 и пока ещё не разбирался с классификаторами. Я так понял, что тут "Статья" это и есть какой-то классификатор, а я пытаюсь отсортировать, по нему. При создании новой базы, вкладки "Статья" нет вообще. Так что скорее всего я про глюк сказал не разобравшись, разберусь, и напишу результат.
вот. Максим 06/05/2006 23:01 #написать ответ
Когда у меня был только классификатор "Статьи", по нему не работал сортировка. Я сейчас добавил ещё один классификатор к1, сортировка по "Статьям" начала работать, а по к1 нет. Добавив еще один классификатор к2 все повторилось, т.е. сортировка по к1 заработала, а по к2 нет.
Найдено и обезврежено. (+) Dervish 07/05/2006 02:59 #написать ответ
В 208-й сборке будет работать правильно.
 
Спасибо.
да уж нет, это вам Спасибо!(-) (-) Максим 07/05/2006 14:36 #написать ответ
редактирование serg 10/05/2006 06:14 #написать ответ
ранее, когда редактировалась операция, то курсор, после нажатия на ОК, оставался на этой операции. А теперь не так.
Если можно,... Dervish 13/05/2006 03:58 #написать ответ
...поподробнее. Я как раз в 207-й очень старался сделать так, чтобы после редактирования курсор оставался на редактируемой операции. Сейчас перепроверил, у меня все работает корректно. Так что был бы признателен за более подробную информацию: какую именно операцию редактируем, что за изменения.
 
Возможно, я что-то пропустил.
 
Спасибо.
Маленький баг Виктор 12/05/2006 21:03 #написать ответ
Редактирование операций, фильтры все пустые (именно пустые, а не "Все счета" например). Редактируем операцию - получаем сообщение, что она не удовлетворяет условиям фильтров....
В принципе, решается очень просто - выбирается "Все счета" вместо пустого значения и все
Есть такая буква! :) Dervish 13/05/2006 03:59 #написать ответ
Замечание принимается. Будет исправлено. Спасибо.
Нашел багу middlewest 14/05/2006 00:51 #написать ответ
Когда выбираю фильтр "счет" и в выпавшем окошке нажимаю сортировку по типу валюты. У меня все счета в одной валюте.
 

Файл: Report.cpp
Строка: 760
Версия: 2.0 alpha
Сборка: 207
 
Call Stack:  
0044c3ac 77d48734 77d48816 77d489cd
77d496c7 00401831 00401ab0 7c816d4f
Спасибо! (+) Dervish 14/05/2006 03:12 #написать ответ
Нашел и исправил. В 208-й все будет правильно.
 
Спасибо.
bug turok 18/05/2006 14:16 #написать ответ
открываю базу, которая раньше (может быть в 199) работала с плагинами. сейчас плагинов не использую. выбираю закладку валюта -- и получаю ошибку:
 
Файл: MStreams.hpp
Строка: 36
Версия: 2.0 alpha
Сборка: 206
 
Call Stack:  
0046942d 00413308 00413ddf 0043571e
004353eb 0043543d 77d48734 77d5418d
77d53fd9 77d4b50c 7c90eae3 77d4b903
5d09614d 5d0b014f 5d0ea6a2 5d0ea99d
Дело не в плагинах. (+) Dervish 19/05/2006 00:54 #написать ответ
И, наверное, не в ошибке. Дело в несовместимости версий сохраненных настроек страницы. Делая доработки сохранения настроек я проверяю лишь совместимость с предыдущей сборкой. Отсюда и проблемы.
 
"Отремонтировать" такую ошибку в базе данных можно довольно просто: нужно из меню "Просмотр" выбрать пункт "Страницы..." и в этом диалоге просто пересоздать страницу валют. Вначале удалить, потом создать заново. Все должно заработать.
я это и сделал. спрятал к чертям turok 24/05/2006 20:29 #написать ответ
эту страницу, а то каждый раз тыкал в нее. ужос
Лучше не просто спрятать,... Dervish 24/05/2006 23:50 #написать ответ
...а именно пересоздать. Старую удалить, новую создать.
Точность вычислений Arthur 17/05/2006 19:47 #написать ответ
Принципиально ли ограничение на точность валюты 4 знака? Например я положил деньги в паевый фонд и хочу отразить это в программе. Соответственно регистратор выдает мне подтверждение, что я приобрел, например, 4.3453523452 части пая. Я хотел ввести мнимую валюту (условные единицы) с точностью 10 знаков, однако программа запретила это.
Для хранения сумм... Dervish 19/05/2006 00:57 #написать ответ
...используется стандартный формат Windows (или вообще IEEE - утверждать не буду). Там предусматривается использование целочисленной арифметики с четырьмя десятичными разрядами после запятой.
 
Пока изменять этот формат я не планировал. Да и не уверен, что это (заменить формат) можно будет сделать просто, потому как в коде программы просто уйма мест, где выполняется арифметика с суммами.
перенесите точку в числе вправо, Gato 19/05/2006 19:05 #написать ответ
если точность всегда 10 знаков, проблем не должно возникнуть
ПАИ Nicusor 04/06/2006 12:08 #написать ответ
Столкнулся с такой же проблемой - решил для себя, что цену нужно учитывать как дает программ (4 знака), зато единице валюты ПАИ является не 1 ПАЙ, а его доля. В вашем случае - 1/100000 - соответственно при заведении операций это нужно учитывать.
Мне проще - у меня только на 10 нужно умножать (количество паев с точностью до 5 знака дается)
Default values in reports? derevyannyaya_bashka 05/06/2006 20:23 #написать ответ
A mojno kak-nibud` default values in reports ustanavlivat`? A to kajdy raz (posle zapuska programmy) prihodit`sya vybirat` valuty i galochki rastavlyat`... very anoying
Как раз сейчас... Dervish 06/06/2006 02:51 #написать ответ
...этим занимаюсь. Подождите выхода 208-й сборки, все должно заработать.
Программа виснет Vitaly 06/06/2006 12:04 #написать ответ
Добрый день!
 
Спасибо за очередной релиз.
Недавно, решил воспользоваться возможностью базы - многоуровневым списком счетов, для бюджетирования довольно удобно, но при просмотре отчетов в этом режиме столкнулся с довольно серьезной ошибкой – программа зависает. Не получилось повторить ошибку на новой базе, поэтому, выслал Вам свою рабочею на адрес serg@dervish.lgg.ru.
 
Пошаговые операции:
1. Запускаю программу
2. Перехожу в отчеты
3. Выделяю в поле «По счетам» «Все счета»
4. Выбираю в поле «В валюте» «RUR»
5. Выбираю вид отчета  «Остатки по счета»
6. Программа виснет, Диспетчер задач показывает, что программа не отвечает, но процесс активно работает с памятью
Мне приходилось сталкиваться... Dervish 06/06/2006 23:05 #написать ответ
...с аналогичной проблемой. Беда в том, что в одной из повторяющихся операций как-то запортился образец повторения. И операция стала повторяться "бесконечное количество раз через 0 дней". То есть в тот же самый день. То есть никогда не заканчиваясь.
 
Я сейчас выложил 208-ю сборку, в ней я немного модифицировал алгоритм генерации следующей даты, теперь, если он будет встречать такой повторитель, он вообще не будет считать эту операцию повторяющейся. Это, конечно, не решит проблему, но, по крайней мере, программа перестанет зависать.
 
Ваш файл данных я не получил, либо что-то случилось с почтой, либо я нечаянно посчитал его за спам и удалил (публичный ящик, на него очень много спама приходит - извините).
 
В общем, в 208-й сборке все должно быть правильно, но я все равно рекомендую вам просмотреть все повторяющиеся операции в вашей базе данных и вы наверняка найдете ошибочную.