- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integrity/volatile/type/state.php
- Класс: Bitrix\Crm\Integrity\Volatile\Type\State
- Вызов: State::set
public function set(int $volatileTypeId, int $stateId, int $currentStateId = null): Result { $result = new Result(); if ($currentStateId === null) { $localResult = $this->get($volatileTypeId); if (!$localResult->isSuccess()) { $result->addErrors($localResult->getErrors()); return $result; } $currentStateId = $localResult->getData()['stateId']; } if (!$this->checkStateTransition($currentStateId, $stateId)) { $result->addError( $this->makeErrorByCode( static::ERR_STATE_TRANSITION_IMPOSSIBLE, [ 'volatileTypeId' => $volatileTypeId, 'currentStateId' => $currentStateId, 'nextStateId' => $stateId, ] ) ); return $result; } $active = $stateId === static::STATE_READY ? 'Y' : 'N'; if ($stateId === static::STATE_INDEX) { $agentParams = []; $userId = CCrmSecurityHelper::GetCurrentUserID(); if ($userId > 0) { $agentParams['USER_ID'] = $userId; } } DuplicateIndexTypeSettingsTable::update( $volatileTypeId, ['ACTIVE' => $active, 'STATE_ID' => $stateId] ); return $result; }