Важное отличие между полным получением данных через upage и частичным используя upage.page id.field name
При использовании XSLT-шаблонизатора, вам часто приходится через протокол UPAGE получать данные о странице в xml-формате. Обязательно, при выводе списка объектов каталога, не забывайте о наличии способа вызова, который позволяет получить значение только одного поля, а именно:
<xsl:variable name="photo_link" select="document(concat('upage://', $page_id, '.photo'))//value" />
Дополнительная информация находится в документации протокол UPage
Может возникнуть ситуация, что у объектов каталога, будет очень много полей с данными, 40-50 или больше, поэтому на построение полных xml данных, при вызове upage://47 , будет расходоваться очень много времени, оно может отличаться в 5-10 раз, начнут возникать вопросы, почему сайт работает не так быстро как хотелось бы. Суть проста, не надо получать огромный объем данных в xml-формате, из которого вы будете использовать лишь 2-3%, это важное условие для оптимизации сайта.
В случае высокопосещаемого сайта, необходимо использовать другой подход к получение данных, об этом написано в статье Кастомизация макроса catalog getObjectsList для ускорения формирования страницы