| 0
    
        TormozIT   гуру 08.02.17✎ 09:56 | 
        В универсальной обработке есть долгая процедура вычисления таблицы структур всех таблиц БД. На ERP 2 она длится заметное время (более 30 секунд). Поэтому пользоваться такой программой неудобно. Хотелось бы кэшировать вычисленную таблицу и сохранять ее в файловый кэш (это понятно как делать), а при изменении конфигурации БД обновлять.
 Как определить факт изменения конфигурации?
 
 Мне известны способы
 
 При наличии плана обмена РИБ можно создавать служебный узел и в выгрузке сообщения искать элемент с изменениями и потом удалять узел и создавать заново. Но не во всех конфигурациях есть такой план обмена.
 Использовать утилиту контроля целостности  , но для клиент-серверной базы она требует знать параметры подключения к СУБД, что не всегда возможно. Примеры объектов контроля
 
 клиент-сервер
 
 mssql://user:password@server:123/dbname?config
 
 файловая
 
 dbe://c:\DB\checked_db?config
 |  | 
    
        | 1
    
        TormozIT   гуру 08.02.17✎ 10:10 | 
        Еще придумал такой способ - берем всю структуру хранения БД, сериализуем, вычисляем хеш и сохраняем его вместе с кэшем
ТЗ = ПолучитьСтруктуруХраненияБазыДанных();
 ХМЛ = ирОбщий.СохранитьОбъектВВидеСтрокиXMLЛкс(ТЗ);
 Хеширование = Новый ХешированиеДанных(ХешФункция.CRC32);
 Хеширование.Добавить(ХМЛ);
 Хеш = Хеширование.ХешСумма;
 |  |