Имеется след. структура ИБ (наименования полей и ИБ условны, но отражают реальную ситуацию):
ИБ1 имеет два свойства СВ1_1 и СВ1_2 типа "Привязка к элементам". Оба свойства привязаны к одному и тому же ИБ2, которое имеет свойство СВ2_1 типа число. Реальный пример такой конструкции: имеется ИБ "Проекты", где есть такие свойства, как "Ответственный" и "Исполнитель". И тот и другой - это ИБ "Сотрудники". При этом оба эти свойства могут иметь как одинаковое значение, так и различное одновременно, НО не найдется двух записей с равными парами этих значений (это уже реальное положение дел по моей проблеме). В реальных данных имеется порядка 1000 записей, из которых имеется несколько десятков таких что на одно и то же значение СВ1_1 приходится несколько (макс. 5) значений СВ1_2 уже различных между собой (в том числе обязательно 1 равное СВ1_1). Остальные записи имеют четко СВ1_1 = СВ1_2.
Имеется след. код (соотнесен с приведенными выше обозначениями иб и свойств):
Проблема:
Неизменно получаю на выходе одинаковые значения для $arFields['PROPERTY_СВ1_2_PROPERTY_СВ2_1_VALUE'] и $arFields['PROPERTY_СВ1_1_PROPERTY_СВ2_1_VALUE'] для всех(!) записей, в том числе и для тех, у которых значения этих полей различны.
Вопрос:
Может кто сталкивался с этим или я где-то туплю? Согласно описанию CIBlockElement::GetList() должно отрабатываться без проблем, однако, имеем то, что описал.
ИБ1 имеет два свойства СВ1_1 и СВ1_2 типа "Привязка к элементам". Оба свойства привязаны к одному и тому же ИБ2, которое имеет свойство СВ2_1 типа число. Реальный пример такой конструкции: имеется ИБ "Проекты", где есть такие свойства, как "Ответственный" и "Исполнитель". И тот и другой - это ИБ "Сотрудники". При этом оба эти свойства могут иметь как одинаковое значение, так и различное одновременно, НО не найдется двух записей с равными парами этих значений (это уже реальное положение дел по моей проблеме). В реальных данных имеется порядка 1000 записей, из которых имеется несколько десятков таких что на одно и то же значение СВ1_1 приходится несколько (макс. 5) значений СВ1_2 уже различных между собой (в том числе обязательно 1 равное СВ1_1). Остальные записи имеют четко СВ1_1 = СВ1_2.
Имеется след. код (соотнесен с приведенными выше обозначениями иб и свойств):
Код |
---|
$arOrder = Array("PROPERTY_св1_1.PROPERTY_св2_1" => "ASC"); $arFilter = Array( "IBLOCK_ID"=>IntVal($iICID), "ACTIVE"=>"Y"); $arSelect = Array( "IBLOCK_ID", "ID", "NAME", "IBLOCK_SECTION_ID", "PROPERTY_св1_2.PROPERTY_св2_1", "PROPERTY_св1_1.PROPERTY_св2_1"); $resElements = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect); while($arFields = $resElements->Fetch()){ $strContent .= sprintf ($format_ic, $arFields['PROPERTY_СВ1_2_PROPERTY_СВ2_1_VALUE'], $arFields['PROPERTY_СВ1_1_PROPERTY_СВ2_1_VALUE'] ); } |
Проблема:
Неизменно получаю на выходе одинаковые значения для $arFields['PROPERTY_СВ1_2_PROPERTY_СВ2_1_VALUE'] и $arFields['PROPERTY_СВ1_1_PROPERTY_СВ2_1_VALUE'] для всех(!) записей, в том числе и для тех, у которых значения этих полей различны.
Вопрос:
Может кто сталкивался с этим или я где-то туплю? Согласно описанию CIBlockElement::GetList() должно отрабатываться без проблем, однако, имеем то, что описал.