Имеется след. структура ИБ (наименования полей и ИБ условны, но отражают реальную ситуацию):
ИБ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() должно отрабатываться без проблем, однако, имеем то, что описал.