15.04.2024
02:24
15.04.2024 02:24:23
добавить дело
$params = [
'TYPE_ID' => CCrmActivityType::Call,
'BINDINGS' => [
['OWNER_ID' => 11, 'OWNER_TYPE_ID' => CCrmOwnerType::Deal]
],
'SUBJECT' => 'Outgoing call',
'COMPLETED' => 'Y',
'DESCRIPTION' => 'Some description',
'RESPONSIBLE_ID' => 1,
'DIRECTION' => CCrmActivityDirection::Outgoing
];
$response = CCrmActivity::Add($params, false, false); |
$entity_type = 'LEAD';
$entity_id = '13308';
$now = ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'FULL', 's1');
$arBindings[] = array(
'OWNER_TYPE_ID' => CCrmOwnerType::ResolveID($entity_type),
'OWNER_ID' => $entity_id
);
$arFields = array(
'OWNER_ID' => $entity_id,
'OWNER_TYPE_ID' => CCrmOwnerType::ResolveID($entity_type),
'TYPE_ID' => CCrmActivityType::Email,
'SUBJECT' => 'ФАЙЛ',
'START_TIME' => $now,
'END_TIME' => $now,
'COMPLETED' => 'Y',
'RESPONSIBLE_ID' => $USER->GetID(),
'PRIORITY' => CCrmActivityPriority::Medium,
'DESCRIPTION' => 'Тестирование записи в лид',
'DESCRIPTION_TYPE' => CCrmContentType::BBCode,
'DIRECTION' => CCrmActivityDirection::Outgoing,
'LOCATION' => '',
'NOTIFY_TYPE' => CCrmActivityNotifyType::None,
'BINDINGS' => array_values($arBindings)
);
$test = CCrmActivity::Add($arFields, false, false, array('REGISTER_SONET_EVENT' => true)); |
$arPOST = [
'ENTITY_TYPE_ID' => 2, //Тип - сделка
'ENTITY_ID' => 246, //ID сделки
'MESSAGE' => 'Текст мессаджа',
'TITLE' => 'Заголовок, но он вроде не выводится',
'USER_ID' =>1, //От какого Юзера коммент
];
$message_id = \CCrmLiveFeed::CreateLogMessage($arPOST); |
добавить в историю
$CCrmEvent = new CCrmEvent();
$CCrmEvent->Add(
array(
'ENTITY_TYPE'=> 'DEAL',
'ENTITY_ID' => '457',
'EVENT_ID' => 'INFO',
'EVENT_TEXT_1' => 'Tratatat test',
'DATE_CREATE' => $eventDate,
'FILES' => array(
CFile::MakeFileArray('/bitrix/templates/bitrix24/images/template_sprite_21.png')
)
) ); |
ENTITY_TYPE - к какой сущности относится, может принимать значения: LEAD, CONTACT, COMPANY, DEAL, QUOTE (лид, контакт, компания, сделка, предложение).
ENTITY_ID - ID соответствующей сущности.
EVENT_ID - тип записи, которую вы хотите сделать, может принимать значения: INFO, PHONE, MESSAGE (информация, телефонный звонок, отправленный e-mail), хочу заметить, что актуальный тип только "информация", для звонков и e-mail используются отдельные сущности, которые мы тут рассматривать не будем.
EVENT_TEXT_1 - текст.
FILES - список файлов, если требуется.
DATE_CREATE - дата записи, по умолчанию текущее время, но можно
$eventDate = ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'FULL', SITE_ID); |
список дел получить
use Bitrix\Main\Loader;
Loader::includeModule('crm');
$obActivities = CCrmActivity::GetList(
[],
[
'OWNER_TYPE_ID' => CCrmOwnerType::ResolveID('CONTACT'),
'COMPLETED' => 'N',
'CHECK_PERMISSIONS' => 'N'
],
false,
false,
[
'ID'
]
);
while ($arActivity = $obActivities->Fetch()) {
//
} |
обновить
CCrmActivity::Update($activityId,
[
'COMPLETED' => 'Y'
],
false
); |
удаление
if ( !CCrmActivity::Delete($activityId)){
var_dump(\CCrmActivity::GetErrorMessages());
}
else{
//удалили
}
|
\CCrmActivity::Delete($ID, $checkPerms = true, $regEvent = true, $options = array()): bool |
где
- $checkPerms - проверить права юзера true/false
- $regEvent - нужна ли регистрация в истории сущности true/false
- $options - параметры array
Список значений options:
- MOVED_TO_RECYCLE_BIN (bool) - флаг того что происходит не удаление, а перемещение в корзину.
- ACTUAL_ITEM - массив описания удаляемого дела (если передан, то убирает лишний запрос в базу данных). Если передан и не является массивом или найти объект в базе не удалось - удаление будет прекращено.
- ACTUAL_BINDINGS - массив из наборов текущих связей дела с crm-сущностями. Если не передан, будет запрошен из базы данных.
- SKIP_BINDINGS (bool) - флаг, отключающий удаление связей удаляемого дела с crm-сущностями.
- SKIP_COMMUNICATIONS (bool) - флаг, отключающий удаление привязанных к делу коммуникационных каналов.
- SKIP_FILES (bool) - флаг, отключающий удаление привязанных к делу файлов. Если MOVED_TO_RECYCLE_BIN = true, автоматически true.
- SKIP_USER_ACTIVITY_SYNC (bool) - флаг отключающий синхронизацию активности (не будет перерасчета ближайших дел)
- SKIP_STATISTICS (bool) - флаг, отключающий перерасчет статистики сделки/лида
- SKIP_ASSOCIATED_ENTITY (bool) - флаг, отключающий удаление связанной сущности (связанную сущность определяет провайдер дела)
- SKIP_CALENDAR_EVENT (bool) - флаг, отключающий удаление события календаря связанного с этим делом (если такое существует)
обработчики событий
OnBeforeActivityDelete до удаления
\Bitrix\Main\EventManager::getInstance()->addEventHandlerCompatible('crm', 'OnBeforeActivityDelete',function( $activityId ){
//ченить проверяем
return false; //можно отменить удаление
}); |
OnActivityDelete после удаления
\Bitrix\Main\EventManager::getInstance()->addEventHandlerCompatible('crm', 'OnBeforeActivityDelete',function( $activityId ){
//ченить делаем, например. грустим, или уведомляем старшего менеджера
}); |
use \CCrmOwnerType,
\Main\Type\DateTime,
\Bitrix\Crm\ItemIdentifier,
\Bitrix\Crm\Activity\Entity\ToDo,
\Bitrix\Crm\Activity\AutocompleteRule; |
$entityItemIdentifier = new ItemIdentifier(CCrmOwnerType::Deal, $dealId);
$todo = new ToDo($entityItemIdentifier);
$todo->setDescription("Сделать куйню срочно");
$todo->setResponsibleId($responsibleId);
$todo->setCheckPermissions(false); //не проверять права юзера
$todo->setDeadline( DateTime::createFromTimestamp(strtotime()-86400) );//вчера
$todo->setAutocompleteRule(AutocompleteRule::AUTOMATION_ON_STATUS_CHANGED); //завершить при переходе на др стадию (статус) AutocompleteRule::NONE - не привязываемся в смене стадий, статусов
$todo->save(); |
получить
$todo = ToDo::load(CCrmOwnerType::Deal, $activityId); |
15.04.202402:2415.04.2024 02:24:23
Если блог был полезным, можете угостить меня "чашечкой кофе" :)
Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!