Добрый день, мне нужно сделать так чтобы при попытке удалить определные элементы инфоблоков они не удалялись а делались неактивными, для этого я подключил обработчик события перед удалением елемента и пытаюсь в нем обновить поле ACTIVE, но ничего не происходит, пробовал таким же способом обновить запись из других мест, все получается. Думаю может база данных блокируется на время этой операции. Если перевести таблицу в MyISAM то все работает. Может кто сталкивался с похожей ситуацией?
[CODE]<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockElementDelete", Array("MyClass", "OnBeforeIBlockElementDeleteHandler"));
// Подключаем к событию обработчик
class MyClass
{
// создаем обработчик события "OnBeforeIBlockElementDelete"
function OnBeforeIBlockElementDeleteHandler($ID)
{
CModule::IncludeModule( 'iblock' );
if($ID==24)
{
$el = new CIBlockElement;
$arLoadProductArray = Array(
"ACTIVE" => "N",
);
$el->Update(24, $arLoadProductArray);
global $APPLICATION;
$APPLICATION->throwException('вап');
return false;
}
}
}
?>
[/CODE]