Создание свойств при обмене с 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)

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *