• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/ui/entityselector/dynamicmultipleprovider.php
  • Класс: Bitrix\Crm\Integration\UI\EntitySelector\DynamicMultipleProvider
  • Вызов: DynamicMultipleProvider::doSearch
public function doSearch(SearchQuery $searchQuery, Dialog $dialog): void
{
	$countFound = 0;
	$maxLimit = 0;

	foreach ($this->getDynamicEntityIds() as $entityTypeId)
	{
		$searchProvider = Search\Result\Factory::createProvider($entityTypeId);
		$searchProvider->setAdditionalFilter($this->getAdditionalSearchFilter());

		$resultIds = $searchProvider->getSearchResult($searchQuery->getQuery())->getIds();

		$dialog->addItems($this->makeItemsByTypeAndId($entityTypeId, $resultIds));

		$countFound += count($resultIds);
		$maxLimit = max($maxLimit, $searchProvider->getLimit());

		if ($countFound > $searchProvider->getLimit())
		{
			break;
		}
	}

	$searchQuery->setCacheable($countFound < $maxLimit);
}