Не запоминать выгруженные объекты 1с конвертация
В данной статье будут рассмотрены десять приемов работы с конвертацией данных 2.1. Указанные приемы явно не описываются в документации (справке), но их полезно знать и применять. Для наглядности приёмы работы сопровождаются описанием реализации и практическими примерами.
Чтобы выгрузить один объект источника в несколько объектов приемника, можно использовать мощный инструмент расширения возможностей правил конвертации – «ВыгрузитьПоПравилу».
Синтаксис функции:
Пример реальной задачи. Необходимо выгрузить справочник – «НоменклатурныеГруппы» в три объекта на стороне приемника: «НоменклатурнаяГруппа» (справочник), «ЗаказНаПроизводство» (документ), «СтатусыЗаказов» (регистр сведений). Для решения данной задачи можно использовать функцию «ВыгрузитьПоПравилу».
В правилах выгрузки данных (далее-ПВД) в обработчике «ПередОбработкой» происходит выгрузка в объект приемника «НоменклатурнаяГруппа» по стандартной выгрузке (ИмяПКО), а в обработчике «ПослеВыгрузки» происходит выгрузка в объекты «ЗаказНаПроизводство» и «СтатусыЗаказов» с помощью функции «ВыгрузитьПоПравилу»:
Если необходимо выгрузить иерархический справочник (элементы и папки) с учетом иерархии и поиск в базе приемника будет осуществляться по внутреннему идентификатору объекта источника (по полям поиска не будет продолжен поиск), то для корректной выгрузки иерархии необходимо установить галочку – «Поиск» у реквизита «ЭтоГруппа» (см. рисунок 1).
Рисунок 1 – Выгрузка иерархического справочника.
Если не установить галочку «Поиск» у реквизита «ЭтоГруппа», то папки объекта будут выгружаться как элементы.
Объекты регистрируются по правилам регистрации объектов к выгрузке только при изменении реквизитов объекта, которые указаны в правилах конвертации свойств (далее-ПКС) объекта (правила обмена данными). При необходимости регистрировать объект к выгрузке и при изменении реквизитов, которые не указаны в ПКС, достаточно данные реквизиты добавить в ПКС и установить галочку – «отключить» (см. рисунок 2).
Рисунок 2 – Реквизиты объекта для правил регистрации объекта.
Это может потребоваться для задачи, когда у нас есть реквизиты на стороне базы источника, которых нет в базе приемника, и только при их изменении объекты должны регистрироваться к обмену.
Когда стоит задача выгружать вместо регистрируемого объекта другой объект, то при регистрации исходного объекта в правилах регистрации объектов в обработчике «ПослеОбработки» через метод «ЗарегистрироватьИзменения» плана обмена можно зарегистрировать необходимый объект на узлах плана обмена.
Синтаксис метода:
ЗарегистрироватьИзменения (Узлы, Данные)
Пример реальной задачи. Несколько документов «Списания с расчетного счета» по одному документу «Заявка на расходование ДС» необходимо выгружать из конфигурации источника в один документ «Списания с расчетного счета» конфигурации приемника. При изменении документа «Списания с расчетного счета» регистрируется к обмену документ «Заявка на расходование ДС», который при выгрузке собирает по определенным правилам данные со всех документов «Списания с расчетного счета».
В продолжение пункта 4. При выгрузке любого объекта происходит проверка, соответствует ли он существующим правилам регистрации. Если при регистрации вместо исходного объекта регистрируется к выгрузке другой объект, то новый объект также будет проходить проверку по своему типу правил регистрации объектов. В случае несоответствия правилам регистрации, объект будет выгружать, как «УдалениеОбъекта».
Для устранения данной нестыковки выгружаемого объекта и правил регистрации объекта, нужно использовать в правилах регистрации в обработчике «ПослеОбработки» параметр «Выгрузка».
Описание параметра Выгрузка:
Выгрузка (только чтение) – Булево – параметр определяет контекст выполнения правила регистрации. Истина – правило регистрации выполняется в контексте выгрузки объекта. Ложь – правило регистрации выполняется в контексте перед записью объекта.
Пример реальной задачи. При изменении документа «Списания с расчетного счета» регистрируется к обмену документ «Заявка на расходование ДС», который при выгрузке собирает по определенным правилам данные со всех документов «Списания с расчетного счета». Но документ «Заявка на расходование ДС» может выгружать независимо по своим правилам регистрации, которые не совпадают с правилами регистрации при регистрации из документа «Списания с расчетного счета».
Если по одному объекту источнику в правилах конвертации объектов присутствуют несколько правил, то система будет использовать по умолчанию правило, которое совпадает по наименованию с наименованием объекта источника (см. рисунок 3).
Рисунок 3 – Выбор правила конвертации объекта по умолчанию.
Пример реальной задачи. Данный подход может пригодиться при выгрузке субконто, когда система определяет правила выгрузки объекта по умолчанию.
При необходимости создавать на стороне приемника новые элементы документов (справочников) и подставлять их в исходный объект, можно применить следующий подход:
- определить правило заполнения нового документа (справочника) на стороне приемника (например, через входящие данные);
- описать заполнение реквизита нового документа (справочника) в исходном объекте (например, через исходящие данные);
- заполнять при выгрузке на стороне источника новый документ (справочник) уникальным значением (например, числом).
Пример реальной задачи. Необходимо на стороне приемника создавать новые документы «ДокументРасчетовСКонтрагентом» в документе ввод начальных остатков по счетам взаиморасчетов. На стороне источника заполняем реквизит «ДокументРасчетовСКонтрагентом» при выгрузке начальных остатков по счетам взаиморасчетов уникальным значением (числом):
В исходном объекте («ВводНачальныхОстатков») описываем правила выгрузки реквизита «ДокументРасчетовСКонтрагентом»:
Определяем правило заполнения «ДокументаРасчетовСКонтрагентом» на стороне приемника (см. рисунок 4).
Рисунок 4 – Правили выгрузки «ДокументРасчетовСКонтрагентов».
В конвертации данных нельзя создать параметр с типом «ТаблицаЗначений» на вкладке «Параметры» (см. рисунок 5).
Рисунок 5 – Допустимые типы для параметров конвертации данных.
Возможность создать параметр с типом «ТаблицаЗначений» при необходимости присутствует в системе, необходимо в общем обработчике «ПередЗагрузкойДанных» определить параметр.
Также необходимо в общем обработчике «ПослеЗагрузкиДанных» удалить данный параметр.
При выгрузке из базы источника можно указывать вместо элемента перечисления или предопределенного значения справочника текстовое значение, которое равно наименованию элемента перечисления или предопределенного значения справочника.
Пример реальной задачи. В базе приемника присутствует реквизит – «ТипПлатежа» с типом «Перечисление». При выгрузке реквизита (обработчик: «Перед выгрузкой») можно указать текстовое значение равное наименованию элемента перечисления на стороне базы приемника (см. рисунок 6). Данный подход может ускорить процесс разработки в конвертации данных.
Рисунок 6 – Заполнение реквизита с типом «Перечисление».
Когда необходимо выгрузить большой объем данных и нет необходимости выгружать полностью ссылочные данные, то можно сократить объем выгружаемых данных с помощью параметров «ВыгрузитьОбъект» («ВыгрузитьТолькоСсылку») в обработчике «ПриВыгрузке» правил конвертации свойств (ПКС):
Пример реальной задачи. Данное ускорение может потребоваться, когда все ссылочные объекты (нормативно-справочная информация) из базы источника ежедневно интегрируется в базу приемника, а документы должны транслироваться с определенным интервалом (раз в месяц). В таком случае при обмене документами между базами нет необходимости полностью передавать ссылочные объекты, а можно передавать только ссылку, что ускорит процесс выгрузки.
Рассмотренные приемы работы позволят повысить производительность и эффективность работы с программой конвертацией данных 2.1.
Статью подготовил Аналитик-эксперт по информационным системам "ИнфоСофт" Ретунский Александр.
Несколько простых рекомендаций, которые могут ускорить выгрузку и загрузку данных.
Правила Выгрузки данных
1. Порядок правил выгрузки данных
Рекомендуется располагать правила выгрузки данных в таком порядке, что бы ссылки зависимых объектов были снизу вверх. то есть самыми первыми должны располагаться правила выгрузки данных, объекты которых ни на кого не ссылаются, затем должны идти правила выгрузки объектов, ссылающихся на первую группу и т.д.
Пример: Нужно выгрузить два справочника Пользователи и Физические лица. Справочник Пользователи имеет реквизит Физ. лицо - ссылка на справочник Физические лица. То есть справочник Пользователи ссылается на справочник Физические лица. Рекомендуемая последовательность правил выгрузки в этом случае: Физические лица, пользователи.
2. Выбирать данные для выгрузки одним запросом
Если в правиле конвертации нет переноса табличных частей и движений, а так же в событиях перед выгрузкой нет прямых обращений к выгружаемому объекту, рекомендуется в правиле выгрузки данных использовать режим "Выбирать данные для выгрузки одним запросом". Этот режим позволит одним запросом получить все выгружаемые данные определенного типа, а не строить отдельные запросы для выгрузки каждого объекта.
Правила Конвертации объектов
3. Использовать быстрый поиск при загрузке
Этот режим выгрузки и загрузки рекомендуется использовать для тех правил конвертации объектов, которые выгружают ссылочные типы общее количество которых сравнительно небольшое (примерно до 1000 элементов), на которые имеется множество ссылок в других объектов.
Пример: Справочник Пользователи. Практически все документы имеют ссылку на этот справочник и количество элементов справочника не превосходит 1000.
4. Не выгружать объекты свойств по ссылкам
Режим позволяет для правила конвертации объектов не выгружать все элементы на которые есть ссылки. Если режим установлен, то при выгрузке будет выгружен сам объект и информация для поиска всех его ссылок, но полная информация о зависимых элементах выгружена не будет. Эта оптимизация может в несколько раз ускорить выгрузку и загрузку данных.
5. Не запоминать выгруженные объекты
Для правил конвертации не ссылочных объектов (регистров) нужно установить флажок "Не запоминать выгруженные объекты", так как ссылаться на строки регистра нельзя, поэтому нет и смысла запоминать те строки регистров, которые были выгружены. Для ссылочных объектов этот флажок, как правило, нужен, что бы оптимизировать повторное обращение для выгрузки одного и того же объекта.
6. Не делать общих обработчиков событий для всех объектов
Не рекомендуется использовать общие обработчики событий перед выгрузкой и загрузкой данных для всех объектов. Обработки выгрузки и загрузки не знают что будет выполняться в этих обработчиках поэтому некоторые оптимизации (например, при загрузке запись только измененных объектов) действовать не будут. Если есть необходимость использовать одни и те же алгоритмы обработки данных при выгрузке и загрузке, то рекомендуется создать новый Алгоритм, а в событиях у нужных объектов его вызывать.
Обработка "Универсальный обмен данными XML"
7. Использовать оптимизированный формат для обмена данными
8. Загружать данные в режиме обмена
Позволяет отказать от излишних проверок на этапе загрузки данных
9. Записывать только измененные объекты
Позволяет производить запись только измененных объектов в информационную базу. Если объект изменен не был, то при загрузке из файла обмена он не будет перезаписан.
10. Оптимизированная запись объектов
Режим позволяет резко сократить количество обращений в информационной базе для записи объектов.
11. Записывать регистры наборами записей
Режим позволяет записывать изменения в регистрах наборами записей, а не менеджерами записей.
12. Обмен данными через COM
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Как мы уже знаем, правила конвертации объектов используются для сопоставления объектов в конфигурациях источнике и приемнике. Естественно, что в правиле задается объект источник данных (то есть откуда брать данные) и объект - приемник данных (то есть куда переносить или записывать данные).
Кроме них имеется еще ряд свойств смысл которых постараемся раскрыть.
Искать объект приемника по внутреннему идентификатору объекта источника - флаг определяющий поиск объектов в приемнике для версии платформы V8. Если этот флажок взведен, то поиск объекта для модификации в базе приемнике осуществляется по внутреннему (уникальному) идентификатору объекта. Этот идентификатор не виден пользователю а средствами программы поддерживается уникальность идентификаторов в информационной базе, так что никакие два объекта информационной базы не имеют одинаковых идентификаторов.
Продолжить поиск по полям поиска, если по идентификатору объект приемник не найден - флаг определяет продолжать поиск объекта в информационной базе приемнике, если поиск по уникальному идентификатору не привел к положительному результату.
Не замещать существующие объекты в приемнике при загрузке, а только создавать новые и заполнять их * - флаг определяет нужно ли выполнять изменение реквизитов объекта в информационной базе приемнике, если объект был успешно найден по уникальному идентификатору или по полям поиска.
Не создавать новый объект в приемнике, если он НЕ найден * - флаг определяет нужно ли создавать новый объект в информационной базе - приемнике, если он не был найден по уникальному идентификатору или по полям поиска.
При переносе объекта по ссылке НЕ создавать новый объект, а только переносить ссылку - флаг определяет нужно ли создавать новый объект в информационной базе - приемнике, если он не был найден по уникальному идентификатору или по полям поиска в том случае если объект переносится по ссылке. Если объект не находится и у него установлен поиск по уникальносу идентификатору то будет перенесена только ссылка на объект (без полей поиска - одна ссылка). Если же объект выгружается непосредственно (то есть выгружается не только ссылка на объект, но и все его реквизиты), то флаг ни на что не влияет.
Не выгружать объекты свойств источника по ссылкам - флаг определяет нужно ли выгружать все объекты на которые есть ссылки у объекта источника или достаточно выгрузить только информацию о ссылках на эти объекты. Допустим вы выгружаете справочник номенклатура. Если у соответствующего ПКО не взведен этот флажок, то кроме номенклатуры будут выгружены все объекты на которые она ссылается. Если же флаг взведен, то объекты на которые ссылается номенклатура выгружены не будут. Попробуйте поставить этот флажок и посмотреть результирующий файл выгрузки данных, а затем убрать его и сравнить результаты. Вам быстро станет понятен его смысл.
Не запоминать выгруженные объекты - флаг определяет нужно ли системе при выгрузке КЭШировать последние выгруженные объекты. КЭШирование позволяет ускорить процесс выгрузки и загрузки данных.
Использовать быстрый поиск объекта при выгрузке и загрузке - флаг определяет использовать ли быстрый поиск объектов для выгрузки. Имеет смысл применять для небольших по количеству записей справочников (Количество записей не более 1000 элементов). Эффект достигается в том случае, если у многих объектов установлен флаг Не выгружать объекты свойств по ссылкам. При такой схеме выгрузки и загрузке данных скорость возрастает в несколько раз.
Автоматически генерировать номер или код, если он не задан - флаг определяет нужно ли системе автоматически генерировать новый код или номер объекта, если перед записью он не заполнен.
On-line обмен
Выгружать объект (полностью), только при наличии на него ссылки - настройка определяет при каких обстоятельствах необходимо выгружать объект. В том случае, если флажок установлен, то выгрузка объекта будет выполнена по следующим правилам:
- По правилам выгрузки если объект уже выгружался, то выгружаем его как есть
- По правилам выгрузки если объект не выгружался, то не выгружаем
- При выгрузке по ссылке на объект выгружаем целиком
Например, если нужно переносить не всю номенклатуру из одной ИБ в другую, а только ту, на которую есть ссылки, то флажок подойдет.
Не замещать объект созданный в информационной базе приемнике при загрузке - настройка определяет нужно ли (обратно) переносить объект, который был создан в информационной базе, с которой организован обмен. То есть, если документ создан в информационной базе 1, при помощи обмена поступил в информационную базу 2, то стоит ли его при изменении в базе 2 переносить в базу 1. Настройка позволяет указать приоритет объекта при обмене по месту его создания. То есть изменения в информационной базе, где был создан объект распространяются везде, а изменения в других базах не влияют на этот объект в базе 1.
Приоритет объекта загрузки - настройка определяет приоритет объекта при загрузке в случае коллизии изменений. Значение по умолчанию и в случае незаполненного значения - Выше. Если произошла коллизия, программа анализирует приоритет объекта загрузки. Только в том случае, если приоритет объекта загрузки равен Выше он будет записан в информационную базу приемника. В случае если приоритет Совпадает или Ниже программа зафиксирует соответствующую информацию о коллизии в информационной базе, но объект менять при этом не будет.
Варианты настроек полей поиска - таблица с возможными вариантами настроек полей поиска для пользователя. Разработчик правил определяет возможные комбинации полей поиска, которые пользователь может выбирать при настройке обмена. Все настройки указанные разработчиком правил должны быть отработаны в коде обработчика "Поля поиска". Переменная НастройкаПоиска в обработчике определяет выбранный пользователем вариант сопоставления (ИмяНастройкиДляАлгоритма из соответствующей строки таблицы). Если пользователь не выбрал ни один вариант сопоставления, или ему ни один вариант не был предложен, то НастройкаПоиска - пустая строка.
На закладке "Дополнительно" можно редактировать наименование правила, вхождение его в определенную группу а так же описание правила.
Примечания:
* Не рекомендуется для использования при настройке on-line обмена
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Как мы уже знаем, правила конвертации свойств используются для сопоставления реквизитов обменивающихся объектов. Естественно, что в правиле конвертации задаются реквизит из объекта источника и объекта приемника.
Кроме того, для ссылочных реквизитов можно указать правило конвертации объектов, которое необходимо применить для переноса значения данного реквизита.
Поиск объекта при загрузке по данному свойству - флаг определяющий нужно ли по данному свойству производить поиск объектов в информационной базе приемнике. Если сразу у нескольких реквизитов установлено свойство поиска данных, то условия поиска объединяются по "И". В этом случае правило поиска звучит следующим образом: Найти объект у которых все реквизиты поиска совпадают с источником. (ВНИМАНИЕ. Поиск по уникальному идентификатору, который может быть установлен у правила конвертации объектов более приоритетный, то есть если он установлен то поиск будет выполнен по этому идентификатору).
Отключить обработку данного правила - флаг, позволяет отключить обработку данного свойства, не удаляя его из правил конвертации объектов.
Не замещать значение данного свойства у существующих объектов ИБ - флаг, позволяет отключить обработку данного для объектов информационной базы приемника, которые были найдены по уникальному идентификатору или по полям поиска.
Автоматически приводить значение к длине приемника - флаг, позволяет включить автоматическое приведение Номера или Кода справочника соответствующему значению в приемнике по длине. При этом префиксы сохраняются, а числовые части преобразуются под длину поля в приемнике.
ТОЛЬКО ДЛЯ ОБМЕНА V8 - V8
Функционал, позволяющий передавать дополнительные параметры в информационную базу приемник из источника.
Передавать данные в приемник - флаг определяет куда будут помещены данные при загрузке. Непосредственно в найденный для изменения объект.
Передавать данные в параметр - флаг определяет куда будут помещены данные при загрузке. В отдельное соответствие для данного объекта, но не в сам объект. Этот подход удобен когда нужно передать какое либо значение в приемник, но нет реквизита куда нужно его поместить. Впоследствии анализируя дополнительные параметры можно изменить логику заполнения объекта приемника. В правилах необходимо указать имя параметра куда нужно поместить данные. Для табличных частей и наборов движений для каждой строки формируется отдельная структура в которой хранится информация.
Доступ к этим данным возможен в событии правила конвертации объекта "После загрузки". Например, так:
Выгружать элементы группы через промежуточный файл - флаг определяет как выгружать объекты данного типа, через промежуточный файл (экономично с точки зрения оперативной памяти) или напрямую через память (оптимально по скорости, но при больших объемах передаваемых данных оперативная память может закончится).
На закладке "Дополнительно" можно редактировать вхождение правила в определенную группу, а так же его описание. Наименование правила формируется автоматически и недоступно для изменения.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Иногда при переносе данных возникает задача: не переносить помеченные на удаление документы, а те документы, которые были ранее перенесены в базу приемник и теперь в приемнике стали помеченными на удаления - переносить так, чтобы в базу приемник не тянулись связанные с объектом ссылки, но искомый объект помечался на удаление. В данной статье будет рассказано, как это можно сделать достаточно просто, используя конфигурацию "Конвертация 2.1".
В статье описывается способ переноса таких объектов в контексте конфигурации "Конвертация 2.1". Во всех остальных случаях, когда используются прочие механизмы обменов - данная задача имеет различное множество решений, которые в данной статье не рассматриваются.
Итак, в правилах обмена мы будем использовать алгоритмы и обработчики событий объектов. В алгоритмах мы создадим 3 элемента, которые будем размещать в одноименных обработчиках документов и справочников. Пример реализации я буду приводить только для документов, так как для справочников подход будет аналогичным.
Алгоритм "ПередВыгрузкой":
Получение пометки удаления для ссылки производится через точку. Все потому, что далее, перед исполнением кода обработчика объекта "ПриВыгрузке", будет производится чтение ссылки со всеми реквизитами и табличными частями, поэтому использовать получение значения реквизита ссылки с помощью запроса или БСП функции ОбщегоНазначения.ПолучитьЗначениеРеквизита() будет являться лишним. Мы прочитаем все реквизиты в обработчике "ПередВыгрузкой", закэшируя тем самым объект.
(пример трассировки в MSSQL Profiler для процедуры "ПередВыгрузкой")
(пример трассировки перед выполнением кода внутри процедуры "ПриВыгрузке" )
Если объект выгружается впервые, то нет смысла загружать помеченный на удаление объект в приемник. Конечно, в некоторых случаях может потребоваться переносить такие объекты, например, в случае, когда переносится набор записей регистра и наш документ содержится в измерении набора. В таком случае нужно понимать - насколько действительно в базе приемнике нужны такие записи. В моей статье я не рассматриваю такие случаи. Далее, передаем параметр конкретного объекта, который будет содержать информацию о пометке удаления.
Алгоритм "ПриВыгрузке":
ПКО.НеВыгружатьОбъектыСвойствПоСсылкам = Источник.ПометкаУдаления ;
Самый интересный момент статьи. Такой строчкой кода мы указываем, что связанные ссылки не будут тянуться с искомым объектом в файл выгрузки, если он помечен на удаление. Все дело в том, что данное свойство не так очевидно указано в справке к обработчикам. А в настройках правила свойство устанавливается на все объекты выгрузки по такому правилу.
Используя данное свойство мы сокращаем размер файла выгрузки, а так же избавляемся от проверки при загрузке и прописывания кода, который бы исключал при загрузке связанные ссылки (весьма не тривиальный алгоритм). В случае, если мы не используем файлы, а осуществляем обмен с помощью веб-сервисов или com-подключений - мы сокращаем объем передаваемых данных.
Алгоритм "ПриЗагрузке":
ЕстьПараметрПометкаУдаления = ( Параметры.Свойство ( "_ПометкаУдаления" ) И Параметры._ПометкаУдаления );
Если ОбщегоНазначения.ЕстьРеквизитОбъекта ( "РучнаяКорректировка" , Объект.Метаданные ()) Тогда ЕстьРучнаяКорректировка = Объект.РучнаяКорректировка ;
НеЗамещатьОбъект = ЕстьРучнаяКорректировка ИЛИ ЕстьПараметрПометкаУдаления;
Если НЕ ЕстьРучнаяКорректировка И ЕстьПараметрПометкаУдаления Тогда
При загрузке в базу приемник нам необходимо проанализировать - был ли данный объект ранее загружен и его движения были отредактированы. Для этого обратимся к реквизиту объекта "РучнаяКорректировка", если он, конечно, существует. Так же проверим параметр, который с объектом мы передали при выгрузке процедурой "ПередатьОдинПараметрВПриемник". Если движения объекта был ранее отредактированы или объект стал помеченным на удаления - мы не замещаем значения реквизитов объекта, а пометку устанавливаем принудительно в данном обработчике.
Осталось разместить вызовы данных алгоритмов в обработчиках объектов: "ПередВыгрузкой", "ПриВыгрузке", "ПриЗагрузке".
Конечно, пример, приведенный в моей статье, является не единственным вариантом решения задачи. Вариантов, возможно, масса. Например, можно в базе приемнике сделать веб-сервис, к которому мы могли бы обращаться из базы источника, передавая информацию об выгружаемых объектах - как вариант идентификаторы ссылок. А в ответ веб-сервис возвращал информацию - нужно ли вообще выгружать такие объекты.
С данной задачей я столкнулся "вживую", на достаточно большом объеме данных. И такой подход оказался вполне эффективным.
Надеюсь, что пример, описанный в статье, окажется полезным!
Автор статьи
Ведущий разработчик по технологическим вопросам ООО ЦС ИнфоСофт
Читайте также: