Здавствуйте!
Мне необходимо периодически изменять некоторые элементы в информационных блоках. Для этого был написан Битрикс-Агент примерно следующего содержания:
если вызвать данный код вручную (вставить на страницу, и запросить эту страницу с сервера в браузере) данный код исправно выбирает и изменяет элементы.
Однако при вызове из агента - нет ни одного выбранного элемента.
Вопрос: как же получить доступ к инфоблокам при выполнении в агенте?
Мне необходимо периодически изменять некоторые элементы в информационных блоках. Для этого был написан Битрикс-Агент примерно следующего содержания:
| Код |
|---|
<?
define('LOG_FILENAME', $_SERVER['DOCUMENT_ROOT'].'/LogItems.log'); // лог для проверки работы агента
function MyAgent(){
global $USER;
if (!is_object($USER)) $USER = new CUser;
CModule::IncludeModule("iblock"); // подключаем инфоблоки
$_FILTER = array(
....
);
$arSelectFields = array(
....
);
$res = CIBlockElement::GetList( //делаем запрос
array(), // сортировка
$_FILTER, // параметры запроса
false, // группирвока
false,
$arSelectFields
);
$i = 0;
while($ob = $res->GetNextElement()){
AddMessage2Log("Выбран {$arFields["ID"]}", '');
$arFields = $ob->GetFields();
if( _Некоторое_условие_ ){
$i++;
AddMessage2Log("Изменён {$arFields["ID"]}", '');
$el = new CIBlockElement;
$arLoadProductArray = Array(
....
);
$el->Update($arFields["ID"], $arLoadProductArray);
unset($el);
}
}
AddMessage2Log("наверное изменено $i элементов", '');
return "MyAgent();";
}
?> |
если вызвать данный код вручную (вставить на страницу, и запросить эту страницу с сервера в браузере) данный код исправно выбирает и изменяет элементы.
Однако при вызове из агента - нет ни одного выбранного элемента.
Вопрос: как же получить доступ к инфоблокам при выполнении в агенте?
животное = зверь
законченный гентушник
законченный гентушник
Речь конкретно об инфоблоках, а не глобальных константах: