• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/propertyindex/indexer.php
  • Класс: BitrixIblockPropertyIndexIndexer
  • Вызов: Indexer::indexElement
public function indexElement($elementId)
{
	$element = new Element($this->iblockId, $elementId);
	$element->loadFromDatabase();

	$elementSections = $element->getSections();
	$elementIndexValues = $this->getSectionIndexEntries($element);

	foreach ($element->getParentSections() as $sectionId)
	{
		foreach ($elementIndexValues as $facetId => $values)
		{
			foreach ($values as $value)
			{
				$this->storage->queueIndexEntry(
					$sectionId,
					$elementId,
					$facetId,
					$value["VALUE"],
					$value["VALUE_NUM"],
					in_array($sectionId, $elementSections)
				);
			}
		}
	}

	foreach ($elementIndexValues as $facetId => $values)
	{
		foreach ($values as $value)
		{
			$this->storage->queueIndexEntry(
				0,
				$elementId,
				$facetId,
				$value["VALUE"],
				$value["VALUE_NUM"],
				empty($elementSections)
			);
		}
	}

	$this->storage->flushIndexEntries();
}