решение "в лоб". в папке с шаблоном создать файл result_modifier.php и в него вбить код
[CODE]if (CModule::IncludeModule('iblock')) { //пытаемся подключить модуль инфоблоков
$tmpIDs = array(); //массив, сюда положатся ID городов в цикле ниже
foreach ($arResult['ITEMS'] as $arItem) {
if (!empty($arItem['PROPERTIES']['city']['VALUE'])) {
$tmpIDs[] = $arItem['PROPERTIES']['city']['VALUE'];
}
}
if (!empty($tmpIDs)) { //если какие-то ID городов получены, то:
$cityByID = array();
$rsList = CIBlockElement::GetList(false, array('ID' => $tmpIDs), false, false, array('ID', 'NAME')); //получаем все элементы с ID из массива $tmpIDs, заполненном выше, при этом IBLOCK_ID можно не указывать
while ($arItem = $rsList->Fetch()) {
$cityByID[$arItem['ID']] = $arItem['NAME'];
}
if (!empty($cityByID)) { //если получили ID городов, то пробегаем по элементам и заменяем ID города на его название
foreach ($arResult['ITEMS'] as $arItem) {
if (!empty($arItem['PROPERTIES']['city']['VALUE']) && !empty($cityByID[$arItem['PROPERTIES']['city']['VALUE']])) { //Если ID гордоа указан, и если мы нашли по этому ID название города
$arItem['PROPERTIES']['city']['VALUE'] = $cityByID[$arItem['PROPERTIES']['city']['VALUE']]; //то заменяем ID на название города
}
}
}
}
unset($tmpIDs, $cityByID, $rsList, $arItem); // unset ненужных в дальнейшем переменных
}
[/CODE]после этого в value будет лежать название города