...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_activity.php
- Класс: \CAllCrmActivity
- Вызов: CAllCrmActivity::DeleteBindings
static function DeleteBindings($activityID, $registerBindingsChanges = true) { $activityID = intval($activityID); if($activityID <= 0) { return false; } global $DB; if ($registerBindingsChanges) { \Bitrix\Crm\Activity\UncompletedActivity::synchronizeForActivity($activityID); } $affectedBindings = Crm\ActivityBindingTable::query() ->setSelect(['OWNER_TYPE_ID', 'OWNER_ID']) ->where('ACTIVITY_ID', $activityID) ->fetchCollection() ; $affectedBindingsArray = array_map( fn(Crm\EO_ActivityBinding $binding): array => $binding->collectValues(), $affectedBindings->getAll(), ); $DB->Query( 'DELETE FROM '.CCrmActivity::BINDING_TABLE_NAME.' WHERE ACTIVITY_ID = '.$activityID, false, 'File: '.__FILE__.'
Line: '.__LINE__ ); if ($registerBindingsChanges) { \Bitrix\Crm\Counter\Monitor::getInstance()->onChangeActivityBindings( $activityID, $affectedBindingsArray, [] ); } Crm\Activity\Provider\ProviderManager::syncBadgesOnBindingsChange( $activityID, [], $affectedBindingsArray, ); $monitor = Crm\Service\Timeline\Monitor::getInstance(); foreach ($affectedBindings as $binding) { if (\CCrmOwnerType::IsDefined($binding->getOwnerTypeId()) && $binding->getOwnerId() > 0) { $monitor->onActivityRemoveIfSuitable(new Crm\ItemIdentifier($binding->getOwnerTypeId(), $binding->getOwnerId()), $activityID); } } return true; }