• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/services/manager.php
  • Класс: BitrixSaleDeliveryServicesManager
  • Вызов: Manager::getRestrictedList
static function getRestrictedList(Shipment $shipment = null, $restrictionMode, array $skipChecks = array())
{
	$result = array();

	if(empty($skipChecks))
	{
		$skipChecks = array(
			self::SKIP_CHILDREN_PARENT_CHECK,
			self::SKIP_PROFILE_PARENT_CHECK
		);
	}

	//Have restrictions and this restrictions successfully checked
	$restrictedSrvIds = RestrictionsManager::getRestrictedIds($shipment, $restrictionMode);
	//Don't have any restrictions + successfully checked
	$services = self::getActiveList(false, array_keys($restrictedSrvIds));

	foreach($services as $srvParams)
	{
		$srvParams["RESTRICTED"] = false;

		if(!in_array(self::SKIP_PROFILE_PARENT_CHECK, $skipChecks))
			if($srvParams["CLASS_NAME"]::canHasProfiles())
				continue;

		if(!in_array(self::SKIP_CHILDREN_PARENT_CHECK, $skipChecks))
			if(is_callable($srvParams["CLASS_NAME"]."::canHasChildren") && $srvParams["CLASS_NAME"]::canHasChildren())
				continue;

		if(isset($restrictedSrvIds[$srvParams["ID"]]) &&  $restrictedSrvIds[$srvParams["ID"]] == RestrictionsManager::SEVERITY_SOFT)
			$srvParams["RESTRICTED"] = true;

		$result[$srvParams["ID"]] = $srvParams;
	}

	return $result;
}