v8: Инкрементальный экспорт с ипользованием конфигурации "Конвертация Данных" v8Описано, как используя конфигурацию "Конвертация Данных" (платформа v8) настроить выгрузку лишь тех данных, которые были изменены со времени последней выгрузки. | | Автор статьи: Negro | Редакторы: Макаров, Последняя редакция №4 от 01.09.06 | История URL: http://kb.mista.ru/article.php?id=356 | |
Ключевые слова: конвертация, обмен, данные, выгрузка, экспорт, измененные
Бывают задачи, когда нужно наладить обмен данными между конфигурациями разной структуры. УРБД здесь не поможет. Единственный годящийся вариант - использование конфигурации "Конвертация данных" платформы 8.0. Но, увы, выгрузка данных не учитывает, изменялся ли данный объект с момента последней выгрузки или - нет. Выгружает все данные за жестко назначенный период. Иногда это очень большой массив. Хотелось сделать выгрузку инкрементальной. Оказывается это возможно. Нужно лишь сделать следующее:
1. Создать в конфигурации План обмена (для рассматриваемого примера - ПланОбмена1).
2. В режиме 1С:Предприятия завести в план обмена новый узел (для примера узел с кодом "00001").
3. В правиле выгрузки данных (для примера - для документа Документ1) в качестве способа выгрузки выставить значение "Произвольный алгоритм".
4. В поле обработчика события "Перед обработкой" вписать код наподобие следующего:
Узел = ПланыОбмена.ПланОбмена1.НайтиПоКоду("00001");
Выборка = ПланыОбмена.ВыбратьИзменения(Узел, 1);
ВыборкаДанных = Новый Массив;
Пока Выборка.Следующий() Цикл
Данные = Выборка.Получить();
Если Данные.Метаданные().Имя = "Документ1" Тогда
ВыборкаДанных.Добавить(Данные.Ссылка);
ПланыОбмена.УдалитьРегистрациюИзменений(Узел, Данные.Ссылка);
КонецЕсли;
КонецЦикла;
И, собственно, все. На вашей (вернее - моей :) совести остается лишь слепая уверенность в том, что пакет выгруженных данных обязательно дойдет до адресата и без ошибок загрузится в базу. Именно поэтому я спокойненько удаляю сведения о выгружаемом объекте из регистра изменений. Можно конечно сделать пакет подтверждения импорта, но это уже другая история... Т.о. описанное решение является гибридным (конвертация данных + использование планов обмена). |