Таблица строится по сравнению реквизитов объекта и ссылки
Обработа универсальная, не требует изменений в конфигурации, тестировалась в обычном приложении (для тонкого клиента надо переделывать вывод таблицы)
Первоначальные реквизиты объектов хранятся в табличной части обработки.
Обработка удобна для проверки результатов загрузки, или корректировки базы. Для постоянного подключения лучше воспользоваться другими обработками, учитывающими изменения в нескольких сеансах.
Для удобства можно добавить ее в общие обработчики записи и включать при необходимости отладки (без изменения обработок загрузки)
Можно использовать как аналог версионирования - хранить в рег.сведений только изменения ссылок, но тогда обработку надо доработать чтобы не терялась информация при удалени/добвлении строк
Пока обрабатываются только справочники и документы (без учета движений).
Для того, что бы обработка начала слушать запись объекта перед его записью, например при создании, надо его подписать методом обработки .РегистрироватьИзменения(объект):
(ЛогИзменений = ВнешниеОбработки.Создать("c:\Epf\Trans\ОтчетОбИзменнииОбъетов.epf"); )
Док = Ссылка.ПолучитьОбъект();
ЛогИзменений.РегистрироватьИзменения(Док);
Можно включить возможность отмены изменений: ЛогИзменений.ИспользоватьТранзакцию();
Когда все изизменения завершены (документы загруженны) можно показать отчет: ЛогИзменений.ПоказатьРезультат();
Если включили транзакцию - форма откроется в модальном режиме, и в меню действия добавиться диалог сохранить / отменить изменения (не придумал как это сделать без модального режима?)
Что бы отчет по изменнеиям не был слишком большим - реквизиты табличной части проверяются только если не изменилось количество строк (+/- строки). Выводится не больше 20 изменений одной таб.части.
Созданные-измененные документы можно сразу провести - действия => провести документы.
Обнаружил не очевидную вещь: Если для одного объета два раза вызвать ДобавитьОбработчик Объект.ПередЗаписью, ЭтаОбработка.ПередЗаписьюДокумента; то обработчик будет вызываться два раза (!)
В обработку V8Exchan82.epf добавлен пример вызова ЛогИзменений - теперь можно посмотреть, что загрузилось в базу, и при необходимости отменить загрузку (галочка на фоме "фл использовать транзакцию лог изменений").
( было интересно отследить откуда вызывается запись в V8Exchan82.epf ;-) )
Идея обработки довольно проста, но похожей на ИнфоСтарте не нашел
(такое уже сделано в //infostart.ru/public/16654/ ,но по дуругому -через добавление текста в обработчики при записи)
В качестве примеров работы с СКД использовались :
//infostart.ru/public/16408/
//infostart.ru/public/72280/
-Спасибо!
Точно такого использования СКД не нашел - обработка может быть полезнна как пример програмного создания СКД по таблице значений, с группировками, ресурсами и возможностью пере-настроить СКД (гораздо легче было бы сразу делать отчетом с готовой схемой компановки)
Похожие обработки:
Визуальный контроль изменений документа
Изменения объектов (версионирование)
Универсальная выгрузка/загрузка XML (2.0.26) С АНАЛИЗОМ ИЗМЕНЕННЫХ ОБЪЕКТОВ ПРИ ЗАГРУЗКЕ
Подсистема восставноления и регистрации изменени данных
Журнал регистрации изменений
Еще интересный вариант проверки изменнеий -сравнивать с эталонной базой: //infostart.ru/public/102176/
что то подобное есть в обработке СопоставлениеОбъектовИнформационныхБаз из библиотеке стандартных подсистем, но описаний работы не нашел, и пока не разобрался как это работает. -если кто видел описание -киньте ссылку.
upd 27/12/2011: Добавлен проведедение созданных-изменных документов, добавлены кнопки сворачивания групп
upd 24/11/2011: Добавлен пример вызова из V8Exchan82.epf