1. Добавить в схему возможность выгрузки значений множественного свойства.
2. Указать, что свойство множественное в классификаторе
1 2 3 4 5 6 7 8 |
XDTOСвойство = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOСвойствоТип); XDTOСвойство.Ид = XMLСтрока(ТекСвойство.Идентификатор); XDTOСвойство.НомерВерсии = Б_ОбщиеПроцедурыИФункцииОбменаССайтом.ПолучитьВерсиюОбъекта(ПараметрыОбмена, ТекСвойство.ВерсияДанных, "Свойств"); XDTOСвойство.ПометкаУдаления = XMLСтрока(ТекСвойство.ПометкаУдаления); XDTOСвойство.Наименование = Лев(ТекСвойство.СвойствоНаименование, 250); //mike(b) множественные XDTOСвойство.Множественное = КастомныеПроцедурыСервер.ЭтоМножественноеСвойство(ТекСвойство.СвойствоНоменклатуры); //mike(е) множественные |
3. Выгрузить свойства как множественные
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
ВыборкаСвойств = Выборка.Выбрать(); XDTOЗначенияСвойств = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOЗначенияСвойствТип); Пока ВыборкаСвойств.Следующий() Цикл Если НЕ КастомныеПроцедурыСервер.ЭтоМножественноеСвойство(ВыборкаСвойств.ИдентификаторСвойства) Тогда //Штатный механизм XDTOЗначенияСвойства = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOЗначенияСвойстваТип); XDTOЗначенияСвойства.Ид = XMLСтрока(ВыборкаСвойств.ИдентификаторСвойства); XDTOЗначенияСвойства.Значение.Добавить(XMLСтрока(ВыборкаСвойств.ИдентификаторЗначения)); XDTOЗначенияСвойств.ЗначенияСвойства.Добавить(XDTOЗначенияСвойства); иначе //mike (b) Выгрузка множественного свойства XDTOЗначенияСвойства = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOЗначенияСвойстваТип); XDTOЗначенияСвойства.Ид = XMLСтрока(ВыборкаСвойств.ИдентификаторСвойства); ЗначенияЭлемента = КастомныеПроцедурыСервер.ПолучитьСписокЗначенийМножественногоСвойства(ВыборкаНоменклатуры.Номенклатура,ВыборкаСвойств.ИдентификаторСвойства); Для каждого Значение из ЗначенияЭлемента Цикл ЗначениеСвойства = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOЗначенияСвойстваТип.Свойства.Получить("ЗначениеСвойства").Тип); ЗначениеСвойства.Значение = XMLСтрока(Значение); XDTOЗначенияСвойства.ЗначениеСвойства.Добавить(ЗначениеСвойства); КонецЦикла; XDTOЗначенияСвойств.ЗначенияСвойства.Добавить(XDTOЗначенияСвойства); КонецЕсли; КонецЦикла; Владелец.ЗначенияСвойств = XDTOЗначенияСвойств; |