Добрый день! Не получается сменить коэф. измерения из св-ва при событиях создания и изменения элемента ифоблока.
Сначала задаю при создании:
Затем при изменении:
Распечатал файл дебага:
При создании:
Значение коэф. при создании вроде как и изменилось ([RATIO] => 20). Но в админке изменений нет... Далее при изменении:
Т.е опять меняется, а в админке без изменений.
Помогите пожалуйста решить проблему. Не понимаю, почему так происходит.
Сначала задаю при создании:
| Код |
|---|
function OnIBlockElementAfterAddHandler(&$arFields) {
if( $arFields["IBLOCK_ID"] == 5) {
$res = CIBlockElement::GetProperty($arFields['IBLOCK_ID'], $arFields['ID'], array("sort" => "asc"), Array("CODE"=>"MINIMALNAYA_PARTIYA_OTGRUZKI_SHT_RUL"));
$arProps = $res->fetch();
if (strlen($arFields['PROPERTY_VALUES'][$arProps['ID']]['n0']['VALUE']) > 0) {
$MeasureVal = $arFields['PROPERTY_VALUES'][$arProps['ID']]['n0']['VALUE'];
$ID = CCatalogMeasureRatio::add(Array('PRODUCT_ID' => $arFields['ID'], 'RATIO' => $MeasureVal));
}
}
} |
Затем при изменении:
| Код |
|---|
function OnIBlockElementBeforeUpdateHandler(&$arFields)
{
if( $arFields["IBLOCK_ID"] == 5)
{
$res = CIBlockElement::GetProperty($arFields['IBLOCK_ID'], $arFields['ID'], array("sort" => "asc"), Array("CODE"=>"MINIMALNAYA_PARTIYA_OTGRUZKI_SHT_RUL"));
$arProps = $res->fetch();
if (strlen($arFields['PROPERTY_VALUES'][$arProps['ID']][$arProps['PROPERTY_VALUE_ID']]['VALUE']) > 0)
{
$MeasureVal = $arFields['PROPERTY_VALUES'][$arProps['ID']][$arProps['PROPERTY_VALUE_ID']]['VALUE'];
$db_ratio = CCatalogMeasureRatio::getList(array(), array("PRODUCT_ID" => $arFields["ID"]), false, false);
$ar_ratio = $db_ratio->Fetch();
$db_res = CCatalogMeasureRatio::update($ar_ratio["ID"], array("RATIO" => $MeasureVal));
}
}
}
|
Распечатал файл дебага:
При создании:
| Код |
|---|
св-во при создании: 20 поля коэф измерения при создании: Array ( [ID] => 2161 [PRODUCT_ID] => 2253 [RATIO] => 20 ) |
Значение коэф. при создании вроде как и изменилось ([RATIO] => 20). Но в админке изменений нет... Далее при изменении:
| Код |
|---|
св-во: 20 поля коэф измерения перед изменением. Почему то меняется айдишник: Array ( [ID] => 2162 [PRODUCT_ID] => 2253 [RATIO] => 1 ) поле перезаписалось, но в админке изменений нет: Array ( [ID] => 2162 [PRODUCT_ID] => 2253 [RATIO] => 20 ) |
Т.е опять меняется, а в админке без изменений.
Помогите пожалуйста решить проблему. Не понимаю, почему так происходит.