• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/model/entity.php
  • Класс: BitrixCatalogModelEntity
  • Вызов: Entity::delete
static function delete($id): ORMDataDeleteResult
{
	$result = new ORMDataDeleteResult();

	$entity = static::getEntity();

	if (Event::existEventHandlers($entity, ORMDataDataManager::EVENT_ON_BEFORE_DELETE))
	{
		$event = new Event(
			$entity,
			ORMDataDataManager::EVENT_ON_BEFORE_DELETE,
			['id' => $id]
		);
		$event->send();

		if ($event->getErrors($result))
			return $result;
	}

	if (Event::existEventHandlers($entity, ORMDataDataManager::EVENT_ON_DELETE))
	{
		$event = new Event(
			$entity,
			ORMDataDataManager::EVENT_ON_DELETE,
			['id' => $id]
		);
		$event->send();
		unset($event);
	}

	if ($entity->fieldsCount > 0 && !isset($entity->cache[$id]))
		$entity->loadEntityCacheItem($id);

	$result = $entity->getTablet()->delete($id);
	$success = $result->isSuccess();
	if ($success)
		$entity->expireEntityCacheItem((int)$id);

	if (Event::existEventHandlers($entity, ORMDataDataManager::EVENT_ON_AFTER_DELETE))
	{
		$event = new Event(
			$entity,
			ORMDataDataManager::EVENT_ON_AFTER_DELETE,
			['id' => $id, 'success' => $success]
		);
		$event->send();
		unset($event);
	}

	if ($success)
		static::runDeleteExternalActions($id);

	unset($success, $entity);

	return $result;
}