В ходе работы появилась проблема с привязкой к разделам. Что имеем: Инфоблок "Товары". Свойство инфоблока привязка к разделам. Проблема: Нельзя выбрать этот же инфоблок. Зачем выбирать У нас функция сопутствующие товары - инфоблок тот же. Необходимо, чтобы показывалось "С этими дрелями покупают свёрла и отвёртки". Как пытались решить Привязались к другому инфоблоку, затем в БД изменили идентификатор на нужный. Что получилось При заполнение данных товара показывается нужное свойство - все разделы текущего инфоблока. Можно выбирать. Но! После сохранения и вновь открытия товара в характеристике Раздел (к которой принадлежит товар), добавились все разделы из свойства привязки. Вопрос Как можно привязаться к разделам текущего инфоблока без каких-либо ошибок?
Простого решения я не вижу. Дело в том, что привязка элемента к разделам хранится в базе точно так же, как и свойство типа "Привязка к разделам". Поэтому в свойстве типа "Привязка к разделам" нельзя задать собственный инфоблок.
Пять лет прошло, может кому то поможет, сам запарился пока искал. Стандартный метод спутывал элементы с разделами. Написал свое короткое пользовательское свойство. Мне просто нужна была ссылка на любой раздел любого ИБ (даже своего) чтобы подтянуть в шаблоне соответствующую ссылку и вывести ее. По сути оно хранит число, но дает удобный интерфейс для выбора. и работает в множественном режиме. Вставляете этот код (или инклудите) в bitrix/php_interface/init.php и в списке типов свойств ИБ появляется "Ссылка на раздел":
Сгенерировать его единожды без атрибута selected. А selected добавлять в каждом вызове в последний момент через
Код
preg_replace
Это сократит прилично ресурсов для множественных свойств, ведь сейчас для каждого элемента поднимаются по 2 запроса к БД перебирающих все данные в таблицах.
ОФФТОП: Может кто-нибудь поможет мне с этой темой на форуме?
Анатолий Ветринцев написал: Пять лет прошло, может кому то поможет, сам запарился пока искал. Стандартный метод спутывал элементы с разделами. Написал свое короткое пользовательское свойство. Мне просто нужна была ссылка на любой раздел любого ИБ (даже своего) чтобы подтянуть в шаблоне соответствующую ссылку и вывести ее. По сути оно хранит число, но дает удобный интерфейс для выбора. и работает в множественном режиме. Вставляете этот код (или инклудите) в bitrix/php_interface/init.php и в списке типов свойств ИБ появляется "Ссылка на раздел" :
Код
AddEventHandler("iblock", "OnIBlockPropertyBuildList", array("CUserTypeSectionLink", "GetUserTypeDescription"));
class CUserTypeSectionLink
{ ....
Спасибо огромное, годы идут, пользователи сами прокачивают битрикс, предложу свой вариант данного кода, удобная иерархия разделов в списке четыре уровня вложенности если у вас больше уровней можно добавлять хоть до бесконечности, если меньше то лишний можно убрать:
Цитата
public function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName) {
Здравствуйте. Подскажите как такое может быть. Есть товары. Когда они были добавлены была указана привязка к определенным разделам каталога - всё в порядке они привязались к нужным разделам. Но сейчас пытаюсь и в ручную и через "Массовую обработку" изменить привязку к разделам - ничего не получается. Через массовую обработку вообще ничего не изменяется, а вручную можно только убрать привязку вообще, а при попытке выбрать нужные разделы после сохранения у товара "возвращаются" первоначальные привязки к разделам.