- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/webform/fieldsynchronizer.php
- Класс: Bitrix\Crm\WebForm\FieldSynchronizer
- Вызов: FieldSynchronizer::findSyncField
private function findSyncField(
string $srcEntityTypeName,
string $srcFieldName,
string $dstEntityTypeName,
array $dstEntityFieldNames
) : ?string
{
if ($dstEntityTypeName === $srcEntityTypeName)
{
return $srcFieldName;
}
if ($this->isUserField($srcFieldName))
{
if ($dstFieldName = $this->getSystemFieldByUserField($dstEntityTypeName, $srcEntityTypeName, $srcFieldName))
{
return $dstFieldName;
}
if ($dstFieldName = $this->getUserFieldSyncMap($srcEntityTypeName,$dstEntityTypeName)[$srcFieldName])
{
return $dstFieldName;
}
return null;
}
if (in_array($srcFieldName, $dstEntityFieldNames, true))
{
return $srcFieldName;
}
if ($aliases = $this::TYPE_ALIASES[$srcFieldName])
{
foreach ($aliases as $alias)
{
if (in_array($alias,$dstEntityFieldNames,true))
{
return $alias;
}
}
}
$hardcodeType = @$this::HARDCODED_TYPE_ALIASES[$srcEntityTypeName][$dstEntityTypeName][$srcFieldName];
if ($hardcodeType && in_array($hardcodeType,$dstEntityFieldNames,true))
{
return $hardcodeType;
}
if ($dstFieldName = $this->getUserFieldBySystemField($dstEntityTypeName, $srcEntityTypeName, $srcFieldName))
{
return $dstFieldName;
}
return null;
}