Я поковырял исходники, оказывается можно выгружать пользовательские поля в штатной выгрузке! Только об этом слова нигде не сказано
Чтобы выгрузить надо в файле import.xml добавить несколько тэгов.
У тэга "Классификатор" создать потомка с именем "СвойстваГрупп". В нем будут перечисления пользовательских полей, которые мы хотим привязать к разделам инфоблока.
Далее, для каждого свойства мы создаем тэг "Свойство" (а впрочем не важно как, битриксу не принципиально, он на это имя не обращает внимания)
В тэге "Свойство" (или как вы там его назвали в пред. шаге) создаем:
Ид - xml ид свойства. может быть любым набором букв и цифр. по нему мы будет привязывать значения далее
Наименование - Код поля. Должно начинаться с UF_
Сортировка - индекс сортировки.
Множественное - множественное ли свойство. true - да, отличное от true - нет
БитриксТипСвойства - тип свойства. Тип любой допустимый для создания пользовательского поля. К примеру string - строка. Можно даже список
БитриксОбязательное - обязательное ли поле. true - да, отличное от true - нет
БитриксФильтрРазрешен - показывать в фильтре списка. Тут чуть не доработано у них. Значение принимает true или отличное от него. Но на практике значение должно принимать одно из 4-х значений. Так что смысла это использовать пока нету... (По крайне мере в версии 17.5.10)
БитриксПоказыватьВСписке - показывать ли в списке. true - да, отличное от true - нет
БитриксРедактироватьВСписке - разрешать редактирование пользователем. true - да, отличное от true - нет
БитриксПоискРазрешен - Значения поля участвуют в поиске. true - да, отличное от true - нет.
БитриксНастройки - дополнительные настройки в зависимости от типа. Должен быть сериализованный массив. Например для строки можно задать дефолтное значение и, например, сколько строк будет занимать поле ввода
Код
a:2:{s:13:"DEFAULT_VALUE";s:47:"Мое значение по умолчанию";s:4:"ROWS";s:97:"Сколько строк будет занимать поле. Должна быть цифра.";}
Таким образом мы задали пользовательские свойства для разделов.
Чтобы указать значения свойств для групп, то нужно:
в тэге "Группа" создать потомка "ЗначенияСвойств"
В "ЗначенияСвойств" для каждого свойства, которое хотим заполнить создаем тэг ЗначениеСвойства
В тэге ЗначениеСвойства создаем потомков:
Ид - xml ид свойства к которому привязываем значение
Значение - значение свойства. Если множественное, то указываем этот тэг столько раз сколько хотим значений.
Мой небольшой пример:
Код
<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация>
<Классификатор>
.......
<СвойстваГрупп>
<Свойство>
<Ид>1111111111111111</Ид>
<Наименование>UF_STRING_TEST</Наименование>
<Сортировка>400</Сортировка>
<Множественное>true</Множественное>
<БитриксТипСвойства>string</БитриксТипСвойства>
</Свойство>
</СвойстваГрупп>
<Группы>
<Группа>
<Ид>12f59ecf-04d3-11df-a8c9-0024541c1ad9</Ид>
<Наименование>222</Наименование>
<Группы/>
<ЗначенияСвойств>
<ЗначениеСвойства>
<Ид>1111111111111111</Ид>
<!-- если свойство множественное, то надо указывать значения так. если не множественное, то достаточно одного тэга -->
<Значение>тест1</Значение>
<Значение>тест2</Значение>
</ЗначениеСвойства>
</ЗначенияСвойств>
</Группа>
.................
</Группы>
..........
</Классификатор>
</КоммерческаяИнформация>
PS. Так же есть возможность привязывать определенный свойства к определенный разделам. но я в этом еще не разбирался, но это МОЖНО ДЕЛАТЬ!!
Евгений Наумов написал: Я поковырял исходники, оказывается можно выгружать пользовательские поля в штатной выгрузке! Только об этом слова нигде не сказано
Чтобы выгрузить надо в файле import.xml добавить несколько тэгов. У тэга " Классификатор " создать потомка с именем " СвойстваГрупп ". В нем будут перечисления пользовательских полей, которые мы хотим привязать к разделам инфоблока. Далее, для каждого свойства мы создаем тэг " Свойство " (а впрочем не важно как, битриксу не принципиально, он на это имя не обращает внимания) В тэге " Свойство " (или как вы там его назвали в пред. шаге) создаем: Ид - xml ид свойства. может быть любым набором букв и цифр. по нему мы будет привязывать значения далее Наименование - Код поля. Должно начинаться с UF_ Сортировка - индекс сортировки. Множественное - множественное ли свойство. true - да, отличное от true - нет БитриксТипСвойства - тип свойства. Тип любой допустимый для создания пользовательского поля. К примеру string - строка. Можно даже список БитриксОбязательное - обязательное ли поле. true - да, отличное от true - нет БитриксФильтрРазрешен - показывать в фильтре списка. Тут чуть не доработано у них. Значение принимает true или отличное от него. Но на практике значение должно принимать одно из 4-х значений. Так что смысла это использовать пока нету... (По крайне мере в версии 17.5.10) БитриксПоказыватьВСписке - показывать ли в списке. true - да, отличное от true - нет БитриксРедактироватьВСписке - разрешать редактирование пользователем. true - да, отличное от true - нет БитриксПоискРазрешен - Значения поля участвуют в поиске. true - да, отличное от true - нет. БитриксНастройки - дополнительные настройки в зависимости от типа. Должен быть сериализованный массив. Например для строки можно задать дефолтное значение и, например, сколько строк будет занимать поле ввода
Код
a :2 : { s : 13 : "DEFAULT_VALUE" ; s : 47 : "Мое значение по умолчанию" ; s : 4 : "ROWS" ; s : 97 : "Сколько строк будет занимать поле. Должна быть цифра." ; }
Таким образом мы задали пользовательские свойства для разделов.
Чтобы указать значения свойств для групп, то нужно: в тэге " Группа " создать потомка " ЗначенияСвойств " В " ЗначенияСвойств " для каждого свойства, которое хотим заполнить создаем тэг ЗначениеСвойства В тэге ЗначениеСвойства создаем потомков: Ид - xml ид свойства к которому привязываем значение Значение - значение свойства. Если множественное, то указываем этот тэг столько раз сколько хотим значений. Мой небольшой пример:
Код
<?xml version="1.0" encoding="UTF-8"?>
< КоммерческаяИнформация >
< Классификатор >
.......
< СвойстваГрупп >
< Свойство >
< Ид > 1111111111111111 </ Ид >
< Наименование > UF_STRING_TEST </ Наименование >
< Сортировка > 400 </ Сортировка >
< Множественное > true </ Множественное >
< БитриксТипСвойства > string </ БитриксТипСвойства >
</ Свойство >
</ СвойстваГрупп >
< Группы >
< Группа >
< Ид > 12f59ecf-04d3-11df-a8c9-0024541c1ad9 </ Ид >
< Наименование > 222 </ Наименование >
< Группы />
< ЗначенияСвойств >
< ЗначениеСвойства >
< Ид > 1111111111111111 </ Ид >
<!-- если свойство множественное, то надо указывать значения так. если не множественное, то достаточно одного тэга -->
< Значение > тест1 </ Значение >
< Значение > тест2 </ Значение >
</ ЗначениеСвойства >
</ ЗначенияСвойств >
</ Группа >
.................
</ Группы >
..........
</ Классификатор >
</ КоммерческаяИнформация >
PS. Так же есть возможность привязывать определенный свойства к определенный разделам. но я в этом еще не разбирался, но это МОЖНО ДЕЛАТЬ!!