- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/tracking/internals/trace.php
- Класс: Bitrix\Crm\Tracking\Internals\TraceTable
- Вызов: TraceTable::deleteUnusedTraces
static function deleteUnusedTraces($limit = 200)
{
$optionCode = 'tracking_trace_del_time';
$ts = (int)Option::get('crm', $optionCode, 0);
if ($ts && (time() - $ts) < 36000)
{
return;
}
$channelCodes = [];
foreach (Channel\Factory::getCodes() as $code)
{
if (Channel\Factory::create($code)->isSupportTraceDetecting())
{
$channelCodes[] = $code;
}
}
$rows = static::getList([
'select' => ['ID'],
'filter' => [
' (new DateTime())->add('-1 day'),
'=ENTITY.ID' => null,
'=CHANNEL.CODE' => $channelCodes,
],
'limit' => $limit ?: 50,
])->fetchAll();
foreach ($rows as $row)
{
static::delete($row['ID']);
}
if ($limit && $limit > count($rows))
{
Option::set('crm', $optionCode, time());
}
}