Деактивировать товар если не активны SKU

Кастомный обмен с 1С впилился в дефолтный компонент catalog.import.1c, но у нас несколько БД сливают информацию о товарах, поэтому из обмена было не понятно какие товары должны отображаться, а какие нет.

Вот пример sql запроса, который включает элемент, у которого хоть 1 активный SKU.
Он же делает наоборот: отключает элемент если все SKU неактивны.

/**
     * catalog_import_1C_finish
     * - событие, вызываемое после окончания обмена одним XML-файлом.
     * @param  mixed $arParams - Параметры подключения компонента обмена.
     * @param  mixed $ABS_FILE_NAME - Полный путь к XML-файлу обмена.
     * @return void
     */
    function catalog_import_1C_finish($arParams, $ABS_FILE_NAME)
    {
        if(stripos($ABS_FILE_NAME,"offers.xml"))
        {
            global $DB;
            $strSql = "CREATE TEMPORARY TABLE `sku_active`
                SELECT `ID`,count(DISTINCT CASE WHEN `ACTIVE` = 'Y' THEN `ID` END) as `COUNT`, substr(`XML_ID`, 1, INSTR(`XML_ID`, '#')-1) AS `PARENT_XML_ID`
                FROM `b_iblock_element`
                WHERE `XML_ID` LIKE '%#%'
                GROUP BY `PARENT_XML_ID`;
            ";
            $DB->Query($strSql, true);

            $strSql = "UPDATE `b_iblock_element` AS `T1`
                SET `T1`.`ACTIVE` = (SELECT CASE WHEN `T2`.`COUNT`>0 THEN 'Y' ELSE 'N' END AS `ACTIVE` FROM `sku_active` AS `T2` WHERE `T1`.`XML_ID` = `T2`.`PARENT_XML_ID`)
                WHERE `T1`.`XML_ID` NOT LIKE '%#%'
            ";
            $DB->Query($strSql, true);
        }
    }


p.s. для оптовой компании решение зашло.