• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/Command/SaveEntityCommand.php
  • Класс: BitrixCrmMobileCommandSaveEntityCommand
  • Вызов: SaveEntityCommand::saveLeadAddress
private function saveLeadAddress($address): void
{
	if (
		!(
			is_null($address)
			|| is_string($address))
		)
	{
		return;
	}

	if (empty($address))
	{
		EntityAddress::unregister(
			CCrmOwnerType::Lead,
			$this->entity->getId(),
			EntityAddressType::Primary
		);

		return;
	}

	if (!Loader::includeModule('location'))
	{
		return;
	}

	try
	{
		$locAddr = Address::fromJson(EntityAddress::prepareJsonValue($address));
	}
	catch (ArgumentException $exception)
	{
		$locAddr = Address::fromArray([
			'fieldCollection' => [
				AddressFieldType::ADDRESS_LINE_2 => $address,
			],
			'languageId' => LANGUAGE_ID,
		]);
	}

	EntityAddress::register(
		CCrmOwnerType::Lead,
		$this->entity->getId(),
		EntityAddressType::Primary,
		[
			'LOC_ADDR' => $locAddr
		]
	);
}