• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/integration/ui/entityselector/chatuserprovider.php
  • Класс: BitrixImIntegrationUIEntitySelectorChatUserProvider
  • Вызов: ChatUserProvider::getDerivedTableQuery
static function getDerivedTableQuery(array $chatTypeList, string $searchQuery): Query
{
	$query = RelationTable::query();

	$query->addSelect('CHAT_ID');

	$query->registerRuntimeField(
		'USER',
		(new Reference(
			'USER',
			UserTable::class,
			Join::on('this.USER_ID', 'ref.ID'),
		))->configureJoinType(Join::TYPE_INNER)
	);
	$query->registerRuntimeField(
		'USER_INDEX',
		(new Reference(
			'USER_INDEX',
			UserIndexTable::class,
			Join::on('this.USER_ID', 'ref.USER_ID'),
		))->configureJoinType(Join::TYPE_INNER)
	);

	$query->whereIn('MESSAGE_TYPE', $chatTypeList);
	$query->where('USER.IS_REAL_USER', 'Y');

	$matchFilter = Query::filter();
	static::addFilterBySearchQuery($matchFilter, $searchQuery);
	$query->where($matchFilter);

	$query->addGroup('CHAT_ID');

	return $query;
}