• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/rest/externalchannel.php
  • Класс: Bitrix\Crm\Rest\CCrmExternalChannelImportAgent
  • Вызов: CCrmExternalChannelImportAgent::fillFields
protected function fillFields(&$fields, $entityFields=array())
{
	/** @var \CCrmCompanyRestProxy|\CCrmContactRestProxy $entity */
	$entity = $this->getEntity();

	/** @var CCrmExternalChannelImport $import */
	$import = $this->import;

	/** @var CCrmExternalChannelConnector $connector */
	$connector = $import->getConnector();

	$fields['ORIGINATOR_ID'] = $connector->getOriginatorId();

	if($entity->getOwnerTypeID() == \CCrmOwnerType::Contact)
	{
		if($this->getUpdateEntityMode() == self::UPDATE_MODE_MERGE)
		{
			$entityObject = new \CCrmContact(false);

			if(intval($entityFields['ID'])>0)
			{
				$merger = new Crm\Merger\ContactMerger(0, false);

				$entityFieldsDb = $entityObject->getListEx(
					array(),
					array(
						'=ID' => $entityFields['ID'],
						'CHECK_PERMISSIONS' => 'N'
					),
					false,
					false,
					array('*', 'UF_*')
				);
				$originFields = $entityFieldsDb->fetch();
				if ($originFields)
				{
					$merger->mergeFields($originFields, $fields);
				}
			}

			unset($fields['ORIGINATOR_ID']);
			unset($fields['ORIGIN_ID']);
			unset($fields['ORIGIN_VERSION']);
		}
	}
}