Создание свойств при обмене с 1С
При стандартном обмене 1С и 1С-Битрикс возможно мы никогда и не столкнемся с такой проблемой, но, в моей практике, стандартный обмен практически не встречался, а если вы попали на эту страничку, то скорее всего и в вашей жизни попался не стандартный обмен.
Проблема была в следующем, заказчик решил выгрузить новые свойства из своей 1С и увидел, что у свойств, символьный код создается латиницей от наименования (ниже пример выгрузки, на основе официальной документации)
<Свойство> <Ид>TEST_PROP</Ид> <НомерВерсии>001</НомерВерсии> <ПометкаУдаления>false</ПометкаУдаления> <Наименование>тестовое свойство</Наименование> <Внешний>false</Внешний> <ТипЗначений>Число</ТипЗначений> </Свойство>
Свойство при этом создавалось с символьным кодом testovoe_svoystvo. Что было совсем не интуитивно понятно, ожидалось, что символьный код будет как указано в ИД: TEST_PROP.
После небольших копаний ядра обмена, было выяснено, что у свойств в битрикс, есть два поля с кодом: CODE и XML_ID. Вот как раз XML_ID заполнялся выгрузкой из поля ИД, а чтобы создать необходимый символьный код, то необходимо передать дополнительную строку из 1С, которая называется БитриксКод, в итоге, описание свойства должно выглядеть так:
<Свойство> <Ид>TEST_PROP</Ид> <НомерВерсии>001</НомерВерсии> <БитриксКод>TEST_PROP_TEST</БитриксКод> <ПометкаУдаления>false</ПометкаУдаления> <Наименование>тестовое свойство</Наименование> <Внешний>false</Внешний> <ТипЗначений>Число</ТипЗначений> </Свойство>
Если мы из 1С передадим на сайт такое описание свойства, то получим символьный код TEST_PROP_TEST, а XML_ID Будет равно TEST_PROP. Так что, они не обязательно должны быть идентичными, но я бы очень рекомендовал оба эти поля делать одинаковыми, чтобы потом не поймать глюков и все было предсказуемо, т.к. дальнейшее сопоставление свойства сайта и 1с производится именно по внешнему коду (XML_ID)