Процедура ЗаполнитьСписокЗначенийРеквизитовТовара(СтруктураИзменений, СписокЗначенийCML, Товар, КаталогНаДиске, ВыгруженоКартинок)
Если Товар.НоменклатураСсылка.Родитель <> Справочники.Номенклатура.ПустаяСсылка() Тогда
ИдГруппы = СформироватьИдентификаторТовара(Товар.НоменклатураСсылка.Родитель);
ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "Группы");
ДобавитьУзелCML(СписокЗначенийCML , "Ид", ИдГруппы);
ДобавитьКонецЭлементаCML(СписокЗначенийCML);
КонецЕсли;
ДобавитьУзелCML(СписокЗначенийCML, "Описание", Товар.НоменклатураСсылка.ДополнительноеОписаниеНоменклатуры);
Если ВыгружатьКартинки Тогда
Если ЗначениеЗаполнено(Товар.НоменклатураСсылка.ОсновноеИзображение) Тогда
Если ВыгружатьТолькоИзменения Тогда
ВыгрузитьДаннуюКартинку = (СтруктураИзменений.Картинки.Найти(Товар.НоменклатураСсылка.ОсновноеИзображение) <> Неопределено);
Иначе
ВыгрузитьДаннуюКартинку = Истина;
КонецЕсли;
Если ВыгрузитьДаннуюКартинку Тогда
СтруктураДанныхКартинки = ВыгрузитьКартинку(Товар.НоменклатураСсылка, КаталогНаДиске);
Если СтруктураДанныхКартинки.Размер <> "0" Тогда
ДобавитьУзелCML(СписокЗначенийCML, "Картинка", СтруктураДанныхКартинки.Адрес);
ВыгруженоКартинок = ВыгруженоКартинок + 1;
КонецЕсли;
КонецЕсли;
Иначе
// картинки нет вообще
ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "Картинка");
ДобавитьКонецЭлементаCML(СписокЗначенийCML);
КонецЕсли;
КонецЕсли;
СписокЗначенийСвойств = Новый СписокЗначений;
Для Каждого СтрокаХарактеристикаСвойство Из Товар.Строки Цикл
Для Каждого СтрокаСвойствоНоменклатуры Из СтрокаХарактеристикаСвойство.Строки Цикл
Если ЗначениеЗаполнено(СтрокаСвойствоНоменклатуры.СвойствоНоменклатуры)
И СписокЗначенийСвойств.НайтиПоЗначению(СтрокаСвойствоНоменклатуры.СвойствоНоменклатуры) = Неопределено Тогда
СписокЗначенийСвойств.Добавить(СтрокаСвойствоНоменклатуры.СвойствоНоменклатуры, Строка(СтрокаСвойствоНоменклатуры.СвойствоНоменклатурыЗначение));
КонецЕсли;
КонецЦикла;
КонецЦикла;
Если СписокЗначенийСвойств.Количество() > 0 Тогда
ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "ЗначенияСвойств");
Для Каждого ЗначениеСвойства Из СписокЗначенийСвойств Цикл
ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "ЗначенияСвойства");
Ид = Строка(ЗначениеСвойства.Значение.УникальныйИдентификатор());
ДобавитьУзелCML(СписокЗначенийCML, "Ид", Ид);
ДобавитьУзелCML(СписокЗначенийCML, "Значение", ЗначениеСвойства.Представление);
ДобавитьКонецЭлементаCML(СписокЗначенийCML);
КонецЦикла;
ДобавитьКонецЭлементаCML(СписокЗначенийCML);
КонецЕсли;
Если Товар.НоменклатураСсылка.СтавкаНДС <> Перечисления.СтавкиНДС.БезНДС Тогда
ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "СтавкиНалогов");
ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "СтавкаНалога");
ДобавитьУзелCML(СписокЗначенийCML, "Наименование", НаименованиеНалога);
ДобавитьУзелCML(СписокЗначенийCML, "Ставка" , ПолучитьПоСтавкеНДСЗначениеДляВыгрузки(Товар.НоменклатураСсылка.СтавкаНДС));
ДобавитьКонецЭлементаCML(СписокЗначенийCML);
ДобавитьКонецЭлементаCML(СписокЗначенийCML);
КонецЕсли;
ЗаписанЗаголовокВыгрузкиХарактеристик = Ложь;
Если Товар.НоменклатураСсылка.ВестиУчетПоХарактеристикам
И ЗначениеЗаполнено(Товар.ХарактеристикаСсылка) Тогда
Для Каждого СтрокаХарактеристикаСвойство Из Товар.Строки Цикл
Если Не ЗначениеЗаполнено(СтрокаХарактеристикаСвойство.ХарактеристикаЗначениеСвойства)
ИЛИ НЕ ЗначениеЗаполнено(ФорматНаименованияДляCML(СтрокаХарактеристикаСвойство.ХарактеристикаСвойство)) Тогда
Продолжить;
КонецЕсли;
Если НЕ ЗаписанЗаголовокВыгрузкиХарактеристик Тогда
ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "ХарактеристикиТовара");
ЗаписанЗаголовокВыгрузкиХарактеристик = Истина;
КонецЕсли;
ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "ХарактеристикаТовара");
ДобавитьУзелCML(СписокЗначенийCML, "Наименование", ФорматНаименованияДляCML(СтрокаХарактеристикаСвойство.ХарактеристикаСвойство));
ДобавитьУзелCML(СписокЗначенийCML, "Значение" , СтрокаХарактеристикаСвойство.ХарактеристикаЗначениеСвойства);
ДобавитьКонецЭлементаCML(СписокЗначенийCML);
КонецЦикла;
Если ЗаписанЗаголовокВыгрузкиХарактеристик Тогда
ДобавитьКонецЭлементаCML(СписокЗначенийCML);
КонецЕсли;
КонецЕсли;
// мой код
ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "ХарактеристикаТовара");
ДобавитьУзелCML(СписокЗначенийCML, "Наименование", ФорматНаименованияДляCML("Описание товара"));
ДобавитьУзелCML(СписокЗначенийCML, "Значение" , Товар.НоменклатураСсылка.Комментарий);
ДобавитьКонецЭлементаCML(СписокЗначенийCML);
ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "ЗначенияРеквизитов");
ДобавитьЗначениеРеквизитаВСписок(СписокЗначенийCML, "ВидНоменклатуры", Товар.ВидНоменклатуры);
ДобавитьЗначениеРеквизитаВСписок(СписокЗначенийCML, "ТипНоменклатуры", Товар.ТипНоменклатуры);
ДобавитьЗначениеРеквизитаВСписок(СписокЗначенийCML, "Полное наименование", Товар.НоменклатураСсылка.НаименованиеПолное);
Если ЗначениеЗаполнено(Товар.НоменклатураСсылка.ЕдиницаХраненияОстатков) Тогда
// передадим вес товара
ДобавитьЗначениеРеквизитаВСписок(СписокЗначенийCML, "Вес", мКоэффициентПересчетаВесаТоваровВГраммыДляОбменаССайтом * Товар.НоменклатураСсылка.ЕдиницаХраненияОстатков.Вес);
КонецЕсли;
ДобавитьКонецЭлементаCML(СписокЗначенийCML);
СтатусУдаления = "";
Если Товар.НоменклатураСсылка.ПометкаУдаления
ИЛИ Товар.ХарактеристикаСсылка.ПометкаУдаления Тогда
СтатусУдаления = "Удален";
КонецЕсли;
ДобавитьУзелCML(СписокЗначенийCML, "Статус", СтатусУдаления);
КонецПроцедуры
|