Выборка дел в таймлайне
Пример выборки дел в таймлайне компании с известным ID
$arFilter = [
'BINDINGS' => [
[
'OWNER_ID' => $ID,
'OWNER_TYPE_ID' => CCrmOwnerType::Company
],
],
];
$arDB = CCrmActivity::GetList(
$arOrder = [],
$arFilter,
$arGroupBy = false,
$arNavStartParams = false,
$arSelectFields = [],
$arOptions = []
);
$rows = [];
while($ar = $arDB->fetch()){
$rows[] = $ar;
}
print_r($rows);
Выборка связей в таймлайне
\Bitrix\Main\Loader::includeModule('crm');
$ID = 123365;
$arDB = \Bitrix\Crm\Timeline\Entity\TimelineTable::getList([
'filter' => [
'BINDINGS.ENTITY_ID' => $ID,
'BINDINGS.ENTITY_TYPE_ID' => CCrmOwnerType::Company
],
'order' => [],
'limit' => 10,
'select' => [
'BINDINGS.ENTITY_ID', 'BINDINGS.ENTITY_TYPE_ID', 'BINDINGS.IS_FIXED', 'BINDINGS.OWNER_ID',
'ID', 'COMMENT', 'TYPE_ID', 'TYPE_CATEGORY_ID', 'CREATED',
'AUTHOR_ID',
'ASSOCIATED_ENTITY_ID',
'ASSOCIATED_ENTITY_TYPE_ID',
'SETTINGS'
]
]);
$rows = [];
foreach($arDB as $ar){
$rows[] = $ar;
}
print_r($rows);
Вывод всех сообщений таймлайна
\Bitrix\Main\Loader::includeModule('crm');
use Bitrix\Crm;
use Bitrix\Crm\Timeline\TimelineType;
use Bitrix\Crm\Timeline\Entity\TimelineTable;
use Bitrix\Crm\Timeline\Entity\TimelineBindingTable;
use Bitrix\Crm\Timeline\ActivityController;
use Bitrix\Crm\Timeline\TimelineEntry;
$ID = 123365;
$filter['BINDINGS'] = [
['OWNER_TYPE_ID' => CCrmOwnerType::Company, 'OWNER_ID' => $ID]
];
$dbResult = \CCrmActivity::GetList(
['DEADLINE' => 'ASC'],
$filter,
false,
false,
[
'ID', 'OWNER_ID', 'OWNER_TYPE_ID',
'TYPE_ID', 'PROVIDER_ID', 'PROVIDER_TYPE_ID', 'ASSOCIATED_ENTITY_ID', 'DIRECTION',
'SUBJECT', 'STATUS', 'DESCRIPTION', 'DESCRIPTION_TYPE',
'DEADLINE', 'RESPONSIBLE_ID'
],
['QUERY_OPTIONS' => ['LIMIT' => 100, 'OFFSET' => 0]]
);
$items = [];
while($fields = $dbResult->Fetch())
{
$items[$fields['ID']] = ActivityController::prepareScheduleDataModel($fields);
}
print_r($items);
Хак - включение комментов
Если доступ к сделке закрыт, но нужно открыть возможность оставить комментарий и видеть таймлайн// \local\components\bitrix\crm.timeline\templates\.default\template.php
BX.CrmTimelineManager.create(
"",
{
ownerTypeId: ,
ownerId: ,
ownerInfo: ,
userId: ,
//readOnly: <?=$arResult['READ_ONLY'] ? 'true' : 'false'?>,
readOnly: 'false',
т.е. добавить кусок readOnly: 'false', вместо условия в исходном коде.
Добавить комментарий
$resId = \Bitrix\Crm\Timeline\CommentEntry::create(
[
'TEXT' => $data[2],
'SETTINGS' => [],
'AUTHOR_ID' => $assignedByID, //ID пользователя, от которого будет добавлен комментарий
'BINDINGS' => [
['ENTITY_TYPE_ID' => CCrmOwnerType::Company, 'ENTITY_ID' => $id]
]
]);
Изменить комментарий - закрепить
$resultUpdating = Bitrix\Crm\Timeline\Entity\TimelineBindingTable::update( ['OWNER_ID' => $resId, 'ENTITY_ID' => $id, 'ENTITY_TYPE_ID' => CCrmOwnerType::Company], ['IS_FIXED' => 'Y'] );Результат
$affected = $resultUpdating->getAffectedRowsCount();
Отправьте заявку сейчас
