/ Битрикс24: Очистка истории событий у лидов, сделок, контактов, компаний

Битрикс24: Очистка истории событий у лидов, сделок, контактов, компаний

10 сен 2024
Дмитрий М.
73

Удаление событий, связанных с определённым элементом CRM, таким как лид, сделка, контакт или компания

Для удаления событий, связанных с определённым элементом CRM используется метод CCrmEvent::DeleteByElement($entityTypeName, $entityID)

Примеры использования метода CCrmEvent::DeleteByElement

1. Удаление событий у Лида

<?php
$elementType = CCrmOwnerType::Lead;
$elementId = 123; // ID Лида

CCrmEvent::DeleteByElement($elementType, $elementId);

2. Удаление событий у Сделки

<?php
$elementType = CCrmOwnerType::Deal;
$elementId = 123; // ID Сделки

CCrmEvent::DeleteByElement($elementType, $elementId);

3. Удаление событий у Контакта

<?php
$elementType = CCrmOwnerType::Contact;
$elementId = 123; // ID Контакта

CCrmEvent::DeleteByElement($elementType, $elementId);

3. Удаление событий у Компании

<?php
$elementType = CCrmOwnerType::Company;
$elementId = 123; // ID Компании

CCrmEvent::DeleteByElement($elementType, $elementId);

Очистка истории событий сделок, контактов, лидов, компаний

Для того чтобы очистить историю событий в лидах, контактах, сделках, компаниях можно воспользоваться методом CCrmEvent::Delete($ID, $arOptions = array())

В качестве аргумента $ID используется не идентификатор события, а идентификатор записи из таблицы b_crm_event_relations. В этой таблице содержаться записи связывающие конкретное событие и сущность (лид, сделка, контакт, компания), к которой относится событие.

В качестве примера, очистим 50 000 записей ( limit = 50000 ) в таблице событий (b_crm_event) старше 01.01.2023:

PS: используйте ограничение в кол-ве записей, чтобы скрипт не падал по памяти

<?php
use Bitrix\Crm\EventRelationsTable;
use Bitrix\Crm\EventTable;

\Bitrix\Main\Loader::includeModule('crm');
$arEvents = EventTable::GetList([
    'order' => ['ID' => 'ASC'],
    'filter' => [
        '<DATE_CREATE' => '01.01.2023 00:00:00'
    ],
    'select' => [
        'ID',
        'DATE_CREATE'
    ],
    'limit' => 50000
])->fetchCollection();
$idList = $arEvents->getIdList();
if(count($idList) < 1) {
    die();
}
$relations = EventRelationsTable::getList([
    'filter' => [
        'EVENT_ID' => $idList
    ],
    'select' => [
        'ID'
    ]
])->fetchCollection();
$idRelationList = $relations->getIdList();
foreach ($idRelationList as $id) {
    (new CCrmEvent())->Delete((int)$id, ['CURRENT_USER' => 1]);
}

Статья была полезна? Поблагодарите автора.

Самые читаемые
#1С Битрикс, #Bitrix CMS, #.htaccess, #настройка редиректов
4 авг 2019
#bitrix:news, #сортировка, #фильтрация, #bitrix:catalog, #catalog.section, #news.list
16 дек 2020
#Хлебные крошки, #1С Битрикс, #Bitrix CMS, #bitrix:breadcrumbs, #component_epilog, #кэширование
1 окт 2018
#bitrix, #свойства элементов, #обработчик событий, #OnBeforeIBlockElementUpdate, #OnIBlockElementSetPropertyValues
21 июл 2020
#Bitrix CMS, #breadcrumb, #bitrix:breadcrumbs, #хлебные крошки, #настройка
13 фев 2019
#ресайз изображений, #1С Битрикс, #Bitrix CMS
3 мар 2019
#bitrix, #robots.txt, #sitemap.xml, #поддомены, #мультисайтовость
16 окт 2018
#bitrix, #bitrix:catalog.section, #скидки, #товары со скидкой, #страница скидок, #страница со скидками
4 окт 2018
#bitrix, #пользовательские свойства, #тип свойств, #привязка к элементам
27 ноя 2019