- Модуль: 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;
}