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

Умный фильтр.

00 голосов
8
Доброго всем вечера. Появилась следующая задача. Есть сайт на Битриксе, настроен обмен с 1С 8 УТ.
При обмене в Битриксе создается инфо-блок "Каталог товаров 1С". Все было здорово, до того, как я решил настроить фильтры. Проблема заключается в том,
что категорий товаров много, а инфо-блок один и свойства, которые я создаю, распрстраняются на все категории. Но у монитора свои характеристики, а у харда свои.
Вот у меня и появилась идея - завести все свойства и переделать стандартный компонент фильтр так, чтобы для конкретной категории отображались свойства данной категории
Т.е. для монитора в фильтре были только свойства которые соответствуют мониторам (диагональ, котрастность и т.д.), а для жестких дисков свои свойства.
Вот интересно, кто и как решал такую задачу? Спасибо.
спросил 30 Июль, 13 от Aypuka (340 баллов)

8 Ответы

00 голосов
Не реализовывал, но думаю, нужно делать как то так:
- делаем выборку по каждому разделу. Выбираем не пустые свойства. Список свойств кешируем, скажем на сутки-двое.
- используем список свойст для фильтра
Если не ошибаюсь (выборку не пустых вроде как делал) запрос на не пустые свойства как раз и вернет только список значащих свойств.
ответил 30 Июль, 13 от Cyber (540 баллов)
00 голосов
Как и предыдущий автор, исключением пустых свойств. В текущем разделе. Конкретнее группировкой.
ответил 27 Сен, 13 от BeCool (420 баллов)
00 голосов

Не нужно ничего переписывать.
Просто настроить. Вот есть хороший мануал: http://dev.1c-bitrix.ru/community/blogs/product_features/smart_filter.php

ответил 15 Ноя, 13 от sandra175 (140 баллов)
00 голосов
Евгений Смолин,
До этого я уже додумался, а не покажите свой запрос, как вы делали выборку не пустых свойств?
ответил 28 Дек, 13 от Aypuka (340 баллов)
00 голосов
Можно создать инфоблок "Фильтр" в в нем разделы. В доп. свойствах раздела привязка к разделу каталога. Внутри раздела елементы, которые в себе содержут набор свойств инфоблока в зависимости от привязки к каталогу ИнфоБлока.
ответил 13 Апр, 14 от LEDOKOL (740 баллов)
00 голосов
MyIE,
Ничего себе!!! Десять раз перечитал, но до конца не осознал. Звучит многообещающе. Вот только вопрос - насколько гибкая система получиться? Придется вручную учитывать изменения разделов и появления новых элементов?
ответил 06 Авг, 14 от Aypuka (340 баллов)
00 голосов
Нет, фильтр строится полностью сам на основе ИБ "Фильтр".
Вам необходимо:
- Создать ИБешку "Каталог товаров".
- Создать разделы.
- Добавить свойства ИБ.
- Добавить элементы в разделы ИБ "Каталог товаров".
----------------------------------------------------------------
- Создаем ИБ "Фильтр".
- Добавляем ему свойство (множестченно) "FILTER".
- В нем создаем раздел (дальше на примере) "Телевизоры".
- В доп. свойства раздела делаем привязку к разделу "Телевизоры" ИБешки "Каталог товаров".
- Добавляем в ИБ "Фильтр" -> "Телевизоры" елемент в котором в свойстве "FILTER" (созданном ранее для ИБ "Фильтр") добавляем свойства ИБ "Каталог товаров" (поле множественное).
----------------------------------------------------------------
Пишем компонент.
ответил 10 Дек, 14 от LEDOKOL (740 баллов)
00 голосов
Если честно, рассчитывал подкорректировать код исходного компонента catalog.filter и все. Сейчас буду ковырять.
ответил 01 Апр, 15 от Aypuka (340 баллов)

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

0 голосов
1 ответ
спросил 21 Сен, 15 от аноним
0 голосов
1 ответ
спросил 18 Сен, 15 от аноним