Как сделать проверку, что страница каталога на последнем уровне?
Напишите функцию или метод какого нибудь класса-хелпера, который будет проверять по id раздела, есть ли внутри его подразделы, например такfunction isChildSections($sectionId)
{
    $sectionIterator = \CIBlockSection::GetList(
        ['ID' => 'ASC'],
        [
            'SECTION_ID' => $sectionId
        ],
        false,
        ['ID'],
        [
            'nTopCount' => 1
        ]
    );

    return (bool) $sectionIterator->SelectedRowsCount();
}
>>> и один объект надо выводить
===
Не ясно, что подразумевается под «объектом», лучше придерживаться терминологии, чтобы никто не путался.>>> на последнем уровне каталога
===
То есть, внутри этого каталога нет вложенных разделов.
Либо инспектировать $arResult на предмет наличия списка подразделов текущего раздела, либо проверять самому.
Если результат вывода можно кешировать («объект» железно выводится по конкретному урлу), проводите проверку в result_modifier.php либо в template.php. Это всё закешируется, проверка будет произведена один раз.
Если результат варьируется от вызова к вызову, придётся выносить в component_epilog.php. Почему «придётся» — потому что такое уже сложно закешировать.