Содержание файла getproductpropertyoruf.php self::$IBLOCK_ID, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y","ID"=>$id); $res = CIBlockElement::GetList(array(), $arFilter, false, array(), $arSelect); if (($ob = $res->GetNextElement()) !== false) { $fields = $ob->GetFields(); if ($fields) { if (isset($fields["IBLOCK_SECTION_ID"]) and $fields["IBLOCK_SECTION_ID"]) { $section_id = $fields["IBLOCK_SECTION_ID"]; $check = true; self::$array[$id] = array("IBLOCK_SECTION_ID"=>$section_id); foreach (self::$arProps as $one) { if (isset($fields[("PROPERTY_" . $one . "_VALUE")]["TEXT"]) and $fields[("PROPERTY_" . $one . "_VALUE")]["TEXT"]) { self::$array[$id][$one] = $fields[("PROPERTY_" . $one . "_VALUE")]["TEXT"]; } else { self::$array[$id][$one] = self::q2($one,$section_id); } } } } } } if (!$check) { self::$array[$id] = array(); } if (isset(self::$array[$id][$name]) and self::$array[$id][$name]) { $return = self::$array[$id][$name]; } } return $return; } function q2($name=false,$id=false) {// Запрос к дополнительным полям разделов $return = false; if ($id and $name) { if (self::$ufSectionAr === false) { self::$ufSectionAr = array(); } if (!isset(self::$ufSectionAr[$id])) { self::$ufSectionAr[$id] = array(); $arSelect = array("ID");// здесь можно ничего не указывать, указано ID чтобы не возвращались ненужные поля инфоблока foreach (self::$arProps as $one) { $arSelect[] = "UF_" . $one; } $arFilter = Array("IBLOCK_ID"=>self::$IBLOCK_ID, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y","ID"=>$id); $res = CIBlockSection::GetList(array(), $arFilter, false, $arSelect); while (($ob = $res->GetNextElement()) !== false) {//GetNextElement $fields = $ob->GetFields(); foreach (self::$arProps as $one) { if (isset($fields[("UF_".$one)]) and $fields[("UF_".$one)]) { self::$ufSectionAr[$id][$one] = $fields[("UF_".$one)]; } } } } if (isset(self::$ufSectionAr[$id][$name]) and self::$ufSectionAr[$id][$name]) { $return = self::$ufSectionAr[$id][$name]; } } return $return; } function id($id) { $id2 = false; if(CModule::IncludeModule("catalog")){ if ($res = CCatalogSKU::GetProductInfo($id)) { if (isset($res["ID"]) and $res["ID"]) { $id2 = $res["ID"]; } } if ($id2 === false) { $id2 = $id; } } $id = $id2;unset($id2); return $id; } } Пример работы из result_modifier.php для карточки товара // Получаем информацию для табов карточки товара, а именно "Размеры", "Доставка", "Оплата", "Описание" //Подключаем класс для получения информации require_once($_SERVER["DOCUMENT_ROOT"]."/local/templates/main/phpscripts/getproductpropertyoruf.php"); $getProductPropertyOrUf = new getProductPropertyOrUf;// Создаём экземпляр объекта $arResult["PROPORUF"] = array();//Создаём массив где будем хранить значения в $arResult $propOrUfAr = array("CPROD_RAZ","CPROD_DOS","CPROD_OPL","CPROD_OPI");// Перечисляем названия полей которые потребуется выводить foreach ($propOrUfAr as $propOrUfArOne) { $arResult["PROPORUF"][$propOrUfArOne] = $getProductPropertyOrUf->get($propOrUfArOne,$arResult["ID"]); }