Xml 1С8

  • Автор темы ech
  • Дата начала
E
#1
помогите с выгрузкой прайс листа в хмл 1С 8.1. УТ.
Может кто делал уже??
 

unknown181538

НеГуру
28.12.2008
1 417
0
#2
В типовой УТ есть выгрузка в формате CommerceML.
Вот код для выгрузки всей номенклатуры:
[codebox] Каталог="C:\Temp";
ИмяФайла=Каталог+?(Прав(Каталог,1)="\","","\")+"sklad.xml";
ЗаписьХМЛ=Новый ЗаписьXML;
ЗаписьХМЛ.ОткрытьФайл(ИмяФайла);
ЗаписьХМЛ.ЗаписатьОбъявлениеXML();
Выборка = Справочники.Номенклатура.Выбрать();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("Root");
Пока Выборка.Следующий() Цикл
ЗаписатьXML(ЗаписьХМЛ,Выборка.ПолучитьОбъект());
КонецЦикла;
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.Закрыть();
[/codebox]
Вам же, наверное, нужно выгружать отдельные реквизиты.
 
E
#3
Спасибо! Но как мне сделать чтобы выгружались отдельные реквизиты, например, меня интересует
Наименование
Категория
Производитель
колво на складе
цена
 
E
#4
Пока Выборка.Следующий() Цикл
Объект = Выборка.ПолучитьОбъект();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("item");
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("id");
ЗаписьХМЛ.ЗаписатьТекст(Объект.Наименование);
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("category");
ЗаписьХМЛ.ЗаписатьТекст(Объект.Артикул);
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("vendor");
ЗаписьХМЛ.ЗаписатьТекст(Объект.СтранаПроисхождения);
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
КонецЦикла;

Сделал так, на "Объект.Наименование" не ругаеться, а на Артикул и СтрануПроисхождения ошибка
{Форма.Форма(68)}: Ошибка при вызове метода контекста (ЗаписатьТекст): Несоответствие типов (параметр номер '1')
ЗаписьХМЛ.ЗаписатьТекст(Объект.Артикул);
 

unknown181538

НеГуру
28.12.2008
1 417
0
#5
Каталог="C:\Temp";
ИмяФайла=Каталог+?(Прав(Каталог,1)="\","","\")+"sklad.xml";
ЗаписьХМЛ=Новый ЗаписьXML;
ЗаписьХМЛ.ОткрытьФайл(ИмяФайла);
ЗаписьХМЛ.ЗаписатьОбъявлениеXML();
Выборка = Справочники.Номенклатура.Выбрать();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("Root");
Пока Выборка.Следующий() Цикл
если выборка.ЭтоГруппа Тогда
продолжить;
КонецЕсли;
Объект = Выборка.ПолучитьОбъект();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("item");
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("id");
ЗаписьХМЛ.ЗаписатьТекст(Объект.Наименование);
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("category");
ЗаписьХМЛ.ЗаписатьТекст(Объект.Артикул);
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("vendor");
ЗаписьХМЛ.ЗаписатьТекст(Объект.СтранаПроисхождения.Наименование);
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
КонецЦикла;
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.Закрыть();
 
E
#6
Точно дело в группе)). А не подскажите, как получить остаток по товару и его цену розничную??
 

unknown181538

НеГуру
28.12.2008
1 417
0
#7
Запускаем конструктор запроса, выбираем нужные таблицы... левое соедиенение.... Но... это стандартная задача, которая гораздо луше описана в любой книжке.
 
E
#8
Не найду какой регистр хранит ТипЦен (розничный нужен)??
 

unknown181538

НеГуру
28.12.2008
1 417
0
#9
Регистр сведений "ЦеныНоменклатуры" с отбором по измерению "ТипЦен".
 
E
#10
Регистр сведений "ЦеныНоменклатуры" с отбором по измерению "ТипЦен".
извиняюсь за тупые вопросы, но остаток я получаю из Регистра накопления ТоварыОрганизацийОстатки, а ТипЦен из ЦеныНоменклатуры.
Как мне все это можно совместить, чтобы вывести одним отчетом?? Спасибо!
 

unknown181538

НеГуру
28.12.2008
1 417
0
#11
Сначала определитесь, нужно ли вам выводить в отчет позиции, по которым нет остатков или цен.
Затем выбираете соответственные таблицы.
Например:
Справочник.Номенклатура
РегистрНакопления.ТоварыОрганизацииОстатки
РегистрСведений.ЦеныНоменклатуры

Соединения
Левое спровочника с остатками по номенклатура
Левое спровочника с ценами по номенклатура
 

unknown181538

НеГуру
28.12.2008
1 417
0
#13
А типы цен одинаковые выводятся?
Возможно остатки с разных складов... но так вроде не должно быть...
 
E
#14
А типы цен одинаковые выводятся?
Возможно остатки с разных складов... но так вроде не должно быть...
Да фильтранул по рознице, выводит только розничные. Дело в том , что запустил стандартную ПечатьПрайса и остатки не сходяться

Мда...виноват, все таки в разрезе склада необходимо, спасибо!