• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/task/searchindex.php
  • Класс: BitrixTasksInternalsTaskSearchIndexTable
  • Вызов: SearchIndexTable::set
static function set(int $taskId, int $messageId, string $searchIndex): bool
{
	$messageId = ($messageId ?: 0);
	$searchIndex = trim($searchIndex);

	if ($taskId <= 0 || empty($searchIndex))
	{
		return false;
	}

	$connection = Application::getConnection();
	$sqlHelper = $connection->getSqlHelper();
	$searchIndex = $sqlHelper->forSql($searchIndex);

	$row = static::getList([
		'select' => ['ID', 'SEARCH_INDEX'],
		'filter' => [
			'TASK_ID' => $taskId,
			'MESSAGE_ID' => $messageId,
		],
	])->fetch();

	if (!$row)
	{
		static::add([
			'TASK_ID' => $taskId,
			'MESSAGE_ID' => $messageId,
			'SEARCH_INDEX' => $searchIndex,
		]);

		return true;
	}

	if ($searchIndex === $row['SEARCH_INDEX'])
	{
		return true;
	}

	static::update(
		['ID' => $row['ID']],
		['SEARCH_INDEX' => $searchIndex],
	);

	return true;
}