Служба регистрации изменений предназначена для регистрации фактов создания, изменения, и удаления данных. Служба регистрирует только факт изменения данных. Причина изменения при этом не фиксируется. Изменения регистрируются для конкретных узлов планов обмена. Основная сфера использования службы регистрации изменений - механизмы обмена данными.
Однако служба регистрации изменений может быть использована не только при обмене данными. В этой статье приводится пример альтернативного использования этой службы, а также фрагмент исходного кода, показывающий типичный подход к реализации.
Служба регистрации изменений может быть использована в механизмах, связанных с обработкой данных. Если необходимо обработать только данные, измененные с момента последней обработки, то использование службы регистрации изменений может упростить задачу.
Опишем приблизительный сценарий подготовки данных для такой обработки:
- В плане обмена создается узел, для которого будет выполняться регистрация изменения данных. Условно назовем данный узел плана обмена - Цель.
- Изменения данных для узла Цель фиксируются либо в автоматическом режиме (случай автоматической регистрации изменений), либо вручную при помощи методов встроенного языка.
- На основании зарегистрированных изменений производится обработка измененных данных. Например: выгрузка в другую информационную систему для последующего анализа; регламентные процедуры, требующие данные, измененные относительного какого-либо момента.
- При необходимости все обработанные изменения данных удаляются.
Состав данных, участвующих в обработке, может регулироваться настройкой плана обмена. Наличие нескольких узлов плана обмена (целей) позволяется осуществлять регистрацию данных для использования в различных механизмах и обработках.
Пример реализацииДанный фрагмент исходного кода демонстрирует типичные действия, необходимые для выполнения операции обработки измененных данных.
Процедура ОбработкаИзмененныхДанных(Цель) Экспорт
Выборка = ПланыОбмена.ВыбратьИзменения(Цель, Цель.НомерОтправленного);
// выполнение собственно обработки выбранных изменений данных
ОбработкаДанных(Выборка);
ПланыОбмена.УдалитьРегистрациюИзменений(Цель, Цель.НомерОтправленного);
КонецПроцедуры
Приведенный фрагмент исходного кода прост и не требует пояснений. Обратите внимание на момент удаления зарегистрированных изменений данных. Удаление зарегистрированных изменений нужно выполнять в том случае, если уже обработанные изменения данных не представляют ценности. В противном случае изменения могут не удаляться, а накапливаться до следующей обработки.