• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/customfieldscontroller.php
  • Класс: BitrixSaleInternalsCustomFieldsController
  • Вызов: CustomFieldsController::buildFilter
private function buildFilter(EntityCollection $collection) : array
{
	$entityIdList = [];
	$entityTypeList = [];
	$entityRegistryTypeList = [];

	/** @var CollectableEntity $entity */
	foreach ($collection as $entity)
	{
		if ((int)$entity->getId() === 0)
		{
			continue;
		}

		if (!in_array($entity->getId(), $entityIdList))
		{
			$entityIdList[] = $entity->getId();
		}

		if (!in_array($entity::getRegistryEntity(), $entityTypeList))
		{
			$entityTypeList[] = $entity::getRegistryEntity();
		}

		if (!in_array($entity::getRegistryType(), $entityRegistryTypeList))
		{
			$entityRegistryTypeList[] = $entity::getRegistryType();
		}
	}

	if (
		empty($entityIdList)
		|| empty($entityTypeList)
		|| empty($entityRegistryTypeList)
	)
	{
		return [];
	}

	$filter = $this->buildFilterForField('ENTITY_ID', $entityIdList);
	$filter += $this->buildFilterForField('ENTITY_TYPE', $entityTypeList);
	$filter += $this->buildFilterForField('ENTITY_REGISTRY_TYPE', $entityRegistryTypeList);

	return $filter;
}