• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/grid/row/elementrowassembler.php
  • Класс: BitrixIblockGridRowElementRowAssembler
  • Вызов: ElementRowAssembler::getPropertiesAssemblers
private function getPropertiesAssemblers(): array
{
	$result = [];

	$customColumnIds = [];
	foreach ($this->columns as $column)
	{
		$editable = $column->getEditable();
		if (isset($editable) && $editable->getType() === Types::CUSTOM)
		{
			$customColumnIds[] = $column->getId();
		}
	}

	$result[] = new StringFieldAssembler(
		$this->settings->getIblockId(),
		[]
	);

	$result[] = new NumberFieldAssembler(
		$this->settings->getIblockId(),
		[]
	);

	$result[] = new ListFieldAssembler(
		$this->settings->getIblockId()
	);

	$result[] = new ElementFieldAssembler(
		$this->settings->getIblockId(),
		$customColumnIds
	);

	$result[] = new SectionFieldAssembler(
		$this->settings->getIblockId(),
		$customColumnIds
	);

	$result[] = new UserTypePropertyFieldAssembler(
		$this->settings->getIblockId(),
		$customColumnIds
	);

	$result[] = new FileFieldAssembler(
		$this->settings->getIblockId()
	);

	$processedColumnsIds = [];
	foreach ($result as $assembler)
	{
		/**
		 * @var FieldAssembler $assembler
		 */
		array_push($processedColumnsIds, ...$assembler->getColumnIds());
	}

	$result[] = new MultipleFieldAssembler(
		$this->settings->getIblockId(),
		$processedColumnsIds
	);

	return $result;
}