logo
logo

Форум Отчет "Динамика оборотов" "роняет" программу . Версия 3.0 (build 270).

создать новую тему раскрыть все
Отчет "Динамика оборотов" "роняет" программу . Версия 3.0 (build 270). SuhoffGV 08/09/2023 16:41 #написать ответ
День добрый. Установлена версия 3.0 (build 270). При попытке выбрать отчет "Динамика оборотов" программа подвисает и падает без сообщений. Пробовал сначала указать диапазон в 1 день и 1 счет, и другим образом менять настройки при открытом отчете "Обороты" а потом выбирать "Динамика оборотов" - безрезультатно. "Остатки по счетам" и "Обороты" работают без проблем.  Пробовал открывать последние несколько бэкапов - результат одинаковый. В остальном программа работает. Данные добавляются, всё ок.
Подскажите пожалуйста, что могло случиться с отчетом или базой и как это исправить?
upd. SuhoffGV 13/09/2023 16:16 #написать ответ
Попробовал выгрузить базу в xml и загрузить в чистую. Результаты странные.
1. Поехала вся структура групп счетов. Группы загрузились как счета и пришлось их создавать заново.
2. 1 счет разошелся по сумме после загрузки со сзначением в исходной базе.
Чтобы найти расхождение выгрузил с обеих баз записи по счету в excel и сравнил 2 таблицы. Результата это не дало так как нашел новую странную ошибку. В excel из новой базы периодически попадаются строки с суммой вида "-517.92989", в старой базе в excel в этой же ячейке "-517.93000". В самой программе  - в обеих базах отображается "-517.93". Какой-то странный глюк.
3. Все настройки отчета "Динамика оборотов" тоже пропали. Если создать новые - отчет работает нормально.
 
Из того что вижу, предполагаю что некорректно работает загрузка/выгрузка в xml/ И, вероятно, в оригинальной базе "сломались" настройки отчета "Динамика оборотов".
 
Возможно как-то в исходной БД удалить настройки отчета "Динамика оборотов"? Может есть какой-то редактор файла с базой?
Прошу прощения за задержку с ответом: был в отпуске. Dervish 13/09/2023 18:12 #написать ответ
База данных хранится в формате SQLite. Соответственно, любой редактор сгодится. Я пользуюсь  SQLite browser Единственное, если на базе установлен пароль, то никакой редактор не сможет открыть, так что вначале снимите пароль с базы данных.
 
Открываете табличку InterfacePages, в ней содержатся настройки для всех страниц. Находите строку с отчетами, там по названию будет её видно, после этого клик правой кнопкой мыши на ячейке Settings этой строки и в меню выбираете "Сбросить в NULL". Сохраняете файл Ctrl+S, настройки страницы сброшены.
 
А вообще, наличие других проблем, которые Вы описали, делает интересным мне, как разработчику Ваш файл данных, что там эдакое могло случиться, что вызывает такие эффекты. Вот если бы Вы мне прислали файл данных, я его точно починил бы и, возможно, нашел еще пару ошибок на исправление. Конечно, неразглашение гарантирую, а сам я смотреть файл буду только в целях поиска неисправностей.
 
Спасибо.
 

Спасибо, ваш совет мне очень помог. SuhoffGV 15/09/2023 09:38 #написать ответ
Думаю что смогу переслать вам базу "на благо науки" слегка обезличив её. Благодаря тому что можно массово менять поля в операциях это будет не сложно.
Хочу обратить внимание,... Dervish 15/09/2023 13:49 #написать ответ
...для меня ценность представляет именно неисправный файл. Обезличивание приветствую, мне названия совсем не нужны.
 
Спасибо.
Я понимаю. Обезличивание и снятие пароля не "чинит" файл SuhoffGV 15/09/2023 15:56 #написать ответ
И экспорт/импорт тоже сбивает остаток на одном и том же счете. Ошибка воспроизводимая.
Куда отправить файл?
Мой адрес почты... Dervish 15/09/2023 17:17 #написать ответ
...есть на каждой странице сайта внизу: serg@dervish.ru
 
Это действующий адрес, я его всё время использую.
Отправил (-) SuhoffGV 15/09/2023 18:27 #написать ответ
Большое спасибо, получил. Dervish 15/09/2023 20:15 #написать ответ
Буду внимательно изучать, полученный результат использую для исправления ошибок.
Если нетрудно - отпишитесь потом что было. SuhoffGV 15/09/2023 21:29 #написать ответ
Профессиональный интерес.
Проблема была в сохраненных настройках. Dervish 29/09/2023 18:48 #написать ответ
Что-то где-то неправильно сохранилось и все поломалось. Восстановление настроек приводило к тому, что программа зацикливалась и потом рушилась после исчерпания памяти.
 
Из этого я сделал два вывода: (1) с настройками нужно дорабатывать, возможно, изменить формат хранения и (2) следует доработать программу, чтобы избежать зацикливания.
Спасибо за помощь и за программу. (-) SuhoffGV 29/09/2023 18:53 #написать ответ
Прошу прощения, наврал, дело не в сохранении настроек. Dervish 29/09/2023 19:50 #написать ответ
Дело в арифметике с датами. Вы можете легко воспроизвести эту ошибку, если поставите дату начала периода на 31 число любого месяца и попробуете построить график динамики оборотов длиной в несколько месяцев в разбивке по одному месяцу. Если поставить такие даты, программа зависнет. А потом очень быстро рухнет.
 
Проблема в том, что я неверно использовал системный вызов SystemTimeToFileTime. Почему-то я посчитал, что если ему скормить неправильную дату, например, 31 сентября, то вызов сам откорректирует результат нужным образом. А сейчас, когда начал разбираться, выяснилось, что нет, не откорректирует, а просто вернет код возврата, свидетельствующий об ошибке.
 
Так что сейчас я эту ошибку поправлю и мне придется проверить все места, где этот вызов выполнялся.
 
Спасибо за сообщение, в следующей сборке этой ошибки не будет.
Это я удачно попал. Столько лет пользуюсь программой и ошибка успешно пряталась. SuhoffGV 29/09/2023 20:23 #написать ответ
И от меня и от других пользователей.