• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/entity/note.php
  • Класс: Bitrix\Crm\Timeline\Entity\NoteTable
  • Вызов: NoteTable::loadForItems
static function loadForItems(array $items, int $itemType): array
{
	if (empty($items))
	{
		return $items;
	}

	$itemIds = array_column($items, 'ID');

	$notes = NoteTable::query()
		->addSelect('*')
		->whereIn('ITEM_ID', $itemIds)
		->where('ITEM_TYPE', $itemType)
		->fetchAll()
	;

	$noteItemIds = array_column($notes, 'ITEM_ID');
	$notesMap = array_combine($noteItemIds, $notes);
	$userIDs = array_column($notes, 'UPDATED_BY_ID');
	$users = Container::getInstance()->getUserBroker()->getBunchByIds($userIDs);

	foreach ($items as $id => $item)
	{
		$itemId = $item['ID'];
		$note = $notesMap[$itemId] ?? null;

		if ($note)
		{
			$items[$id]['NOTE'] = [
				'ID' => (int)$note['ID'],
				'ITEM_TYPE' => (int)$note['ITEM_TYPE'],
				'ITEM_ID' => (int)$note['ITEM_ID'],
				'TEXT' => $note['TEXT'],
				'UPDATED_BY' => $users[$note['UPDATED_BY_ID']],
			];
		}
	}

	return $items;
}