Основным режимом верификации является проверка логической целостности данных программы, где БД проверяются по сотням критериям, которые могут давать неверные цифры при анализе данных. Вылавливаемые ошибки могут быть не критичными, т.е. легко исправляемые ошибки персонала или фатальные, диагностирующие, в частности о физическом разрушении БД. В основном фатальные ошибки могут появляться при физическом выключении ПК (сервера) или перезагрузки ПК во время записи данных.
Обычно рекомендуется периодически проверять данные программы, а особенно, если что-то в них не нравится, например нарушен порядок записей в справочнике. Есть ручной режим проверки, где программа
1. Проверяет данные;
2. Диагностирует и автоматом пытается исправить около 50% видов ошибок;
3. Предлагает сделать сохранение логически целых данных или сообщает о наличии ошибок, формируя и автоматически сохраняя лог проверки
После сообщения
можно попробовать повторно перепроверить данные, т.к. программа сама в процессе проверки логики исправляет наиболее "популярные" ошибки, например
Код:
Страница 1
***** Расчетный остаток для 6J5F = 4000.000 не совпадают с остатками на тек.момент 4001.000
**** На складе 01 для 6J5F р/ост. 4000.000000 не совп.с факт. 4001.000000
* ---------------------------------------------------------------------------------------------------
* ЕСЛИ ПРОГРАММА ИСПРАВИЛА ЧАСТЬ ФАТАЛЬНЫХ ОШИБОК САМА - ПРОВЕРЬТЕ ПОЖАЛУЙСТА ЛОГИКУ ЗАНОВО!!!
* ---------------------------------------------------------------------------------------------------
... и вот недавно случилось такое глобальное разрушение, логика не проверялась, копии не сохранялись два дня... и дамам пришлось по первичке и журналу операций восстанавливать все операции после предыдущей корректной проверки логики, т.к. сохранение на внешний носитель делалось неделю назад. В процессе выслушивания "воплей" вспомнился об одном виде режима проверки логики, который когда-то там настраивался - автоматическая проверка и сохранение данных... Но и с ним... оказалось, что пару лет назад переделывался настроенный ПК, а после переделки данный режим не был восстановлен...
Его суть: На локальном быстром ПК планировщик ОС запускает командный файл типа:
Код:
attrib *.exe -r
copy x:\usland\*.exe *.exe
copy x:\usland\*.ico *.ico
copy x:\usland\srepharb.bat *.bat
copy x:\usland\ls\database\*.dbf ls\database\*.dbf
copy x:\usland\ls.cfg *.cfg
call srepharb.bat
hle L
т.е. копируется минимально необходимый набор файлов на ПК, восстанавливаются индексы, запускается проверка логики. Если ошибок в БД не обнаружено, то автомат производит сохранение данных на этом внешнем ПК, а если фатальные ошибки обнаружатся, то прога пытается исправить ошибки, делает профилактику данным, делает паузу, что-бы народ смог просмотреть ошибки
и ничего не сохраняет:
Однако есть нюанс такого использования программы, о котором мне стали постоянно напоминать после ручного восстановления работы... Ручную логику обычно запускаю во время паузы в оперативной работе, т.е. текущий ввод данных не производится и программа проверяет "статичные" данные. Автомат может запуститься, когда все интенсивно вбивают данные и вполне реальны "промежуточные" ситуации:
1. Часть документа пришла после его сохранения в истории;
2. Некоторые операции делаю виртуальные данные с резервированием кода в процессе добавления документа, а вся БД изменяется при его сохранении и т.д.
Посему, в реальной фирме 90% запуска автомата сообщало о фатальных ошибках и ничего не сохраняло, хотя при повторной проверки данные уже были логически правильные...
Думал, думал и придумал: при запуске АВТОМАТА программа при обнаружении фатальных ошибок не прекращает работу, а производит повторный рекурсивный самозапуск процесса проверки и уже когда в БД простые ошибки были исправлены, а если и при повторном запуске будут обнаружены ошибки, только тогда сообщает о них