Из 1С передаются числовые значения свойства, например для свойства с именем "Объем жесткого диска (Гб)" - "1000". Я считал, что передавать значения таких свойств в виде чисел правильней, чем в виде значения классификатора "1000 Гб", во первых потому что база растет из за них, а во вторых в умном фильтре удобней пользоваться именно числами. Добравшись до разработки экспорта в Яндекс маркет, только лишь в этом убедился, ибо Янедексу тоже нравится цифровое значение и описание этого значения.
Так вот, при такой реализации в карточке товара значения свойств отображаются криво, то есть так:
Объем жесткого диска (Гб): 1000
а должно быть так:
Объем жесткого диска: 1000 Гб
Первое время делал парсинг регекспом и перекидывал то, что в кавычках на место после самого значения, но во-первых так нужно делать не всем свойствам, а во-вторых не всегда это подходит.
Сегодня подумал, что для этого можно использовать комментарий в настройках свойства. Записал туда значение, вывел его в карточке товара - отлично. Теперь надо что-бы в умном фильтре название для числового свойства менялось с "Объем жесткого диска" на "Объем жестокого диска (Гб)" и тут обнаружил, что параметр "HINT" для свойств туда не передается... Ну думаю, велика беда, сделаю запрос в базу и выдерну оттуда этот параметр для всех свойств, присутствующих в $arResult. Тут тоже стопор - оказывается метод CIBlockElement::GetList не умеет фильтровать по массиву идентификаторов
. Ладно, можно отфильтровать по заполненному комментарию - тоже "борода", это невозможно. Остается перебирать либо все свойства вообще (а у меня их тысячи), либо для каждого свойства присутствующего в $arResult делать отдельный запрос в базу. Ну это же костыли...
Как все-таки можно реализовать задуманное правильно и красиво???
Так вот, при такой реализации в карточке товара значения свойств отображаются криво, то есть так:
Объем жесткого диска (Гб): 1000
а должно быть так:
Объем жесткого диска: 1000 Гб
Первое время делал парсинг регекспом и перекидывал то, что в кавычках на место после самого значения, но во-первых так нужно делать не всем свойствам, а во-вторых не всегда это подходит.
Сегодня подумал, что для этого можно использовать комментарий в настройках свойства. Записал туда значение, вывел его в карточке товара - отлично. Теперь надо что-бы в умном фильтре название для числового свойства менялось с "Объем жесткого диска" на "Объем жестокого диска (Гб)" и тут обнаружил, что параметр "HINT" для свойств туда не передается... Ну думаю, велика беда, сделаю запрос в базу и выдерну оттуда этот параметр для всех свойств, присутствующих в $arResult. Тут тоже стопор - оказывается метод CIBlockElement::GetList не умеет фильтровать по массиву идентификаторов

Как все-таки можно реализовать задуманное правильно и красиво???