Не секрет, что в битриксе существует такое понятие, как “отложенные функции”. Они позволяют вставить некоторые данные в начале страницы, при это сгенерировать их в конце кода. Одни считают это аццким костылем, берущем свое начало в первых версиях системы, другие - наоборот удобным механизмом. Мы относим себя ко вторым и сейчас постараемся показать удобства использования отложенных функций.
Во-первых при создании шаблона очень часто используется ShowTitle - функиця, которая выводит заголовок. Вписав ее в шаблон мы в любом месте кода можем вызвать SetTitle(’заголовок’) и тем самым установить его :)

Есть функция ShowPageProperty(’name’) - показывает значение свойства с именем name.

Так же можно сделать свою отложенную функцию, с помощью CMain::AddBufferContent.

Применение

Простой пример: у нас в теле страницы выводится инфа из инфоблока с какой-то сортировкой. Параметры сортировки мы получаем из урл-а. Сверху на странице стоят кнопки фильтра, которые так же зависят от параметров из урла. У нас есть 2 варианта: либо обработать url 2 раза (а если правки в код вносить потом?), либо извратить разбиение верстки на файлы и сделать так, чтобы именно на этих страницах оно попадало в файл, выводящий инфоблок (это еще большая жесть, так как бредовые незакрытые куски верстки будут разбросаны по разным файлам).

А с отложенными функциями можно сделать так: взять html нужного блока из нужной части шаблона, вместо него воткнуть ShowPageProperty, а в файле вывода инфоблока, во время обработки url-а, заодно сгенерировать код этого блока и через SetPageProperty отправить. Легкое и красивое решение :)