делайте на умном филтре. Делается торговый каталог, в нем иерархия от марки машины .... все что получилось заталкиваете в свойства для фильтрации и все будет ок. Единственный момент если будете делать интеграцию с 1С то начните все делать в самой 1С сначала структура потом товар в каждую структура и выгрузка из 1С в битрикс. У вас получится автоматом созданные значения в каталоге, а дальше несколько часов тыкать на галочки для фильтра и будет рабочий вариант который можно докручивать. Для Ато темы рекомендую УТ 11 на платформе 8.3. с мускуль базой держит 12 тыс позиций, работает хорошо все удобно.
В общем каталог сделали (тут на форуме обратился), но сдается мне, что ну отвратительно (не нравится мне такой подход). Жестокое дублирование разделов. Суть в следующем: 1. Инфоблок со структурой разделов автозапчастей (Двигатель -> Коленвал, головка и пр..). 2. Инфоблок с запчастями со структурой Макрка авто -> Модель авто -> и тут при создании Модели авто, если поставить галочку (чекбокс) создаются разделы из п.1
Вот эта вся затея с созданием/копированием структуры очень печально выглядит. Проц. грузит на 100%. Ну соответственно на сайте сейчас почти 9000 разделов, а товара добавили около 200шт. Пиз..ц полный.
Отсюда вопрос: кто как такой каталог реализовывал. Лучше с примерами или готов переделать это чудо.
Дмитрий, тупость в проектировании базы изначально нельзя оптимизировать. Вам написан ответ на одном из форумов (не битрикс... а другом), надо менять организацию данных в инфоблоках, а не плодить одни и те же сущности..
Полностью согласен с Вами. Вот и ищу исполнителя, т.к. такого рода задачи сам не решал. А те кто это нагородил не отвечают в своей теме и в скайпе молчат. Кстати вот их тема http://dev.1c-bitrix.ru/community/forums/forum14/topic17299/ на форуме (автор: Антон Бардиян). Какие то ну очень безответственные.
В приведенном коде, как минимум, смущает, что у вас каждый раз на каждом хите подключаются модули catalog и iblock Второе: если отсортировать по LEFT_MARGIN можно добавить за один цикл все уровни. А тут разделено на три уровня, да еще со вложенными циклами... бррр.
Да и вообще не очень понял зачем это копирование структуры. Но тут уже надо вдуматься в задачу.
Александр Воробьев написал: В приведенном коде, как минимум, смущает, что у вас каждый раз на каждом хите подключаются модули catalog и iblock Второе: если отсортировать по LEFT_MARGIN можно добавить за один цикл все уровни. А тут разделено на три уровня, да еще со вложенными циклами... бррр.
Да и вообще не очень понял зачем это копирование структуры. Но тут уже надо вдуматься в задачу.
Да я тоже сначала не посмотрел, что так реализовано. Вот и думаю как теперь это дело все поправить. Или переделывать все или хотябы оптимизировать то что есть (не хотелось бы), т.к. грузит сервак на полную это все 2GB RAM. Если кто то готов взятся, то с радостью выслушаю предложения.
И кстати, вот этот код вызывает сомнения в целесообразности: Я может не вижу подвоха, но мне кажется автор тут поучает значения, которые есть в $arFields. т.е. весь этот код сводится к $arRes = $arFields
Кроме того. Этот метод должен выполняться при добавлении в ИБ с ИД = 10. А тут запрос (из кода, что я процитировал) выполняется при добавлении раздела в любой ИБ. Единственное,что спасает - присутствие в фильтре значения из первичного ключа (да и то, стоит последним в фильтре - остается надеяться что сервер план правильно построит - хотя в большинстве случаев, думаю, так и происходит. но, тем не менее - лишний запрос)
"получаем список разделов эталона запчастяй" - это вообще имеет смысл кешировать