Всем привет. Не пойму в чём дело. Есть функция, прописана в init.php:
Функция отлично работает при запуске из командной строки и не работает на агенте. В почту для отладки мне приходит 1 и 2, а вот 3 не приходит.
В чём тут может быть дело? Может ли ей не хватать системных прав? Или чего?
Спасибо.
UPDATE
Включил отладку и вот что увидел, очевидно, при попытке запуска агента:
Fatal error: Call to a member function IsAdmin() on a non-object in /var/www/fresharomat/bitrix/modules/catalog/mysql/price.php on line 139
Эт чё? Походу ему нужно писть price = new CPrice и т.д.? ща попробую
| Код |
|---|
function doSuperSale() {
CModule::IncludeModule('iblock');
CModule::IncludeModule("catalog");
CModule::IncludeModule("sale");
$IBLOCK_ID = 6;
$SECTION_ID = 431;
$extra = 0.3;
mail('ну мой мыл тут','1','1');
$arInfo = CCatalogSKU::GetInfoByProductIBlock($IBLOCK_ID);
mail('ну мой мыл тут','2','2');
$arSelect = Array("ID", "NAME", "SECTION_ID");
$arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, "ACTIVE"=>"Y","SECTION_ID"=>$SECTION_ID,"INCLUDE_SUBSECTIONS" => 'Y');
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
$arPrice = CPrice::GetBasePrice($arFields["ID"]);
CIBlockElement::SetPropertyValues($arFields["ID"], $IBLOCK_ID, $arPrice["PRICE"], 'OLD_PRICE');
$arPrice["PRICE"] += ($arPrice["PRICE"]*$extra);
$arPrice["PRICE"] = (int)$arPrice["PRICE"];
CPrice::Update($arPrice["ID"], $arPrice);
$rsOffers = CIBlockElement::GetList(array("ID", "NAME"),array('IBLOCK_ID' => $arInfo['IBLOCK_ID'], 'PROPERTY_'.$arInfo['SKU_PROPERTY_ID'] => $arFields["ID"]));
while ($arOffer = $rsOffers->GetNext())
{
$arOfferPrice = CPrice::GetBasePrice($arOffer["ID"]);
CIBlockElement::SetPropertyValues($arOffer["ID"], $arInfo['IBLOCK_ID'], $arOfferPrice["PRICE"], 'OLD_PRICE');
$arOfferPrice["PRICE"] += ($arOfferPrice["PRICE"]*$extra);
$arOfferPrice["PRICE"] = (int)$arOfferPrice["PRICE"];
CPrice::Update($arOfferPrice["ID"], $arOfferPrice);
}
}
mail('ну мой мыл тут','3','3');
return "doSuperSale();";
}
|
Функция отлично работает при запуске из командной строки и не работает на агенте. В почту для отладки мне приходит 1 и 2, а вот 3 не приходит.
В чём тут может быть дело? Может ли ей не хватать системных прав? Или чего?
Спасибо.
UPDATE
Включил отладку и вот что увидел, очевидно, при попытке запуска агента:
Fatal error: Call to a member function IsAdmin() on a non-object in /var/www/fresharomat/bitrix/modules/catalog/mysql/price.php on line 139
Эт чё? Походу ему нужно писть price = new CPrice и т.д.? ща попробую