- Модуль: 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();
}
}