• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/grid/column/columns.php
  • Класс: BitrixMainGridColumnColumns
  • Вызов: Columns::getSelect
public function getSelect(?array $columnIds = null, ?array $providers = null): array
{
	$result = [];

	// filter by providers
	if (isset($providers))
	{
		$columns = [];
		foreach ($providers as $providerClass)
		{
			$providerColumns = $this->getProvidersColumns()[$providerClass] ?? null;
			if (!empty($providerColumns))
			{
				array_push($columns, ...$providerColumns);
			}
		}

		if (empty($columns))
		{
			return [];
		}
	}
	else
	{
		$columns = $this->getColumns();
	}

	// filter by columns
	if (isset($columnIds))
	{
		$columnIds = array_fill_keys($columnIds, true);
		foreach ($columns as $column)
		{
			if (
				$column->isNecessary()
				|| isset($columnIds[$column->getId()])
			)
			{
				array_push($result, ...$column->getSelect());
			}
		}
	}
	else
	{
		foreach ($columns as $column)
		{
			array_push($result, ...$column->getSelect());
		}
	}

	return $result;
}