• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/services/automatic_profile.php
  • Класс: BitrixSaleDeliveryServicesAutomaticProfile
  • Вызов: AutomaticProfile::actualizeProfilesConfig
protected function actualizeProfilesConfig(array $oldConfig)
{
	$profiles = Manager::getByParentId($this->parentId);
	$actualizedCodes = array();

	foreach($profiles as $id => $fields)
	{
		if($id == $this->id)
			continue;

		if($fields['CODE'] <> '')
		{
			if($fields['CODE'] == $this->code)
				continue;

			if(in_array($fields['CODE'], $actualizedCodes))
				continue;
		}

		/** @var BitrixSaleDeliveryServicesAutomaticProfile $service */
		$service = Manager::getPooledObject($fields);

		if($service)
		{
			$config = $service->getConfig();
			$serviceProfileId = $config['MAIN']['ITEMS']['PROFILE_ID']['VALUE'];

			if($serviceProfileId == $this->profileId)
				continue;

			$profileOldConfig = $service->getOldConfig();

			foreach($profileOldConfig['CONFIG'] as $k => $v)
				if(isset($v['GROUP']) && $v['GROUP'] == $serviceProfileId)
					$oldConfig['CONFIG'][$k] = $v;

			$actualizedCodes[] = $fields['CODE'];
		}
	}

	return $oldConfig;
}