Для получения информации о активных группах пользователей с доступом к определенному товару через "Права доступа к элементу" в Битриксе, можно воспользоваться методом GetList из класса CIBlockElementRights.
Пример кода:
use Bitrix\Main\Loader;
use Bitrix\Main\Engine\Response\AjaxJson;
use Bitrix\Main\Context;
use Bitrix\IBlock\ElementRightsTable;
use Bitrix\Main\Localization\Loc;
class MyComponent extends CBitrixComponent
{
public function executeComponent()
{
if (!Loader::includeModule('iblock')) {
return;
}
$productId = 123; // ID товара
$activeGroups = [];
$result = ElementRightsTable::getList([
'select' => ['GROUP_CODE'],
'filter' => [
'ELEMENT_ID' => $productId,
'GROUP.ACTIVE' => 'Y'
],
'cache' => ['ttl' => 3600]
]);
while ($row = $result->fetch()) {
$activeGroups[] = $row['GROUP_CODE'];
}
// Проверяем наличие нужной группы пользователей
if (in_array('MY_GROUP_CODE', $activeGroups)) {
// Выполняем определенное действие
}
$this->arResult['activeGroups'] = $activeGroups;
$this->includeComponentTemplate();
}
}
?>
В данном примере реализован компонент, который получает информацию о активных группах пользователей с доступом к товару с ID 123 через "Права доступа к элементу". Затем производится проверка наличия конкретной группы пользователей (с кодом MY_GROUP_CODE) среди активных групп. Если такая группа есть, выполняется определенное действие.