...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/embed/user.php
- Класс: Bitrix\Crm\WebForm\Embed\User
- Вызов: User::getEntityFields
static function getEntityFields(Identificator\Complex $entity, ?int $presetId): array { $data = [ /* 'name' => '', 'last-name' => '', 'email' => '', 'phone' => '', 'second-name' => '', 'company-name' => '', */ ]; switch ($entity->getTypeId()) { case \CCrmOwnerType::Deal: return self::getClientDataByFields( Crm\DealTable::getRow([ 'select' => ['CONTACT_ID', 'COMPANY_ID'], 'filter' => ['=ID' => $entity->getId()] ]), $presetId ); case \CCrmOwnerType::Quote: return self::getClientDataByFields( Crm\QuoteTable::getRow([ 'select' => ['CONTACT_ID', 'COMPANY_ID'], 'filter' => ['=ID' => $entity->getId()] ]), $presetId ); case \CCrmOwnerType::Company: $map = self::richMap( $entity->getTypeId(), [ 'TITLE' => 'company-name' ] ); return self::getDataByFieldsMap(self::loadEntityData($entity), $map); case \CCrmOwnerType::Lead: $map = self::richMap( $entity->getTypeId(), [ 'NAME' => 'name', 'LAST_NAME' => 'last-name', 'SECOND_NAME' => 'second-name', 'EMAIL_WORK' => 'email', 'EMAIL_MAILING' => 'email', 'EMAIL_HOME' => 'email', 'PHONE_WORK' => 'phone', 'PHONE_MAILING' => 'phone', 'PHONE_MOBILE' => 'phone', 'COMPANY_TITLE' => 'company-name', 'COMPANY_ID' => '', 'CONTACT_ID' => '', ] ); $fields = Crm\LeadTable::getRow([ 'select' => array_keys($map), 'filter' => ['=ID' => $entity->getId()] ]); return self::getClientDataByFields($fields, $presetId) + self::getDataByFieldsMap($fields, $map); case \CCrmOwnerType::Contact: $map = self::richMap( $entity->getTypeId(), [ 'NAME' => 'name', 'LAST_NAME' => 'last-name', 'SECOND_NAME' => 'second-name', 'EMAIL_WORK' => 'email', 'EMAIL_MAILING' => 'email', 'EMAIL_HOME' => 'email', 'PHONE_WORK' => 'phone', 'PHONE_MAILING' => 'phone', 'PHONE_MOBILE' => 'phone', 'COMPANY_ID' => '', ] ); $fields = self::loadEntityData($entity); return self::getDataByFieldsMap($fields, $map) + self::getClientDataByFields($fields, $presetId); default: if (!\CCrmOwnerType::isUseDynamicTypeBasedApproach($entity->getTypeId())) { break; } $dynamicFactory = Crm\Service\Container::getInstance()->getFactory($entity->getTypeId()); $dynamicItem = $dynamicFactory->getItem($entity->getId()); if (!$dynamicItem) { break; } $data += self::getDataByFieldsMap( $dynamicItem->getData(), self::richMap($entity->getTypeId(), []) ); if (!$dynamicItem->getContactId() && !$dynamicItem->getCompanyId()) { break; } $data += self::getClientDataByFields([ 'CONTACT_ID' => $dynamicItem->getContactId(), 'COMPANY_ID' => $dynamicItem->getCompanyId(), ], $presetId); } return $data; }