Правила обращения с базой данных комплекса |
Из вышесказанного вытекает ряд нижеследующих правил работы с базой данных.
Словари данных должны соответствовать версии файла "sbis.exe" и файлов ресурсов. То есть при обновлении версии нельзя оставить старые словари, переписав новый "sbis.exe" и наоборот.
При запуске программа проверяет, соответствует ли текущая структура базы данных текущему словарю данных. Если нет, то будет выдано сообщение:
Рис. 6-1 – Запрос на выполнение конвертации БД
В этом случае необходимо выполнить конвертацию базы данных (подробности в разделе "Конвертация базы данных"), выбрав тем самым ответ "Да".
Поскольку большинство файлов базы данных взаимосвязаны между собой, нельзя, вообще говоря, взять и просто переписать какой-то файл из одной базы данных в другую. Даже если эти базы данных соответствуют одинаковым словарям данных.
Лучше воспользоваться механизмом импорта/экспорта данных, который успешно реализован в программе (о том, как он работает, рассказывается в главе "Обмен данными").
В некоторых ситуациях подобная процедура все-таки может быть проделана, но нужно отдавать себе полный отчет, что происходит в базе данных, что с чем связано, и обязательно проверить логическую целостность данных программой Jinnee.
При нормальной работе с самим комплексом СБиС++ логическая целостность данных не может быть нарушена.
Разрушение логической целостности может произойти при каком-либо аварийном завершении программы (сброс питания, выключение компьютера, зависание системы).
Еще один способ нарушить целостность данных - использовать программу Jinnee, которая позволяет манипулировать записями базы данных, минуя встроенные средства поддержания логической целостности. Поэтому при работе с этой программой необходима повышенная осторожность.
С помощью Jinnee можно удалить запись об организации, оставив "повисшими" ссылки на эту организацию из журнала операций, из реестра документов и т.д. Могут быть и более тонкие случаи, например, удалив наименование накладной. В итоге: сумма по накладной, остатки на складе не пересчитаются и т. д.