• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/controller/item.php
  • Класс: Bitrix\Crm\Controller\Item
  • Вызов: Item::listAction
public function listAction(
	int $entityTypeId,
	array $select = ['*'],
	array $order = null,
	array $filter = null,
	PageNavigation $pageNavigation = null
): ?Page
{
	$factory = $this->getFactory($entityTypeId);
	if (!$factory)
	{
		return null;
	}
	$parameters = [];

	$select = array_map(static function($fieldName) {
		return Container::getInstance()->getOrmObjectConverter()->convertFieldNameFromCamelCaseToUpperCase($fieldName);
	}, $select);
	$select = $this->prepareSelect($factory, $select);
	$parameters['select'] = $select;
	$parameters['filter'] = $this->convertKeysToUpper((array)$filter);
	$parameters['filter'] = $this->prepareFilter($factory, $parameters['filter']);
	if(is_array($order))
	{
		$parameters['order'] = $this->convertKeysToUpper($order);
	}

	if($pageNavigation)
	{
		$parameters['offset'] = $pageNavigation->getOffset();
		$parameters['limit'] = $pageNavigation->getLimit();
	}

	$items = $factory->getItemsFilteredByPermissions($parameters);
	$items = array_values($this->getJsonForItems($factory, $items, $select));

	return new Page(
		'items',
		$items,
		function() use($parameters, $factory) {
			return $factory->getItemsCountFilteredByPermissions($parameters['filter']);
		}
	);
}