Проверка на редактирование элемента пользователем из админ панели

Проверка на редактирование элемента пользователем из админ панели

07.06.2023
771
Пример проверки изменения элемента, внесенные пользователем из административной панели, с помощью события "OnAfterIBlockElementUpdate".

Когда мы работаем с 1С Битрикс, наиболее распространенный тип события, который мы можем использовать для проверки изменений элемента - это событие "OnAfterIBlockElementUpdate". В данном коде в файле init.php, рассмотренном ниже, мы можем использовать этот тип события, чтобы проверить, был ли элемент изменен пользователем из административной панели. Это может быть полезно для мониторинга и контроля изменений элементов.

Пример кода

В данном коде мы видим, что событие "OnAfterIBlockElementUpdate" добавляется как обработчик с помощью функции AddEventHandler. Мы можем обнаружить, что элемент был изменен пользователем из административной панели, используя следующие инструкции:

AddEventHandler("iblock", "OnAfterIBlockElementUpdate", "AfterElemUpdate");
function AfterElemUpdate($arFields){
    // проверка на изменение записи в нужном инфоблоке (1)
    if($arFields['IBLOCK_ID'] == 1){
	// получение данных о запросе
        $request = \Bitrix\Main\Context::getCurrent()->getRequest();

        // Определение, находимся ли мы в админке.
        // в папках "/bitrix/admin/" или "/bitrix/updates/" установлены ли константы "ADMIN_SECTION" или "BX_PUBLIC_TOOLS".
        if($request->isAdminSection() && isset($arFields["ID"])) {
            // проверим авторизацию, если нужно
            global $USER;
            if ($USER->IsAuthorized()){
                // твой код              
            }
        }
    }
}

В этом коде мы проверяем, был ли элемент изменен в указанном инфоблоке (IBLOCK_ID=1). Затем мы проверяем, авторизован пользователь и была ли установлена переменная ID для измененного элемента. Если все эти проверки прошли успешно, мы можем продолжить с нашим собственным кодом.

Заключение

Мы рассмотрели, как использовать событие "OnAfterIBlockElementUpdate" для проверки, был ли элемент изменен пользователем из административной панели в 1С Битрикс. Эта функциональность может быть полезна для мониторинга и контроля изменений элементов на сайте.