- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/entity_helper.php
- Класс: \CCrmEntityHelper
- Вызов: CCrmEntityHelper::prepareOperationByOptions
static function prepareOperationByOptions( \Bitrix\Crm\Service\Operation $operation, array $options, bool $checkPermissions ): void { $context = clone \Bitrix\Crm\Service\Container::getInstance()->getContext(); if (isset($options['ITEM_OPTIONS'])) { $context->setItemOptions($options['ITEM_OPTIONS']); } if (isset($options['CURRENT_USER']) && (int)$options['CURRENT_USER'] > 0) { $context->setUserId((int)$options['CURRENT_USER']); } if (isset($options['eventId'])) { $context->setEventId($options['eventId']); } $operation->setContext($context); if (!$checkPermissions) { $operation->disableCheckAccess(); } $disableUserFieldsCheck = $options['DISABLE_USER_FIELD_CHECK'] ?? false; if ($disableUserFieldsCheck === true) { $operation->disableCheckFields(); } $disableRequiredUserFieldsCheck = $options['DISABLE_REQUIRED_USER_FIELD_CHECK'] ?? false; if ($disableRequiredUserFieldsCheck === true) { $operation->disableCheckRequiredUserFields(); } $excludeFromRelationRegistration = isset($options['EXCLUDE_FROM_RELATION_REGISTRATION']) && is_array($options['EXCLUDE_FROM_RELATION_REGISTRATION']) ? $options['EXCLUDE_FROM_RELATION_REGISTRATION'] : [] ; if (!empty($excludeFromRelationRegistration)) { $operation->excludeItemsFromTimelineRelationEventsRegistration($excludeFromRelationRegistration); } $operation->disableCheckLimits(); $isCompareEnabled = (bool)($options['IS_COMPARE_ENABLED'] ?? true); if ($isCompareEnabled === false) { $operation->disableSaveToHistory(); } $disableTimeline = isset($options['DISABLE_TIMELINE_CREATION']) ? ($options['DISABLE_TIMELINE_CREATION'] === 'Y') : false; if ($disableTimeline === true) { $operation->disableSaveToTimeline(); } $enableDeferredMode = (bool)($options['ENABLE_DEFERRED_MODE'] ?? true); if ($enableDeferredMode) { $operation->enableDeferredCleaning(); } else { $operation->disableDeferredCleaning(); } $enableDupIndexInvalidation = (bool)($options['ENABLE_DUP_INDEX_INVALIDATION'] ?? true); if ($enableDupIndexInvalidation) { $operation->enableDuplicatesIndexInvalidation(); } else { $operation->disableDuplicatesIndexInvalidation(); } if (isset($options['ENABLE_ACTIVITY_COMPLETION']) && is_bool($options['ENABLE_ACTIVITY_COMPLETION'])) { if ($options['ENABLE_ACTIVITY_COMPLETION']) { $operation->enableActivitiesAutocompletion(); } else { $operation->disableActivitiesAutocompletion(); } } $processBizProc = (bool)($options['PROCESS_BIZPROC'] ?? true); if ($processBizProc) { $operation->enableBizProc(); } else { $operation->disableBizProc(); } }