...Человеческий поиск в разработке...
- Модуль: ui
- Путь к файлу: ~/bitrix/modules/ui/lib/entityselector/dialog.php
- Класс: BitrixUIEntitySelectorDialog
- Вызов: Dialog::loadRecentItems
private function loadRecentItems() { foreach ($this->getEntities() as $entity) { $unloadedIds = []; $unavailableIds = []; $recentItems = $this->getRecentItems()->getEntityItems($entity->getId()); foreach ($recentItems as $recentItem) { if (!$recentItem->isAvailable()) { $unavailableIds[] = $recentItem->getId(); } else if (!$recentItem->isLoaded()) { $unloadedIds[] = $recentItem->getId(); } } if (!empty($unloadedIds)) { $availableItems = []; $items = $entity->getProvider()->getItems($unloadedIds); foreach ($items as $item) { if ($item instanceof Item) { $availableItems[$item->getId()] = $item; } } foreach ($unloadedIds as $unloadedId) { $item = $availableItems[$unloadedId] ?? null; if ($item && $item->isAvailableInRecentTab()) { $this->addRecentItem($item); } else { $unavailableIds[] = $unloadedId; } } } if ($this->getContext() !== null && $this->shouldClearUnavailableItems() && !empty($unavailableIds)) { EntityUsageTable::deleteByFilter([ '=USER_ID' => $this->getCurrentUserId(), '=CONTEXT' => $this->getContext(), '=ENTITY_ID' => $entity->getId(), '@ITEM_ID' => $unavailableIds ]); } } }