Поправка. Решение нашлось!
В catalog.section.list и почистить кэш
<? //Блок вывода Доп полей в разделах
$rsResult = CIBlockSection::GetList(array("SORT" => "ASC"), array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "ID" =>$arResult["SECTION"]["ID"]), false, $arSelect = array("UF_TAGI"));
if($arSection = $rsResult -> GetNext())
{
$uftag = $arSection["UF_TAGI"];
if($uftag) {
$arFilter = array('IBLOCK_ID' => 27,'ID' => $uftag);
$rsItems = CIBlockSection::GetList(array(),$arFilter);
echo '<div class="catalog-tags">';
while ($arItem = $rsItems->GetNext())
{
echo '<div class="catalog-tags-item"><a href="'.$arItem['SECTION_PAGE_URL'].'">'.$arItem["NAME"].'</a></div>';
}
echo '</div>';
}
}
?>
Первый код выводит из Доп. полей (тип - Привязка к разделам инфоблока) выбранные разделы, которые относятся только к одной категории (т.е. не учитывает при этом значения админки, что в другом разделе отмечены другие пункты).
А вот это код
<?
$IBLOCK_ID = 27; // ID нужного инфоблока
//Получаем все возможные поля текущего пользователя
$rsUser = CUser::GetByID($USER->GetID());
$arUser = $rsUser->Fetch();
//Выводим если множественное
foreach ($arUser['UF_TAGI'] as $propertyUf):
echo $propertyUf;
endforeach;
//Создаем массив фильтра
$arFilter = array('IBLOCK_ID' => $IBLOCK_ID, 'ACTIVE' => 'Y');
//Добавляем наш массив в котором перечислены ID разделов выбранные пользователем
$sect_id = $fofilter;
//Создаем массив фильтра. В конце переменная фильтра
$arFilter = array('IBLOCK_ID' => $IBLOCK_ID, 'ACTIVE' => 'Y', 'ID' => $sect_id);
//Создаем массив выводимых полей
$arSelect = array('ID', 'NAME');
//Применяем метод с фильтром и полями
$rsSection = CIBlockSection::GetTreeList($arFilter, $arSelect);
//Выводим названия разделов
while ($arSection = $rsSection->Fetch()) {
echo $arSection['NAME'];
}
foreach ($arUser['UF_TAGI'] as $propertyUf):
$sectionsUser .= '\'' . $propertyUf . '\',';
endforeach;
eval('$fofilter=array(' . $sectionsUser . ');');
extract($fofilter);
?>
выводит всё подряд.