• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

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

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

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