• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/loglist/processor.php
  • Класс: BitrixSocialnetworkComponentLogListProcessor
  • Вызов: Processor::processCrmActivities
public function processCrmActivities($result): void
{
	$activity2LogList = $this->getComponent()->getActivity2LogListValue();

	if (
		!empty($activity2LogList)
		&& Loader::includeModule('crm')
		&& Loader::includeModule('tasks')
	)
	{
		$res = CCrmActivity::getList(
			[],
			[
				'@ID' => array_keys($activity2LogList),
				'CHECK_PERMISSIONS' => 'N'
			],
			false,
			false,
			['ID', 'ASSOCIATED_ENTITY_ID', 'TYPE_ID', 'PROVIDER_ID']
		);
		while (
			($activityFields = $res->fetch())
			&& ((int)$activityFields['ASSOCIATED_ENTITY_ID'] > 0)
		)
		{
			if (
				(int)$activityFields['TYPE_ID'] === CCrmActivityType::Task
				|| (
					(int)$activityFields['TYPE_ID'] === CCrmActivityType::Provider
					&& $activityFields['PROVIDER_ID'] === Task::getId()
				)
			)
			{
				try
				{
					$taskItem = new CTaskItem((int)$activityFields['ASSOCIATED_ENTITY_ID'], $result['currentUserId']);
					if (!$taskItem->checkCanRead())
					{
						$activity2LogList = $this->getComponent()->getActivity2LogListValue();
						unset($activity2LogList[$activityFields['ID']]);
						$this->getComponent()->setActivity2LogListValue($activity2LogList);
						unset($activity2LogList);
					}
					else
					{
						$task2LogList = $this->getComponent()->getTask2LogListValue();
						$task2LogList[(int)$activityFields['ASSOCIATED_ENTITY_ID']] = (int)$activity2LogList[$activityFields['ID']];
						$this->getComponent()->setTask2LogListValue($task2LogList);
						unset($task2LogList);
					}
				}
				catch (CTaskAssertException $e)
				{
				}
			}
		}
	}
}