ОБСУЖДЕНИЕ

Xml 1С8

14 ответов 10,2 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

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

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

извиняюсь за тупые вопросы, но остаток я получаю из Регистра накопления ТоварыОрганизацийОстатки, а ТипЦен из ЦеныНоменклатуры.
Как мне все это можно совместить, чтобы вывести одним отчетом?? Спасибо!
 
Сначала определитесь, нужно ли вам выводить в отчет позиции, по которым нет остатков или цен.
Затем выбираете соответственные таблицы.
Например:
Справочник.Номенклатура
РегистрНакопления.ТоварыОрганизацииОстатки
РегистрСведений.ЦеныНоменклатуры

Соединения
Левое спровочника с остатками по номенклатура
Левое спровочника с ценами по номенклатура
 
--
 
А типы цен одинаковые выводятся?
Возможно остатки с разных складов... но так вроде не должно быть...
 
А типы цен одинаковые выводятся?
Возможно остатки с разных складов... но так вроде не должно быть...

Да фильтранул по рознице, выводит только розничные. Дело в том , что запустил стандартную ПечатьПрайса и остатки не сходяться

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