Кастомизация обмена с 1С

Клиентом была поставлена задача: при обмене с 1С товары помеченные на удаление в 1С должны деактивироваться на сайте, тоже самое должно происходить с характеристиками (в Битриксе они становятся торговыми предложениями).
Решение: стандартный (от Битрикса) класс CIBlockCMLImport (лежит здесь:Bitrix/modules/iblock/classes/general/cml2.php) выносим в свой файл задаем собственное имя и в функцию ImportElement дописываем код:
 if($arXMLElement[$this->mess["IBLOCK_XML2_DELETE_MARK"]]=='true')
      {
         $obElement->Update($arDBElement["ID"], array("ACTIVE"=>"N"), $bWF);
      }
В файле обмена приходит флаг пометки на удаление и мы проверяем его состояние. При этом торговые предложения, помеченные на удаление начинают вести себя некорректно, при каждом обмене происходит инвертация активности/неактивности. Чтобы избежать этого коментим следующий код:
 if($this->CheckIfElementIsActive($arXMLElement))
         {
            //In case element is not active in database we have to activate it and its offers
            if($arDBElement["ACTIVE"] != "Y")
            {
               $obElement->Update($arDBElement["ID"], array("ACTIVE"=>"Y"), $bWF);
               $this->ChangeOffersStatus($arDBElement["ID"], "Y", $bWF);
               $counter["UPD"]++;
            }
         }
и
            if($arDBElement["ACTIVE"] != "Y")
            {
               $this->ChangeOffersStatus($arDBElement["ID"], "Y", $bWF);
            }
ключевым моментом является ChangeOffersStatus эта функция меняет состояние преложений. Последствия этих действий не гарантированы, но результат устраивает клиента и нам не слишком приходится вникать в логику.
Естественно компонент импорта выносим в свое пространство имен и в нем вызываем наш переименованный и измененный класс.
В новом файле описываем вызов нашего компонента и обмен 1С настраиваем на этот файл.
Как перенести компоненты и переименовать описанно достаточно подробно в других источниках.
Важное замечание: лэнговые файлы сами по себе не подтягиваются, поэтому нужно прописать их вызов через обращение к модулю. Путь должен указываться от корневой папки, а не от корня сайта, лучше распечатать "волшебную" константу PHP __FILE__ и прописать требуемый путь, возможно есть более изящное решение, но здесь приведено работающее решение для "памяти".