• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/fieldsynchronizer.php
  • Класс: Bitrix\Crm\WebForm\FieldSynchronizer
  • Вызов: FieldSynchronizer::createSyncEntityField
private function createSyncEntityField(
	array& $synchronizedFieldMap,
	string $srcEntityTypeName
) : void
{
	if (!$srcEntityTypeId = \CCrmOwnerType::ResolveID($srcEntityTypeName))
	{
		return;
	}

	foreach ($synchronizedFieldMap as $entity => &$fields)
	{
		$unresolvedUserFields = [];

		if (!$dstEntityTypeId = \CCrmOwnerType::ResolveID($entity))
		{
			continue;
		}

		foreach ($fields as $from => $to)
		{
			if ($to)
			{
				continue;
			}

			if (!$this->isUserField($from))
			{
				$synchronizedFieldMap[$entity][$from] = $this->createUserFieldBySystemField(
					$entity,
					$srcEntityTypeName,
					$from
				);
			}
			else
			{
				$unresolvedUserFields[] = $from;
			}
		}

		$newUserFields = $this->syncUserFields($srcEntityTypeId,$dstEntityTypeId,$unresolvedUserFields);
		foreach ($newUserFields as $from => $to)
		{
			$synchronizedFieldMap[$entity][$from] = $to;
		}
	}

}