Свойство ИБ типа "Справочник", как сделать чтобы в значение этого свойства у торгового предложения попадал ID элемента справочника (HL блока) а не XML_ID
Свойство ИБ типа "Справочник", как сделать чтобы в значение этого свойства у торгового предложения попадал ID элемента справочника (HL блока) а не XML_ID
Добрый день! Как вы навернякак уже знаете теперь отбор торговых предложений может осуществляться только по свойствам типа "Список" и/или "Справочник". На своём проекте я решил использовать "Справочник" (т.е. через HL инфоблоки) т.к. делаю магазин одежды и HL-блоки лучше подходят для описания такого свойства как цвет например (картинку можно прогрузить и т.п.).
Создал справочник colors забил несколько цветов (имя и XML_ID), забил несколько товаров с ТП в каталог и к своему удивлению обнаружил что у ТП в значении свойства цвет указан XML_ID элемента HL-блока colors (т.е. ТSVET > VALUE > 5842427a928987696cb1718982ead3d4 ) а не ID элемента справочника как я предполагал. При попытке создать собственный тип свойства ИБ (так сказать кастомизированный справочник) чтобы значение свойства торгового предложения ТSVET было равно 187 т.е. "синий" цвет (с ID равным 187) http://joxi.ru/lJ2bPekS4GgXr6 , столкнулся с пролемой. В настройках каталога нельзя выбрать свойства моего типа для отбора торговых предложений http://joxi.ru/K823lOqh6DaPAO .
Думаю что можно как-то заставить битрикс либо связывать элементы HL-блока (справочника) с торговыми предложениями по ID а не по XML_ID либо есть возможность разрешить использовать пользовательские типы свойств для отбора торговых предложений в каталоге. Но я пока не знаю как. Может кто сталкивался, подкажите!
где 43 - ID свойства "Цвет" (тип свойства "Справочник" ) инфоблока торговых предлоений а 228 - ID элемента HL-Инфоблока Productcolors. Но если рассмотреть одно из торговых предложений, а в частности значение его свойства "Цвет" там будет следующее
Код
[VALUE] => cea0465910a359143959048008666c57
где cea0465910a359143959048008666c57 - UF_XML_ID элемента HL-Инфоблока Productcolors с ID равным 228. Я думал на основе данных свойств торговых предложений строить интерфейс выбора параметров торговых предложений, грубый пример в виде выпадающего списка. В значениях элементов списка фигурировали бы ID элементов HL-Инфоблока, а при выборе пользователем значения я бы считывал этот ID и отсекалбы лишьние ТП проходя по полю TREE и когда осталось бы одно получал бы его BUY_URL и подставлял в кнопку купить . Т.к. вместо ID там UF_XML_ID (а UF_XML_ID не проверяется битриксом на уникальность) может получится что при отборе элементов из HL инфоблока может получится что UF_XML_ID - не уникально.
Но пока писал ответ, понял что проблемы тут вобщем то и нет, мне хоть так хоть так запрашивать значения (UF_NAME, ID) из HL-инфоблоков чтобы построить этот интерфейс, а уникальности можно добиться другим путём, всёравно UF_XML_ID проставлет init.php при заливке данных из 1С, а там можно что-нибудь придумать.