• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/entityrequisite.php
  • Класс: Bitrix\Crm\EntityRequisite
  • Вызов: EntityRequisite::delete
public function delete($id, $options = array())
{
	$requisite = $this->getList([
		'filter' => ['=ID' => $id],
		'select' => array_merge(['ID'], self::getFileFields()),
		'limit' => 1,
	])->fetch();

	$entityInfo = self::getOwnerEntityById($id);

	EntityLink::unregisterByRequisite($id);
	RequisiteAddress::deleteByEntityId($id);

	$bankDetail = EntityBankDetail::getSingleInstance();
	$bankDetail->deleteByEntity(CCrmOwnerType::Requisite, $id);

	$result = RequisiteTable::delete($id);

	if ($result->isSuccess())
	{
		foreach (self::getFileFields() as $fileField)
		{
			if ($requisite[$fileField] > 0)
			{
				\CFile::Delete($requisite[$fileField]);
			}
		}
	}
	if ($result->isSuccess()
		&& \CCrmOwnerType::IsDefined($entityInfo['ENTITY_TYPE_ID']) && $entityInfo['ENTITY_ID'] > 0)
	{
		DuplicateRequisiteCriterion::RegisterByEntity($entityInfo['ENTITY_TYPE_ID'], $entityInfo['ENTITY_ID']);

		//region Register volatile duplicate criterion fields
		DuplicateVolatileCriterion::register(
			$entityInfo['ENTITY_TYPE_ID'],
			$entityInfo['ENTITY_ID'],
			[FieldCategory::REQUISITE]
		);
		//endregion Register volatile duplicate criterion fields
	}

	//region Send event
	if ($result->isSuccess())
	{
		$event = new Main\Event('crm', 'OnAfterRequisiteDelete', array('id' => $id));
		$event->send();
	}
	//endregion Send event

	return $result;
}