Во-первых, существует макрос %system ifClause()%, который позволяет вывести то или ионое строковое содержимое в зависимости от истинности передаваемого условия. Очень древний макрос и очень простой. Если вы уже обрадовались и представили как делаете ветвление с вывзовом того или иного макроса, то жестоко разочаруетесь. В лучшем случае можно вывести ту или иную строку (и, подозреваю, не содержащую запятых).
Гораздо более мощный инструмент - это шаблоны модуля data.
Для примера возьмем часто встречающуюся задачу вывести картинку анонса к новости, если он есть, или картинку-заглушку.
Картинка у нас выводится макросом %data getProperty(%id%, 'anons_pic','anons_pic')%
Здесь первое anons_pic - это имя поля, второе - имя шаблона в папке data.
Теперь в шаблоне anons_pic находим блок, отвечающий за вывод изображения:
$FORMS['img_file'] = <<<END
%system makeThumbnail(%filepath%, '70', '50', 'view')%
END;
Чтобы указать UMI.CMS что делать, если поле не заполнено, следует создать еще один блок, добавив к имени ключевое слово _empty, и указать в нем желаемое действие:
$FORMS['img_file_empty'] = <<<END
<img src="/sites/umicms/assets/gif/empty.jpg">
END;
Все просто.