• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/loglistcommon/processor.php
  • Класс: BitrixSocialnetworkComponentLogListCommonProcessor
  • Вызов: Processor::getResultTaskCommentsIdList
public function getResultTaskCommentsIdList(&$result): void
{
	$result['RESULT_TASKS_DATA'] = [];
	$result['RESULT_FIELD_TASKS_ID'] = [];
	$result['RESULT_COMMENTS_DATA'] = [];

	$tasks2LogList = $this->getComponent()->getTask2LogListValue();
	if (
		empty($tasks2LogList)
		|| !Loader::includeModule('tasks')
		|| !class_exists("Bitrix\Tasks\Internals\Task\Result\ResultManager")
	)
	{
		return;
	}

	foreach ($tasks2LogList as $taskId => $logId)
	{
		$result['RESULT_TASKS_DATA'][(int)$logId] = (int)$taskId;
	}

	$taskIdList = [];

	$res = BitrixTasksInternalsTaskTable::getList([
		'filter' => [
			'@ID' => array_keys($tasks2LogList),
			'!=STATUS' => CTasks::STATE_COMPLETED,
		],
		'select' => [ 'ID' ],
	]);
	while ($taskFields = $res->fetch())
	{
		$taskIdList[] = (int)$taskFields['ID'];
	}

	if (empty($taskIdList))
	{
		return;
	}

	$result['RESULT_FIELD_TASKS_ID'] = $taskIdList;

	$resultCommentIdList = BitrixTasksInternalsTaskResultResultManager::findResultComments($taskIdList);
	foreach ($tasks2LogList as $taskId => $logId)
	{
		if (isset($resultCommentIdList[$taskId]))
		{
			$res = [];
			foreach ($resultCommentIdList[$taskId] as $value)
			{
				$res[$value] = [
					'taskId' => $taskId,
					'logId' => $logId,
					'commentId' => $value,
				];
			}
			$result['RESULT_COMMENTS_DATA'][$taskId] = $res;
		}
	}
}