- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/Service/Factory.php
- Класс: Bitrix\Crm\Service\Factory
- Вызов: Factory::getItems
public function getItems(array $parameters = []): array
{
$fmIndex = array_search(Item::FIELD_NAME_FM, $parameters['select'] ?? [], true);
if ($fmIndex !== false)
{
unset($parameters['select'][$fmIndex]);
}
$isFmInSelect = $fmIndex !== false || in_array('*', $parameters['select'] ?? [], true);
$parameters = $this->prepareGetListParameters($parameters);
$itemIds =
$this->getDataClass()::getList(['select' => [Item::FIELD_NAME_ID]] + $parameters)
->fetchCollection()
->getIdList()
;
if (empty($itemIds))
{
return [];
}
$items = [];
$list = $this->getDataClass()::getList(
[
'filter' => ['@' . Item::FIELD_NAME_ID => $itemIds],
'limit' => null,
] + $parameters
);
while($item = $list->fetchObject())
{
$items[] = $this->getItemByEntityObject($item);
}
if ($isFmInSelect && $this->isMultiFieldsEnabled())
{
Container::getInstance()->getMultifieldStorage()->warmupCache($this->getEntityTypeId(), $itemIds);
}
return $items;
}