партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
Это форум по решению для битрикс «Модуль Универсальные свойства привязки».
Страницы: 1
Ответить
RSS
Отфильтрованный вывод в детальной элемента который привязан
 
На детальной странице элемент(МО) выведены привязанные элементы(УСЛУГИ) с помощью grain:table.view, нужно на детальной странице УСЛУГИ вывести МО к которым привязана эта услуга.
С обычным свойством привязки я выводил на детальной странице УСЛУГИ компонент catalog.section и делал фильтрацию по значению свойства
<?$GLOBALS["arrFilter"] = array("PROPERTY_U1_VALUE"=> $arResult["ID"];?> , со свойством привязка таблица походу не работает.
Можно вообще как то сделать такое?
 
Здравствуйте. Давайте разберемся. У вас используются Свойства-таблицы + Универсальные свойства привязки? У нечто под названием МО есть свойство-таблица у которой есть столбец с привязкой к услугам, я правильно понял? И на детальной странице МО вы хотите вывести все привязанные услуги?
 
вы все правильно поняли!
Но не на детальной странице МО, а на детальной странице услуги вывести все МО у которых в свойстве таблица указана данная услуга
 
Вы можете использовать функцию GPropertyTable::GetColumnFilter для фильтрации по определенному столбцу таблицы, так выбрать все МО, у которых есть привязка к данной услуге.
 
мб я чего не так делаю?
Код

if (CModule::IncludeModule("iblock") && CModule::IncludeModule("grain.tables")) {


   
$rsElements CIBlockElement::GetList(
      Array(
"SORT"=>"ASC","NAME"=>"ASC"),
      Array(
         
"IBLOCK_ID"=>30,
         
"ACTIVE"=>"Y",
         
"PROPERTY_worktime" => GPropertyTable::GetColumnFilter("iuhtveserxmzlzsk"$arResult["NAME"])
      ),
      
false,
      
false,
      Array(
"ID","NAME")
   );

   while(
$arElement=$rsElements->GetNext()) {
      echo 
"<pre>"print_r($arElement); echo "</pre>";
   }

}


iuhtveserxmzlzsk - идентификатор столбца

$arResult["NAME"] - имя услуги

он мне выводит все МО, а должен только те у которых в значении свойства есть данная услуга.
 
worktime - это символьный код вашего свойства?
Почему $arResult["NAME"]? Вы же по привязке фильтруете, привязка идет по ID, должно быть $arResult["ID"]?
 
Код

if (CModule::IncludeModule("iblock") && CModule::IncludeModule("grain.tables")) {

   
$rsElements CIBlockElement::GetList(
      Array(
"SORT"=>"ASC","NAME"=>"ASC"),
      Array(
         
"IBLOCK_ID"=>30,
         
"ACTIVE"=>"Y",
         
"PROPERTY_U1" => GPropertyTable::GetColumnFilter("iuhtveserxmzlzsk"$arResult["ID"])
      ),
      
false,
      
false,
      Array(
"ID","NAME")
   );

   while(
$arElement=$rsElements->GetNext()) {
      echo 
"<pre>"print_r($arElement); echo "</pre>";
   }

}
PROPERTY_U1 - U1 символьный код свойства
По прежнему не выводится ничего.
если я убираю $arResult["ID"], у меня выводится весь список МО
массив вида
Код

Array

(
    [
ID] => 2488
    
[~ID] => 2488
    
[NAME] =>  Детская консультация
    
[~NAME] =>  Детская консультация
    
[SORT] => 500
    
[~SORT] => 500
)
А у нас случайно получается нетак что:
Если $arResult["ID"] совпадает со значением ключа в массиве, например  [ID] => 2488, то выведет Детская консультация ?

Но мне не так нужно.
У элемента Детская консультация(МО)  есть свойство таблица, и там выбрана услуга на детальной странице, которой я и хочу вывести Детская консультация.
 
Цитата
Гость написал:
если я убираю $arResult["ID"], у меня выводится весь список МО
Таким образом вообще сортировка по данному свойству не работает, поэтому и выводится все.


Цитата
Гость написал:
А у нас случайно получается нетак что:
Если $arResult["ID"] совпадает со значением ключа в массиве, например  [ID] => 2488, то выведет Детская консультация ?

Но мне не так нужно.
У элемента Детская консультация(МО)  есть свойство таблица, и там выбрана услуга на детальной странице, которой я и хочу вывести Детская консультация.
Не уверен что я правильно понял, может вам не хватает просто вашей таблицы в ключе $arSelect, а может сортировка на работает, или IBLOCK_ID не от того инфоблока указан.
 
Сергей Эстрин, Мне как раз не хватает  таблицы со значениям  в массиве
Array(
   [ID] => 2488
   [~ID] => 2488
   [NAME] =>  Детская консультация
   [~NAME] =>  Детская консультация
   [SORT] => 500
   [~SORT] => 500
)

Как то можно сделать чтобы в этом массиве присуствовала эта таблица?
 
Цитата
Гость написал:
Сергей Эстрин  , Мне как раз не хватает  таблицы со значениям  в массиве
Array  (
   [ID] => 2488
   [~ID] => 2488
   [NAME] =>  Детская консультация
   [~NAME] =>  Детская консультация
   [SORT] => 500
   [~SORT] => 500
)

Как то можно сделать чтобы в этом массиве присуствовала эта таблица?

Насколько я понял, этот массив относиться к услугам, а свойство-таблица ведь у МО?
 
Сергей Эстрин, Верно!
 
В таком случае не получится?
 
Цитата
Гость написал:
В таком случае не получится?
Что именно не получится?
 
Сергей Эстрин, то как вы сказали не получается.
Свойство таблица у МО и в значении встречается услуга.
А на детальной странице услуги нужно вывести эту МО
 
я так понимаю с данным модулем такое не реально сделать? Или я не понятно обьяснил?
 
Вообще-то сорри, я запутался, что именно сделать нужно)
 
http://medrupor.ru/med-organizacii/ivanovskaya-oblast/2263/?sphrase_id=6360 - детальная элемента МО, у которого есть свойство таблицы, Акушерство и гинекология например.
В значении свойства Акушерство и гинекология, привязан элемент другого инфоблока, например Прием (осмотр, консультация) врача-акушера-гинеколога первичны.


На детальной странице услуги Прием (осмотр, консультация) врача-акушера-гинеколога первичны. нужно вывести МО в которой этот элемент привязан
http://medrupor.ru/patsientu/uslugi/detail.php?ID=29503 - детальная страница услуги.
Как это можно сделать?
 
вы мне поможете?  
 
Гость, извините, что не ответил раньше.
Если у вас возникают проблемы с выборкой через GPropertyTable::GetColumnFilter, вы можете воспользоваться событиями OnAfterIBlockElementAdd, OnAfterIBlockElementUpdate для копирования значения вашей привязки в отдельное свойства типа "Привязка к элементам инфоблока" (само свойство можно скрыть из формы при помощи соответствующей галочки в настройках свойства).
Страницы: 1
Ответить
Читают тему
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить картинки