Всем привет. Ребята, столкнулся с такой проблемой: есть некая база в 1с которая грузится на мой сайт, сайт на битриксе тема аспромакс, настроил сортировку товаров, как полагается, но по неясной мне причине сортировка не обновляется при обновление данных в 1с, то есть если в коде я указываю Y и N как пологающие наличие товара, то при изменение товара на складе код не обновляется и выдает старые значения. Может кто подсказать, как создать автоинкремент обновления? PHP: function set_available_region($ID, $IBLOCK_ID = 49) { CModule::IncludeModule('aspro.max'); CModule::IncludeModule('iblock'); CModule::IncludeModule('catalog'); $arRegions = CMaxRegionality::getRegions();// Получаем массив регионов $arProd = CCatalogProduct::GetByID($ID); // Получаем ифнормацию о товаре foreach ($arRegions as $regID => $arRegion) { // Идем по всем регионам // Получаем свойство в котором хранится флаг доступности для региона (в коде свойства сожержится ID региона из инфоблока) $rsProp = CIBlockProperty::GetList(array(), array('IBLOCK_ID' => $IBLOCK_ID, 'ACTIVE' => 'Y', 'CODE' => 'REGION_'.$regID.'_AVAILABLE')); if(!$rsProp->SelectedRowsCount()) // Если свойство не создано - создадим { $arFields = Array( "NAME" => "Доступность в регионе - ".$arRegion['NAME'], "ACTIVE" => "Y", "SORT" => "600", "CODE" => 'REGION_'.$regID.'_AVAILABLE', "PROPERTY_TYPE" => "S", "IBLOCK_ID" => $IBLOCK_ID, ); $ibp = new CIBlockProperty; $PropID = $ibp->Add($arFields); } CIBlockElement::SetPropertyValueCode($ID, 'REGION_'.$regID.'_AVAILABLE', "N"); // Сбрасываем для товара значение этого совйства на N if($arProd['TYPE'] == 1){ // Если товар простой (TYPE = 1) - сразу ищем по нужным складам // Находим информацию по наличию на складах которые отмечены у данного региона $rsStoreProduct = \Bitrix\Catalog\StoreProductTable::getList(array( 'filter' => array('=PRODUCT_ID'=>$ID,'=STORE.ACTIVE'=>'Y', 'STORE.ID' => $arRegion['LIST_STORES']), 'select' => array('AMOUNT','STORE_ID','STORE_TITLE' => 'STORE.TITLE'), )); while($arStoreProduct=$rsStoreProduct->fetch()) { if($arStoreProduct['AMOUNT'] > 0){ // если на складе больше 0 - сразу записываем что товар доступен и нет смысла больше искать по другим складам, прерываем цикл CIBlockElement::SetPropertyValueCode($ID, 'REGION_'.$regID.'_AVAILABLE', "Y"); break; } } }elseif ($arProd['TYPE'] == 3){ // Если товар с торговыми предложениями $arTP = CCatalogSKU::getOffersList($ID, $IBLOCK_ID, array('ACTIVE' => 'Y')); // получаем список активных торговых предложений товара $i = 0; foreach (array_pop($arTP) as $tp_id => $arTPitem) { $i++; // Находим информацию по наличию на складах которые отмечены у данного региона $rsStoreProduct = \Bitrix\Catalog\StoreProductTable::getList(array( 'filter' => array('=PRODUCT_ID'=>$tp_id,'=STORE.ACTIVE'=>'Y', 'STORE.ID' => $arRegion['LIST_STORES']), 'select' => array('AMOUNT','STORE_ID','STORE_TITLE' => 'STORE.TITLE'), )); while($arStoreProduct=$rsStoreProduct->fetch()) { if($arStoreProduct['AMOUNT'] > 0){ // если на складе больше 0 - сразу записываем что товар доступен и нет смысла больше искать по другим складам, прерываем цикл CIBlockElement::SetPropertyValueCode($ID, 'REGION_'.$regID.'_AVAILABLE', "Y"); break; } } } } } }