Добрый день, друзья)) Стоит задача по расписанию менять ответственных у сделок, и ответственных и постановщиков у задач.
С задачами проблем нет.
Но у сделок из агента ответственный не меняется. Простым скриптом работает отлично. Устанавливал модуль из маркет плэйс для запуска агентов в ручную. При запуске в ручную тоже отрабатывает как надо. Агенты работают на cron.
Прочитал все похожие темы на форуме.
Добавил в агент и
Код |
---|
global $USER;
if (!is_object($USER)) {
$USER = new CUser();
}
и 'CHECK_PERMISSIONS' => 'N' в getList
и $arOptions = array('CURRENT_USER' => 1, 'DISABLE_USER_FIELD_CHECK' => true));
|
В общем из логов видно что данные агент из getList получает. И что странно update возвращает 1 . Но по факту смены ответственного не происходит.
Ещё в логах есть такая строка
Цитата |
---|
bitrix/modules/main/classes/mysql/agent.php(163) : eval()'d code:1 |
Пока временно сделал смену ответственного через DB->Update(), но это прям костыль. Не записывается история смены ответственного в сделку, естественно и бизнес процессы не будут стартовать, возможно ещё что то.
Так выглядит смена ответственного
Код |
---|
$obCrmRes = $cDeal->GetList(array('DATE_CREATE' => 'DESC'),
array('ASSIGNED_BY_ID' => $arUsersId, 'CLOSED' => 'N', 'CHECK_PERMISSIONS' => 'N'),
array(),
false);
while ($res = $obCrmRes->Fetch())
{
foreach ($arrOne as $key => $value)
{
if ($res['ASSIGNED_BY_ID'] == $value)
{
$res['ASSIGNED_BY_ID'] = $arrTwo[$key];
$upRes = $cDeal->Update($res['ID'], $res, true, true, $arOptions = array('CURRENT_USER' => 1, 'DISABLE_USER_FIELD_CHECK' => true));
}
}
}
|
Подскажите если кто решал такую задачу