...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/agent/duplicate/background/indexrebuild.php
- Класс: Bitrix\Crm\Agent\Duplicate\Background\IndexRebuild
- Вызов: IndexRebuild::onPendingStart
protected function onPendingStart(array $progressData): bool { /** @var Merge $mergeAgentClassName */ $mergeAgentClassName = $this->getMergeAgentClassName(); $mergeAgent = $mergeAgentClassName::getInstance($this->getUserId()); if ($mergeAgent->isActive()) { return $this->setError($progressData, static::ERR_ON_START_MERGE_AGENT_ACTIVE); } $mergeAgent->deleteProgressData(); $progressData['TYPE_INDEX'] = 0; $progressData['PROCESSED_ITEMS'] = 0; $progressData['FOUND_ITEMS'] = 0; $totalItemQty = 0; $typeIds = $this->getTypeIds($progressData['TYPES']); foreach($typeIds as $typeId) { $builder = DuplicateManager::createIndexBuilder( $typeId, $this->getEntityTypeId(), $this->getUserId(), !Container::getInstance()->getUserPermissions($this->getUserId())->isAdmin(), array('SCOPE' => $progressData['SCOPE']) ); $totalItemQty += $builder->getTotalCount(); } $progressData['TOTAL_ITEMS'] = $totalItemQty; $timestamp = time(); $progressData['STATUS'] = static::STATUS_RUNNING; $progressData['TIMESTAMP_START'] = $timestamp; $progressData['TIMESTAMP_HALF'] = 0; $progressData['TIMESTAMP_FINISH'] = 0; $progressData['TIMESTAMP'] = $timestamp; $this->setProgressData($progressData); return true; }