Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Проблема с CIBlockElement::GetList

00 голосов
7
Всем привет, содержание проблемы такое:
Код примерно такой.
Код
$arFilter = Array( 
   "IBLOCK_ID"=>array("94","88"), 
   "ACTIVE"=>"Y", 
   "PROPERTY_nrchoice"=>"Y"
   );
$res = CIBlockElement::GetList(Array("SORT"=>"ASC"), $arFilter);
while($ar_fields = $res->GetNext())
{
  echo $ar_fields["NAME"].'<br>';
}

Если в фильтре есть параметр PROPERTY_nrchoice, то выборка идет только из одного инфоблока. Соответственно, если убрать этот параметр, то все в порядке. Есть мысли по этому поводу?

Версия битрикса 9.0.0
спросил 01 Авг, 13 от lkdsjfosd (160 баллов)

7 Ответы

00 голосов
Значит у вас один или оба инфоблока являются расширенными (хранение в отдельной таблице). В таких случаях фильтр по свойству в нескольких ИБ невозможен.
ответил 01 Авг, 13 от Arn4 (2,140 баллов)
00 голосов
Спасибо! А какой вообще смысл хранения свойств в отдельной таблице? Просто мы сейчас решаем переносить свойства в общую или делать велосипед для выборки из всех ИБ...
ответил 30 Сен, 13 от lkdsjfosd (160 баллов)
00 голосов
Зависит от многих факторов. К сожалению, определенно сможет сказать только специалист после анализа структуры.

Перевод в общую таблицу не критичен. Просто дает бОльшую нагрузку.
ответил 31 Дек, 13 от Arn4 (2,140 баллов)
00 голосов
Цитата
Андрей Луговской пишет:
А какой вообще смысл хранения свойств в отдельной таблице?


В производительности
ответил 16 Апр, 14 от Dakost (580 баллов)
00 голосов
Да спасибо, в итоге решили оставить отдельные таблицы и сделали костыль в result_modifier.php
ответил 10 Авг, 14 от lkdsjfosd (160 баллов)
00 голосов
Цитата
Андрей Луговской пишет:
Да спасибо, в итоге решили оставить отдельные таблицы и сделали костыль в result_modifier.php

Правильно в общей таблице могут возникать неожиданные проблемы... У мну как-то была проблема, что я не мог работать с данными (пользовательское св-во массив) взятыми из ИБ, хранящимся в общей таблице. Они выбирались, но в дальнейшем разобрать этот массив не выходило, оно было что-то вроде строки и одновременно не строкой и не массивом... короче на print_r выводилась чушь, на echo $s[1] выводилось сразу несколько букв, причём их количество равнялось числу элементов исходного массива. В общем бился, пока не посоветовали сделать отдельную таблицу, после чего получил нормальный массив, разбираемый foreach. Но что это было всё равно интересно, видимо какая-то хитрая упаковка данных.
ответил 14 Дек, 14 от Lisica (900 баллов)
00 голосов
Рамиль Миннигалиев, serialize
ответил 05 Апр, 15 от Miko (340 баллов)

Похожие вопросы

0 голосов
7 ответов
спросил 13 Авг, 13 от wokmon300 (180 баллов)
0 голосов
4 ответов
спросил 26 Янв, 14 от Eoling (140 баллов)
0 голосов
2 ответов
спросил 22 Июль, 13 от Cmeptb (160 баллов)
0 голосов
6 ответов
спросил 26 Апр, 13 от MadHatter (260 баллов)
0 голосов
1 ответ