Решение найдено! Сначала я перенастроил запуск крона
[COLOR=#333333][CODE]wget -O /dev/null -q 'http://site.com/bitrix/modules/main/tools/cron_events.php' [/CODE][/COLOR]+ .htaccess, как описал выше [URL=http://dev.1c-bitrix.ru/community/webdev/user/291336/]Роман Семёнов[/URL]. Но проблема не ушла.
Написал в техподдержку, там мне посоветовали проверить, будет ли скрипт отрабатывать не с крона, а на хитах пользователей. Выставил агенты на хиты, и при обновлении страницы увидел наконец долгожданную ошибку:
Это значит, что объект $USER все - таки отсутствует. И т.к. его нет, то при попытке вызвать $USER->GetUserGroupArray() скрипт падал, а я не мог понять, в чем дело
[CODE]// применяем к цене скидку
$arDiscounts = \CCatalogDiscount::GetDiscountByProduct(
$arField['ID'],
$USER->GetUserGroupArray(), // тут то скрипт и запинался
"N",
1
);
[/CODE]До этого, по совету [URL=http://dev.1c-bitrix.ru/community/webdev/user/2106/]Евгения Жукова[/URL], я вставлял код в файл cron_events.php, и это тогда не помогло (к сожалению не как он советовал, "внутри агента (в самом начале)"):
[CODE]global $USER;
$USER = new CUSer();
[/CODE]Но, как пояснил сотрудник техподдержки:
[QUOTE]Перед запуском агента объект $USER удаляется, после выполнения агента он создается.
Это сделано специально, чтобы не было дыр в безопасности сайта.
Вы можете в вашем агенте создать объект $USER.
Примерно так:
[CODE]global $USER;
if(!is_object($USER)) $USER = new CUser;[/CODE][/QUOTE]
Но кто ж знал, что $USER удаляется, потом создается...это мне и в голову не могло прийти) В итоге заменил $USER->GetUserGroupArray() на массив array(2), и все заработало как и должно. Всем спасибо за помощь!
[COLOR=#333333][CODE]wget -O /dev/null -q 'http://site.com/bitrix/modules/main/tools/cron_events.php' [/CODE][/COLOR]+ .htaccess, как описал выше [URL=http://dev.1c-bitrix.ru/community/webdev/user/291336/]Роман Семёнов[/URL]. Но проблема не ушла.
Написал в техподдержку, там мне посоветовали проверить, будет ли скрипт отрабатывать не с крона, а на хитах пользователей. Выставил агенты на хиты, и при обновлении страницы увидел наконец долгожданную ошибку:
Это значит, что объект $USER все - таки отсутствует. И т.к. его нет, то при попытке вызвать $USER->GetUserGroupArray() скрипт падал, а я не мог понять, в чем дело
[CODE]// применяем к цене скидку
$arDiscounts = \CCatalogDiscount::GetDiscountByProduct(
$arField['ID'],
$USER->GetUserGroupArray(), // тут то скрипт и запинался
"N",
1
);
[/CODE]До этого, по совету [URL=http://dev.1c-bitrix.ru/community/webdev/user/2106/]Евгения Жукова[/URL], я вставлял код в файл cron_events.php, и это тогда не помогло (к сожалению не как он советовал, "внутри агента (в самом начале)"):
[CODE]global $USER;
$USER = new CUSer();
[/CODE]Но, как пояснил сотрудник техподдержки:
[QUOTE]Перед запуском агента объект $USER удаляется, после выполнения агента он создается.
Это сделано специально, чтобы не было дыр в безопасности сайта.
Вы можете в вашем агенте создать объект $USER.
Примерно так:
[CODE]global $USER;
if(!is_object($USER)) $USER = new CUser;[/CODE][/QUOTE]
Но кто ж знал, что $USER удаляется, потом создается...это мне и в голову не могло прийти) В итоге заменил $USER->GetUserGroupArray() на массив array(2), и все заработало как и должно. Всем спасибо за помощь!