Я присоеденюсь к вопросу топикстартера.
Хорошо, с галочкой понятно, это в документации. Но как быть, если интеграция проходит не через модуль обмена, а что-то самописное со стороны 1с? Тут информации не так уж и много.
Выход я нашел, но уж очень он не очевиден, и надеюсь мне подскажут более простой способ.
[B]Задача:[/B] дать инструкции 1С-нику по привязке к товару справочника, содержащего поля "Название" и "Изображение" и выгрузке этого самого справочника на сайт.
Очевидно, что если справочник содержит название, изображение и в перспективе другие поля, то это должен быть либо hl блок, либо инфоблок. Я решил пойти по пути более простому(сначала так показалось) и делать привязку к hl блоку. Посмотрел примеры выгрузки на сайте с документацией, и в [URL=https://dev.1c-bitrix.ru/api_help/sale/xml/import.php]import.xml[/URL] наше что нужно - свойство "Внешний" у импортируемого справочника. Но как оказалось, не все так просто. Из значений можно указать только XML_ID и NAME свойства внешнего справочника. А мне нужна еще и картинка, облом.
Подходим с другой стороны. У битрикса есть возможность импортировать справочники напрямую в hl блок, с любым набором значений и параметров. Структура файла импорта справочников описана в [URL=https://dev.1c-bitrix.ru/api_help/sale/xml/references.php]документации[/URL], а алгоритм импорта я нашел в этом [URL=http://bx-shef.by/blog/1c/primery-faylov-sinkhronizatsii-i-algoritm-ruchnoy-otladki-importa-iz-1s-v-internet-magazin-bitriks-u/]блоге[/URL], кстати там же есть почти рабочие примеры файлов импорта справочников. Тут все работает, только не понятно как привязывать этот справочник и его значения к товарам при синхронизации.
Объединяем оба варианта. С товарами мы выгружаем XML_ID и NAME значений справочников + создаем hl блок. Затем в созданный hl блок по его id загружаем полные значения справочника, с картинками, используя XML_ID значений выгруженных с товарами. И все бы хорошо, но меня беспокоят несколько моментов:
1. Дублирование информации в файлах import.xml и references.xml
2. Совершенно неадекватный способ задавать ID hl блока при создании его с импортом товаров. Приведу пример:[CODE]<Свойство>
<Ид>COLOR</Ид>
<Наименование>Цвет</Наименование>
<ТипЗначений>Справочник</ТипЗначений>
<Внешний>true</Внешний>
<ВариантыЗначений>
<Справочник>
<ИдЗначения>5431ec04-e7fc-11e4-ab78-00505683732b</ИдЗначения>
<Значение>Красный</Значение>
</Справочник>
</ВариантыЗначений>
</Свойство>
[/CODE]В итоге id вновь созданного hl блока будет равно транслитерированному "Цвет", т.е. TSVET. Получается что с более сложными названиями я должен буду заранее узнавать какая тарабарщина получится вместо id, чтобы указать этот в файле references.xml. Кроме того, от id TSVET из глаз текут кровавые слезы.
Я конечно подозреваю что оно и должно так работать, но...
[B]Вопрос: [/B]Можно ли все это упростить, оптимизировать или решить по другому?
Хорошо, с галочкой понятно, это в документации. Но как быть, если интеграция проходит не через модуль обмена, а что-то самописное со стороны 1с? Тут информации не так уж и много.
Выход я нашел, но уж очень он не очевиден, и надеюсь мне подскажут более простой способ.
[B]Задача:[/B] дать инструкции 1С-нику по привязке к товару справочника, содержащего поля "Название" и "Изображение" и выгрузке этого самого справочника на сайт.
Очевидно, что если справочник содержит название, изображение и в перспективе другие поля, то это должен быть либо hl блок, либо инфоблок. Я решил пойти по пути более простому(сначала так показалось) и делать привязку к hl блоку. Посмотрел примеры выгрузки на сайте с документацией, и в [URL=https://dev.1c-bitrix.ru/api_help/sale/xml/import.php]import.xml[/URL] наше что нужно - свойство "Внешний" у импортируемого справочника. Но как оказалось, не все так просто. Из значений можно указать только XML_ID и NAME свойства внешнего справочника. А мне нужна еще и картинка, облом.
Подходим с другой стороны. У битрикса есть возможность импортировать справочники напрямую в hl блок, с любым набором значений и параметров. Структура файла импорта справочников описана в [URL=https://dev.1c-bitrix.ru/api_help/sale/xml/references.php]документации[/URL], а алгоритм импорта я нашел в этом [URL=http://bx-shef.by/blog/1c/primery-faylov-sinkhronizatsii-i-algoritm-ruchnoy-otladki-importa-iz-1s-v-internet-magazin-bitriks-u/]блоге[/URL], кстати там же есть почти рабочие примеры файлов импорта справочников. Тут все работает, только не понятно как привязывать этот справочник и его значения к товарам при синхронизации.
Объединяем оба варианта. С товарами мы выгружаем XML_ID и NAME значений справочников + создаем hl блок. Затем в созданный hl блок по его id загружаем полные значения справочника, с картинками, используя XML_ID значений выгруженных с товарами. И все бы хорошо, но меня беспокоят несколько моментов:
1. Дублирование информации в файлах import.xml и references.xml
2. Совершенно неадекватный способ задавать ID hl блока при создании его с импортом товаров. Приведу пример:[CODE]<Свойство>
<Ид>COLOR</Ид>
<Наименование>Цвет</Наименование>
<ТипЗначений>Справочник</ТипЗначений>
<Внешний>true</Внешний>
<ВариантыЗначений>
<Справочник>
<ИдЗначения>5431ec04-e7fc-11e4-ab78-00505683732b</ИдЗначения>
<Значение>Красный</Значение>
</Справочник>
</ВариантыЗначений>
</Свойство>
[/CODE]В итоге id вновь созданного hl блока будет равно транслитерированному "Цвет", т.е. TSVET. Получается что с более сложными названиями я должен буду заранее узнавать какая тарабарщина получится вместо id, чтобы указать этот в файле references.xml. Кроме того, от id TSVET из глаз текут кровавые слезы.
Я конечно подозреваю что оно и должно так работать, но...
[B]Вопрос: [/B]Можно ли все это упростить, оптимизировать или решить по другому?