• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/usertype.php
  • Класс: CAllUserTypeEntity
  • Вызов: CAllUserTypeEntity::DropEntity
function DropEntity($entity_id)
{
	global $DB, $CACHE_MANAGER, $USER_FIELD_MANAGER;
	$entity_id = preg_replace("/[^0-9A-Z_]+/", "", $entity_id);

	$rs = true;
	$rsFields = $this->GetList(array(), array("ENTITY_ID" => $entity_id));
	//We need special handling of file and enum type properties
	while($arField = $rsFields->Fetch())
	{
		$arType = $USER_FIELD_MANAGER->GetUserType($arField["USER_TYPE_ID"]);
		if($arType && ($arType["BASE_TYPE"] == "file" || $arType["BASE_TYPE"] == "enum"))
		{
			$this->Delete($arField["ID"]);
		}
	}

	$bDropTable = false;
	$rsFields = $this->GetList(array(), array("ENTITY_ID" => $entity_id));
	while($arField = $rsFields->Fetch())
	{
		$bDropTable = true;
		$DB->Query("DELETE FROM b_user_field_lang WHERE USER_FIELD_ID = " . $arField["ID"], false, "FILE: " . __FILE__ . "
LINE: " . __LINE__); $rs = $DB->Query("DELETE FROM b_user_field WHERE ID = " . $arField["ID"], false, "FILE: " . __FILE__ . "
LINE: " . __LINE__); } if($bDropTable) { $DB->Query("DROP SEQUENCE SQ_B_UTM_" . $entity_id, true); $DB->Query("DROP TABLE b_uts_".mb_strtolower($entity_id), true, "FILE: " . __FILE__ . "
LINE: " . __LINE__); $rs = $DB->Query("DROP TABLE b_utm_".mb_strtolower($entity_id), true, "FILE: " . __FILE__ . "
LINE: " . __LINE__); } if(CACHED_b_user_field !== false) $CACHE_MANAGER->CleanDir("b_user_field"); if(is_object($USER_FIELD_MANAGER)) $USER_FIELD_MANAGER->CleanCache(); return $rs; }