Как вывести сообщение об ошибке в админку Битрикса?

На сайте происходит экспорт товаров на сторонний ресурс через API. Создан отдельный класс для работы с API который вызывается по событию "OnAfterIBlockElementAdd", все работает корректно, Но существуют события когда по какой то причине API отдает ошибку (невалидные данные, лимит аутентификации...). Эти ошибки пишутся в файл логов. (КМ забывает его проверять, от этого и проблема). Стоит задача сообщать КМ об ошибке "алертом на экран". Как это сделать?

public function setItemToOnliner($trueID, $data, $jwtToken)   
{
	if (!empty($error)) {
	  AddMessage2Log(print_r('error ONLINER '.$trueID), true));
	  $this->exportError();
	}
}
static function exportError() 
{ 
	AddMessage2Log(print_r('error', true));  
	echo '<script type="text/javascript">alert("error")</script>';
}

Функция exportError() не выводит alert. Подскажите может кто знает как решить...

<?
/*=======================*/
  //init.php
/*=======================*/
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("ExportToPortal", "onlinerExport")); 

CModule::AddAutoloadClasses(
    '', //не указываем имя модуля, так как автозагрузка устанавливается глобально 
    array(
        'ExportPortal' => '/local/classes/exportportal.php',    
    )
);
 
class ExportAll
{   
  function onlinerExport(&$arFields) { 
    if ($arFields["IBLOCK_ID"] == 2) {
      $Onliner = new ExportPortal;
      $Onliner->setOnliner(['ID'=>$arFields['ID'], 'SOLD'=>(!empty($arFields['PROPERTY_VALUES']['338'])) ? 'Y' : 'N' ], $arFields["IBLOCK_SECTION"][0]);   
    }
  }
}

/*=======================*/
  //exportportal.php
/*=======================*/

class ExportPortal extends CModule {

    public function setOnliner($data, $section)  
    {
      $access = $this->getAccessOnliner();  
      if (!empty($access['access_token'])) { 
        $arrOnliner = $this->setItemOnliner($data['ID'], $section); 
        if (!empty($arrOnliner['ITEM'])) {  
          if ($data['SOLD']=='Y') {
            $this->removeItemOnliner($arrOnliner['ONLINER_ID'], $access['access_token']); 
          } else {
            $this->setItemToOnliner($data['ID'], $arrOnliner, $access['access_token']); 
          }
        }
      }
    }
    public function setItemToOnliner($trueID, $data, $jwtToken)   
    {
      /*.........*/
      if (!empty($error)) {
        AddMessage2Log(print_r('error ONLINER '.$trueID), true));
        $this->exportError();
      }
      /*.........*/
    }
    static function exportError() 
    { 
      CAdminMessage::ShowMessage('ERROR');
    }


}

Битрикс 17.0.9


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