- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integrity/volatile/typeinfo.php
- Класс: Bitrix\Crm\Integrity\Volatile\TypeInfo
- Вызов: TypeInfo::assign
public function assign(int $entityTypeId, int $volatileTypeId, string $fieldPath, string $fieldName) { $state = State::getInstance(); $fields = [ 'ENTITY_TYPE_ID' => $entityTypeId, 'DESCRIPTION' => '', 'FIELD_PATH' => $fieldPath, 'FIELD_NAME' => $fieldName, ]; if ( DuplicateIndexTypeSettingsTable::getList( [ 'select' => ['ID'], 'filter' => ['ID' => $volatileTypeId] ] )->fetch() ) { $state->set($volatileTypeId, State::STATE_FREE); EventHandler::onAssignVolatileTypes([$volatileTypeId]); DuplicateIndexTypeSettingsTable::update($volatileTypeId, $fields); } else { $fields['ID'] = $volatileTypeId; DuplicateIndexTypeSettingsTable::add($fields); EventHandler::onAssignVolatileTypes( [$volatileTypeId], DuplicateVolatileCriterion::getSupportedEntityTypes() ); } $state->set($volatileTypeId, State::STATE_ASSIGNED); IndexRebuild::getInstance($volatileTypeId)->start(['USER_ID' => $this->getCurrentUserId()]); Cleaner::getInstance()->start([]); }