mills
@mills

Деактивация если нет в файле выгрузке при интеграции с 1с в init.php делал кто то?

Всем привет.
Кто нибудь делал деактивацию товара/элемента при интеграции с 1с если нет товара /элемента в файле?
Стандартный способ не работает
  • Вопрос задан
  • 56 просмотров
Пригласить эксперта
Ответы на вопрос 1
@itauditmedia
mills какая у вас конфигурация 1С и модуль обмена?
в новых версиях обмена которые на расширении этот параметр настраивается из 1С

если сильно нужно из init.php
нужно сначала передать в глобальную переменную время начала обмена $startTime = $_GET["timestamp"];

$rsImportedIBlocks = \Bitrix\IBlock\IblockFieldTable::getList(array(
            "select" => array("IBLOCK_ID", "DEFAULT_VALUE"),
            "filter" => array(
                "=FIELD_ID" => "XML_IMPORT_START_TIME",
                ">=DEFAULT_VALUE" => date("Y-m-d H:i:s", $startTime),
            ),
        ));
        $timeStamp = ConvertTimeStamp($startTime"FULL");

        while ($arField = $rsImportedIBlocks->fetch())
        {
            $element = new CIBlockElement;
            $rsElements = CIBlockElement::GetList(array(), array(
                "IBLOCK_ID" => $arField["IBLOCK_ID"],
                "ACTIVE" => "Y",
                "<TIMESTAMP_X" =>  $timeStamp,
            ), false, false, array("ID"));
            while ($arElement = $rsElements->Fetch())
            {
                $element->Update($arElement["ID"], array("ACTIVE" => "N"));
            }

            $section = new CIBlockSection();
            $rsSections = CIBlockSection::GetList(array(), array(
                "IBLOCK_ID" => $arField["IBLOCK_ID"],
                "ACTIVE" => "Y",
                "<TIMESTAMP_X" =>  $timeStamp,
            ), false, array("ID"));
            while ($arSection = $rsSections->Fetch())
            {
                $section->Update($arSection["ID"], array("ACTIVE" => "N"));
            }
        }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы