• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/bizproc/document/valuecollection/base.php
  • Класс: Bitrix\Crm\Integration\BizProc\Document\ValueCollection\Base
  • Вызов: Base::getDocumentFieldMulti
private function getDocumentFieldMulti(): array
{
	$entityType = \CCrmOwnerType::ResolveName($this->typeId);
	$entityId = $this->id;

	$fields = [];
	$entities = [[$entityType, $entityId]];

	if (
		$entityType === \CCrmOwnerType::LeadName
		&& \CCrmLead::ResolveCustomerType($this->document) === \Bitrix\Crm\CustomerType::RETURNING
	)
	{
		$entities = [];
		if ($this->document['CONTACT_ID'] > 0)
		{
			$entities[] = [\CCrmOwnerType::ContactName, $this->document['CONTACT_ID']];
		}
		if ($this->document['COMPANY_ID'] > 0)
		{
			$entities[] = [\CCrmOwnerType::CompanyName, $this->document['COMPANY_ID']];
		}
		if (!$entities)
		{
			$entities[] = [$entityType, $entityId];
		}
	}

	foreach ($entities as [$type, $id])
	{
		$res = \CCrmFieldMulti::GetList(
			['ID' => 'asc'],
			['=ENTITY_ID' => $type, 'ELEMENT_ID' => $id]
		);
		while ($ar = $res->Fetch())
		{
			$fields[] = $ar;
		}
	}

	return $fields;
}