У меня почти аналогичная задача. Но у меня не в ценах, но с ценами тут просто, если стоит цена для группы пользователей то цена и будет выведена для группы пользователей. У меня в следующем. Есть подразделение на закрытые бренды, снятые с продажи И бренды для всех.
Если пользователь не принадлежит к группе с закрытыми брендами то соответственно они не должны показываться.
Частично я ее решил следующим образом.
На странице каталога стоит компонент каталога, перед ним поставлен фильтр, проверяю принадлежность к группе "Закрытые бренды"[CODE]$User = in_array(12, $USER->GetUserGroupArray());
$IBLOCK_ID = 26;
$arSelect = Array(
"ID",
"IBLOCK_ID",
"NAME",
"DETAIL_PICTURE",
"PREVIEW_TEXT",
"DATE_ACTIVE_FROM",
);
$arFilter = Array(
"IBLOCK_ID" => $IBLOCK_ID,
"ACTIVE_DATE" => "Y",
"ACTIVE" => "Y",
);
if (!empty($User)) {
$arFilter["!PROPERTY_UF_SHOW_TYPE"] = 1392;
}
else {
$arFilter["!PROPERTY_UF_SHOW_TYPE"] = array(
1391,
1392
);
}
$arSort = Array("SORT" => "ASC",);
$res = CIBlockElement::GetList($arSort, $arFilter, false, false, $arSelect);
while ($ob = $res->GetNextElement()) {
$arFields = $ob->GetFields();
$arBrands[] = $arFields;
}
foreach ($arBrands as $brand){
$arBrand[]=$brand['ID'];
}
global $arCatalogFilter;
$arCatalogFilter = array(
'PROPERTY_66' => $arBrand,
);
$APPLICATION->IncludeComponent(
"bitrix:catalog",
"amt",
array(
"IBLOCK_TYPE" => "catalog",
"IBLOCK_ID" => "5",
"HIDE_NOT_AVAILABLE" => "N",
"BASKET_URL" => "/personal/cart/",
"ACTION_VARIABLE" => "action",
"PRODUCT_ID_VARIABLE" => "id",
"SECTION_ID_VARIABLE" => "SECTION_ID",
"PRODUCT_QUANTITY_VARIABLE" => "quantity",
"PRODUCT_PROPS_VARIABLE" => "prop",
"SEF_MODE" => "Y",
"SEF_FOLDER" => "/catalog/",[/CODE]
Что в результате на странице section.php компонента каталог стоит catalog.section.list - кастомизированный, в нем добавлена возможность фильтрации списка разделов которые не будут отображаться в случае если в них только скрытые бренды и пользователь не имеет прав на просмотр скрытых брендов. затем стоит catalog.smart.filter и затем стоит catalog.section.
Разделы отображаются правильно, список элементов так же отфильтрован как задано. А вот умный фильтр выводит все. Он выводит скрытые бренды и показывает количество скрытых брендов, но при выборе скрытого бренда результат показывает 0. Если в фильтре выбрать другое свойство. Показывает количество допустим 10, но при выборе этого свойства покажет 8, убирает скрытые бренды.
И еще проблема у меня описана тут [URL=https://dev.1c-bitrix.ru/community/forums/forum6/topic99303/]https://dev.1c-bitrix.ru/community/forums/forum6/topic99303/[/URL]