Не обновляется количество доступного товара в Битрикс

Пытаюсь по количеству товаров на складах обновить доступное количество товаров. Почему по событию не обновляет количество товара? Тот же самый код без события работает корректно. Так же все корректно срабатывает если вручную убрать доступное количество товара и сохранить. Если в поле "доступное количество товара" уже стоит какое то число - по событию ничего не обновляет.

Подскажите , что не так? Весь день бьюсь над этой задачей...

Файл init.php

Cmodule::IncludeModule('catalog');
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("MyClass", "OnAfterIBlockElementUpdateHandler"));
class MyClass
{
    public static function OnAfterIBlockElementUpdateHandler(&$arFields)
    {
        if ($arFields["RESULT"]) {
            $arStoreProduct = \Bitrix\Catalog\StoreProductTable::getList([
                'filter' => ['=PRODUCT_ID' => $arFields["ID"]],
                'select' => ['*'],
            ])->fetchAll();
            $numer = 0;
            foreach ($arStoreProduct as $store) {
                if ($store['ID']) {
                    $numer = $numer + $store['AMOUNT'] - $store['QUANTITY_RESERVED'];
                }
            }
            $arFs = array('QUANTITY' => $numer);
            $productResUpdate = \Bitrix\Catalog\Model\Product::update($arFields["ID"], $arFs);

        }
    }
}

Ответы (1 шт):

Автор решения: Vadim

Та же проблема будет с ценами и т.п., тут разбирают почему: https://dev.1c-bitrix.ru/community/blogs/vws/rabota-s-tsenami-v-forme-redaktirovaniya-elementa-infobloka.php

→ Ссылка