• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Xml 1С8

  • Автор темы ech
  • Дата начала
E

ech

помогите с выгрузкой прайс листа в хмл 1С 8.1. УТ.
Может кто делал уже??
 
U

unknown181538

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

ech

Спасибо! Но как мне сделать чтобы выгружались отдельные реквизиты, например, меня интересует
Наименование
Категория
Производитель
колво на складе
цена
 
E

ech

Пока Выборка.Следующий() Цикл
Объект = Выборка.ПолучитьОбъект();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("item");
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("id");
ЗаписьХМЛ.ЗаписатьТекст(Объект.Наименование);
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("category");
ЗаписьХМЛ.ЗаписатьТекст(Объект.Артикул);
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
ЗаписьХМЛ.ЗаписатьНачалоЭлемента("vendor");
ЗаписьХМЛ.ЗаписатьТекст(Объект.СтранаПроисхождения);
ЗаписьХМЛ.ЗаписатьКонецЭлемента();
КонецЦикла;

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

unknown181538

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

ech

Точно дело в группе)). А не подскажите, как получить остаток по товару и его цену розничную??
 
U

unknown181538

Запускаем конструктор запроса, выбираем нужные таблицы... левое соедиенение.... Но... это стандартная задача, которая гораздо луше описана в любой книжке.
 
E

ech

Не найду какой регистр хранит ТипЦен (розничный нужен)??
 
U

unknown181538

Регистр сведений "ЦеныНоменклатуры" с отбором по измерению "ТипЦен".
 
E

ech

Регистр сведений "ЦеныНоменклатуры" с отбором по измерению "ТипЦен".

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

unknown181538

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

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

unknown181538

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

ech

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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!