Как определить что находишься на детальной странице каталога?

Для определения того, что вы находитесь на детальной странице каталога в системе 1C-Bitrix, можно использовать несколько способов.

1. Проверка по типу текущего компонента:
Обычно, на детальной странице каталога используется компонент "bitrix:catalog.element", поэтому можно проверить тип текущего компонента с помощью функции "CComponentEngine::GetComponentPath", которая вернет путь к файлу компонента.

Пример кода:

   $componentPath = CComponentEngine::GetComponentPath('bitrix:catalog.element');
   if ($componentPath !== false) {
       // Вы находитесь на детальной странице каталога
   }

2. Проверка по идентификатору инфоблока:
Еще один способ - проверить идентификатор инфоблока текущего элемента с помощью глобальной переменной "$GLOBALS['IBLOCK_ID']", которая содержит значение идентификатора активного инфоблока.

Пример кода:

   if ($GLOBALS['IBLOCK_ID'] == ID_ВАШЕГО_ИНФОБЛОКА) {
       // Вы находитесь на детальной странице каталога
   }

3. Проверка по URL страницы:
Можно также проверить текущий URL страницы с помощью функции "CMain::GetCurPage", и сравнить его с заранее заданным URL паттерном детальной страницы каталога.

Пример кода:

   $pageURL = CMain::GetCurPage();
   $pattern = '/^/catalog/.*/d+/$/'; // Здесь можно задать нужный паттерн детальной страницы
   if (preg_match($pattern, $pageURL)) {
       // Вы находитесь на детальной странице каталога
   }

Это лишь некоторые из возможных способов определить, что вы находитесь на детальной странице каталога в системе 1C-Bitrix. Выберите подходящий для вас метод и используйте его в своем коде.