В универсальной обработке есть долгая процедура вычисления таблицы структур всех таблиц БД. На ERP 2 она длится заметное время (более 30 секунд). Поэтому пользоваться такой программой неудобно. Хотелось бы кэшировать вычисленную таблицу и сохранять ее в файловый кэш (это понятно как делать), а при изменении конфигурации БД обновлять.
Как определить факт изменения конфигурации?
Мне известны способы
При наличии плана обмена РИБ можно создавать служебный узел и в выгрузке сообщения искать элемент с изменениями и потом удалять узел и создавать заново. Но не во всех конфигурациях есть такой план обмена.
Использовать утилиту контроля целостности http://its.1c.ru/db/v837doc#bookmark:adm:TI000000510 , но для клиент-серверной базы она требует знать параметры подключения к СУБД, что не всегда возможно. Примеры объектов контроля
Еще придумал такой способ - берем всю структуру хранения БД, сериализуем, вычисляем хеш и сохраняем его вместе с кэшем
ТЗ = ПолучитьСтруктуруХраненияБазыДанных();
ХМЛ = ирОбщий.СохранитьОбъектВВидеСтрокиXMLЛкс(ТЗ);
Хеширование = Новый ХешированиеДанных(ХешФункция.CRC32);
Хеширование.Добавить(ХМЛ);
Хеш = Хеширование.ХешСумма;
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.