# Пример T10111. Удаление записей в целевой системе по условию.

Рассмотрим на примере. Допустим, что интегрированы две информационные системы. Источник нам не важен, но приемником, для примера, является Галактика AMM. Из системы-источника в систему-приемник передаются единицы измерения. Все конвейеры настроены, и интеграция работает успешно.

Предположим, нам необходимо изменить способ обработки сообщений об необходимости удаления единицы измерения в системе-приемнике, таким образом, чтобы не удалялись записи в наименовании которых присутствует фраза «Не удалять».

Для этого необходимо в конвейер получения перед операцией «Удалить объекты ИС» добавить новую вышестоящую операцию.

img

Назовем ее «Условие удаления»

img

Конвейер после этого должен выглядеть следующим так.

img

Далее в редакторе исходного кода операции «Условие удаления» необходимо вставить между тегами //#usercode.begin и //#usercode.end следующий код:

// словарь для удаляемых объектов
var entitiesToRemove = new Dictionary<IMainEntity, TType>();

// наполняем список удаляемых объектов
foreach (var entity in context.Entities)
{
    // пропускаем единицу измерения содержащую в наименовании "Не удалять"
    if (entity.Value.Наименование.Contains("Не удалять"))
        continue;

    entitiesToRemove.Add(entity.Key, entity.Value);
}

// заменяем список со всеми объектами к удалению на отфильтрованный список
context.Entities = entitiesToRemove;

После этого сохранить, зафиксировать и отправить в рабочую модель внесенные изменения. После активации модели, при передаче из системы-источника в систему-приемник сообщений об удалении той или иной единицы измерения, те из них, которые будут содержать в наименовании фразу «Не удалять» будут проигнорированы и не будут удалены из системы-приемника.