...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/recycling/activitycontroller.php
- Класс: Bitrix\Crm\Recycling\ActivityController
- Вызов: ActivityController::erase
public function erase($entityID, array $params = []) { if($entityID <= 0) { throw new Main\ArgumentException('Must be greater than zero.', 'entityID'); } $recyclingEntityID = isset($params['ID']) ? (int)$params['ID'] : 0; if($recyclingEntityID <= 0) { throw new Main\ArgumentException('Could not find parameter named: "ID".', 'params'); } $slots = isset($params['SLOTS']) && is_array($params['SLOTS']) ? $params['SLOTS'] : []; $fields = isset($slots['FIELDS']) && is_array($slots['FIELDS']) ? $slots['FIELDS'] : []; $this->eraseSuspendedTimeline($recyclingEntityID); $this->eraseSuspendedLiveFeed($recyclingEntityID); $this->eraseSuspendedUserFields($recyclingEntityID); $this->eraseSuspendedBadges($recyclingEntityID); $this->eraseSuspendedNotes($recyclingEntityID); //region Files $files = isset($params['FILES']) ? $params['FILES'] : null; if(is_array($files)) { $storageElementIDs = []; foreach($files as $file) { $storageElementIDs[] = (int)$file['FILE_ID']; } $storageTypeID = isset($fields['STORAGE_TYPE_ID']) ? (int)$fields['STORAGE_TYPE_ID'] : \CCrmActivity::GetDefaultStorageTypeID(); \CCrmActivity::DoDeleteStorageElements($storageTypeID, $storageElementIDs); } //endregion $provider = \CCrmActivity::GetActivityProvider($fields); $associatedEntityID = isset($fields['ASSOCIATED_ENTITY_ID']) ? (int)$fields['ASSOCIATED_ENTITY_ID'] : 0; if($provider && $associatedEntityID > 0) { $deleteParams = ['IS_ERASING_FROM_RECYCLE_BIN' => true]; if ($provider === Crm\Activity\Provider\Task::class) { $deleteParams['SKIP_TASKS'] = $params['SKIP_TASKS'] ?? true; } $provider::deleteAssociatedEntity($associatedEntityID, $fields, $deleteParams); } Relation::deleteByRecycleBin($recyclingEntityID); unset($this->entityIdToRecyclingEntityId[$entityID]); $this->fireAfterEraseEvent($recyclingEntityID); }