• Модуль: rpa
  • Путь к файлу: ~/bitrix/modules/rpa/lib/model/typetable.php
  • Класс: BitrixRpaModelTypeTable
  • Вызов: TypeTable::onAfterDelete
static function onAfterDelete(Event $event): EventResult
{
	$result = new EventResult();
	$id = $event->getParameter('id');
	if(is_array($id))
	{
		$id = $id['ID'];
	}
	$id = (int) $id;

	$stages = StageTable::getList([
		'select' => [
			'ID',
		],
		'filter' => [
			'=TYPE_ID' => $id,
		],
	]);
	while($stage = $stages->fetchObject())
	{
		$deleteResult = $stage->delete();
		if(!$deleteResult->isSuccess())
		{
			foreach($deleteResult->getErrors() as $error)
			{
				$result->addError($error);
			}
		}
	}

	if(!$result->getErrors())
	{
		PermissionTable::deleteByEntity(UserPermissions::ENTITY_TYPE, $id);
		FieldTable::removeByTypeId($id);
		ItemSortTable::removeByTypeId($id);
		TimelineTable::removeByTypeId($id);
		ItemHistoryTable::removeByTypeId($id);
		$typeData = static::getTemporaryStorage()->getData($id);
		static::getTemporaryStorage()->saveData($id, $typeData);
		$itemIndexEntity = static::compileItemIndexEntity($typeData);
		if($itemIndexEntity)
		{
			$tableName = $itemIndexEntity->getDBTableName();
			if(Application::getConnection()->isTableExists($tableName))
			{
				Application::getConnection()->dropTable($tableName);
			}
		}
	}

	$parentResult = parent::onAfterDelete($event);
	foreach($parentResult->getErrors() as $error)
	{
		$result->addError($error);
	}

	return $result;
}