- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/embed/user.php
- Класс: Bitrix\Crm\WebForm\Embed\User
- Вызов: User::getData
static function getData(Identificator\ComplexCollection $entities): array
{
$data = [
'fields' => [],
'entities' => [],
];
$fieldsByType = [];
$formId = (int)$entities->getIdByTypeId(-1);
if ($formId > 0)
{
$form = new Crm\WebForm\Form($formId);
if ($form->getId() && $form->isActive())
{
foreach ($form->getFieldsMap() as $field)
{
$typeId = \CCrmOwnerType::resolveID($field['entity_name']);
if (!isset($fieldsByType[$typeId]))
{
$fieldsByType[$typeId] = [
'fields' => [],
'reqs' => [],
'map' => [],
];
}
$name = $field['entity_field_name'];
if ($name === 'RQ')
{
continue;
}
if (mb_substr($name, 0, 3) === 'RQ_')
{
$fieldsByType[$typeId]['reqs'][] = $name;
continue;
}
else
{
$fieldsByType[$typeId]['fields'][] = $name;
}
$fieldsByType[$typeId]['map'][$name] = $field['name'];
}
}
}
self::$fieldsByType = $fieldsByType;
foreach ($entities as $entity)
{
/** @var Identificator\Complex $entity */
if ($entity->getTypeId() <= 0)
{
continue;
}
$data['entities'][] = [
'typeId' => $entity->getTypeId(),
'id' => $entity->getId(),
];
$data['fields'] = $data['fields'] + self::getEntityFields(
$entity,
isset($form)
? ($form->get()['FORM_SETTINGS']['REQUISITE_PRESET_ID'] ?? null)
: null
);
}
self::$fieldsByType = [];
return $data;
}