• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/grid/column/productprovider.php
  • Класс: BitrixCatalogGridColumnProductProvider
  • Вызов: ProductProvider::prepareColumns
public function prepareColumns(): array
{
	$useSkuSelector = $this->isSkuSelectorEnabled();

	$result = [];

	$result['TYPE'] = [
		'type' => GridColumnType::DROPDOWN,
		'name' => Loc::getMessage('PRODUCT_COLUMN_PROVIDER_FIELD_TYPE'),
		'title' => Loc::getMessage('PRODUCT_COLUMN_PROVIDER_FIELD_TITLE_TYPE'),
		'necessary' => true,
		'editable' => false,
		'multiple' => false,
		'select' => [
			'TYPE',
			'BUNDLE',
		],
		'sort' => 'TYPE',
		'align' => 'right',
	];

	$result['AVAILABLE'] = [
		'type' => GridColumnType::CHECKBOX,
		'name' => Loc::getMessage('PRODUCT_COLUMN_PROVIDER_FIELD_AVAILABLE'),
		'title' => Loc::getMessage('PRODUCT_COLUMN_PROVIDER_FIELD_TITLE_AVAILABLE'),
		'necessary' => true,
		'editable' => false,
		'multiple' => false,
		'sort' => 'AVAILABLE',
		'align' => 'center',
	];

	if ($useSkuSelector)
	{
		$result['PRODUCT'] = [
			'type' => GridColumnType::CUSTOM,
			'name' => Loc::getMessage('PRODUCT_COLUMN_PROVIDER_FIELD_PRODUCT'),
			'title' => Loc::getMessage('PRODUCT_COLUMN_PROVIDER_FIELD_TITLE_PRODUCT'),
			'necessary' => true,
			'editable' => false,
			'multiple' => false,
			'select' => [],
			'sort' => 'NAME',
			'align' => 'left',
			'width' => 420, // TODO: enable support
		];
	}
	else
	{
		$result['PRODUCT'] = [
			'type' => GridColumnType::TEXT,
			'name' => Loc::getMessage('PRODUCT_COLUMN_PROVIDER_FIELD_PRODUCT'),
			'title' => Loc::getMessage('PRODUCT_COLUMN_PROVIDER_FIELD_TITLE_PRODUCT'),
			'editable' => new GridColumnEditableConfig('NAME'),
			'sort' => 'NAME',
		];
	}

	$result = array_merge(
		$result,
		$this->getQuantityColumnsDescription(),
		$this->getPhysicalColumsDescription(),
		$this->getVatColumnsDescription(),
		$this->getPurchasingPriceColumnDescription()
	);

	return $this->createColumns($result);
}