• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/grid/row/actions/productrowactionsprovider.php
  • Класс: BitrixCatalogGridRowActionsProductRowActionsProvider
  • Вызов: ProductRowActionsProvider::prepareControls
public function prepareControls(array $rawFields): array
{
	$controls = parent::prepareControls($rawFields);

	$isSection = isset($rawFields['ROW_TYPE']) && $rawFields['ROW_TYPE'] === 'S';
	if (!$isSection)
	{
		$id = (int)($rawFields['ID'] ?? 0);
		if ($id > 0)
		{
			$additionalItems = [];

			$productType = (int)($rawFields['TYPE'] ?? $this->getProductType($id) ?? 0);
			if ($productType === ProductTable::TYPE_SERVICE)
			{
				$additionalItems[] = $this->getActionById(ConvertToProductItem::getId());
			}
			else
			{
				$additionalItems[] = $this->getActionById(ConvertToServiceItem::getId());
			}

			foreach ($additionalItems as $item)
			{
				/**
				 * @var BitrixMainGridRowActionBaseAction|null $item
				 */
				$control = isset($item) ? $item->getControl($rawFields) : null;
				if (isset($control))
				{
					$controls[] = $control;
				}
			}
		}
	}

	return $controls;
}