Столкнулся с проблемой. Имеются некоторые с-ва инфоблока, с установленными значениями "Вид в умном фильтре" = 'Флажки с картинками'. 'DISPLAY_TYPE'='G' Во время разработки сайта пришлось поменять вид с-ва в умном фильтре допустим на "Флажки с названиями и картинками" 'DISPLAY_TYPE'='H'. По идее в каталоге должен был изменится вывод данного с-ва в фильтре. НО НЕ ТУТ ТО БЫЛО! Стал разбираться откуда ноги растут. С-во в фильтр упорно приходит со значением 'DISPLAY_TYPE'='G'. В классе компонента оно тоже упорно приходит со значением 'DISPLAY_TYPE'='G'. Далее в классе компонента замечаю функцию
Код
public function getIBlockItems($IBLOCK_ID)
{
$items = array();
foreach(CIBlockSectionPropertyLink::GetArray($IBLOCK_ID, $this->SECTION_ID) as $PID => $arLink)
Собственно источник зла найден! CIBlockSectionPropertyLink::GetArray. Смотрим и видим, что функция выполняет 2 SQL запроса в базу откуда собственно и получает с-во DISPLAY_TYPE. В первом запросе без условия $SECTION_ID > 0 значение данного с-ва приходит с верным 'DISPLAY_TYPE'='H' Но во втором запросе оно уже 'DISPLAY_TYPE'='G'. Отсюда вывод, что в базе есть таблица с разделами где указаны данные РАЗДЕЛ, ИД СВОЙСТВА, ТИП. Так и есть вот эта таблица b_iblock_section_property Смотрим
Получается что при смене внешнего вида в умном фильтре не обновляются значения в это таблице. На некоторых разделах DISPLAY_TYPE не изменен. При редактировании раздела во вкладке СВОЙСТВА ЭЛЕМЕНТОВ есть форма для редактирования, в которой доступно изменение этих данных
Смысл этой фигни в том чтобы допустим в разных разделах показывать или не показывать с-ва с нужными значениями.
Опять таки если допустим я здесь меняю любое значение с-ва ПОЧЕМУ оно НЕ ПРИМЕНЯЕТСЯ к подразделам?
Почему нет возможности это делать для обычных свойств разделов а лишь для свойств торговых предложений?
КАКИМ БОКОМ ПОЛЬЗОВАТЕЛЬ БУДЕТ МЕНЯТЬ ЭТИ ДАННЫЕ ДОПУСТИМ ЕСЛИ У НЕГО 1000 РАЗДЕЛОВ!!!!!!!!!! * ***ТЬ!!!!!!!!!!!!!!!!!!!!