Добрый день!
Подскажите, пожалуйста, что не усмотрел. Суть задачи - после выгрузки из 1С склеить три свойства в одно множественное типа "список" для фильтрации в публичной части сайта.
Как решилось - по окончанию выгрузки запускаю обработчик, в котором получаю значения этих трех свойств, сравниваю эти значения с уже имеющимися в итоговом свойстве, если таковых нет - добавляю новые и формирую массив id-шников для установки значений. Запись происходит следующим методом:
[CODE]\CIBlockElement::SetPropertyValuesEx($arElement["ID"], $arElement["IBLOCK_ID"], array("KALIBR_FOR_SITE" => $arNewPropID));[/CODE]Т.е. склейка проходит корректно, при редактировании элемента в административной части видно, что значения данного свойства успешно добавлены и установлены. НО!!! В публичной части в умном фильтре они не появляются! Сброс кеша через админку не помогает.
Есть занимательная особенность, что если после склейки зайти в редактирование элемента и нажать кнопку сохранить/применить (ничего не меняя), то значения свойства конкретно этого элемента сразу появляются и в умном фильтре, даже без сброса кеша.
Подозреваю, что может решить проблему использование CIBlockElement::Update(), но не хотелось бы, потому что это весьма ресурсоемко и нужно заморачиваться с сохранением других свойств.
Может кто подскажет, как решить этот вопрос програмно? Возможно какой-то дополнительный кеш нужно сбросить в базе? Заранее благодарен.