Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 07:33

XDTO xml, 8.3

Автор stillenough, 12 дек 2014, 13:42

0 Пользователей и 1 гость просматривают эту тему.

stillenough

Разбираюсь с пакетами XDTO.
Есть такой код

XDTOТоварыТип = ВладелецТип.Свойства.Получить("Товары").Тип; //ВладелецТип   -- значение urn:1C.ru:commerceml_2}Каталог, тип -- ТипОбъектаXDTO
XDTOТовары = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOТоварыТип); // создаем коллекцию <Товары></Товары>

цикл по товарам /// начало
XDTOТовар = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOТоварТип); //лебедев
XDTOТовар.Вес  = ПланОбмена.Вес;
XDTOТовар.Страна  = ПланОбмена.Страна;
XDTOТовары.Товар.Добавить(XDTOТовар);
КонецЦикла;


нашел похожее обсуждение на одном форуме
ЦитироватьФабрикаXDTO

Класс ФабрикаXDTO представляет собой единственное средство превращения файлов XML в ОбъектыXDTO и обратно. При этом, фабрика следит за тем, чтобы создаваемые объекты строго соответствовали заявленной модели данных (схеме XML). Если мы попытаемся наполнить ОбъектXDTO чем-то не соответствующим схеме, то произойдет исключение времени выполнения.

Я хочу добавить реквизит в каждый товар, для этого я должен изменить схему xml. Как это сделать? Я так понимаю разговор идет об объекте конфигурации XDTO-пакеты.
Но какой именно пакет цепляется - непонятно.

MuI_I_Ika

1. Открыть файл схемы в редакторе и изменить.
2. Подключить схему в конфигурацию 1с, изменить там и обратно сохранить в файл.

stillenough

Цитата: MuI_I_Ika от 12 дек 2014, 13:48
1. Открыть файл схемы в редакторе и изменить.
2. Подключить схему в конфигурацию 1с, изменить там и обратно сохранить в файл.
Вопрос где ее взять?

MuI_I_Ika

Ну либо смотреть XDTO пакеты в собственной конфигурации, либо по адресу веб сервиса.

stillenough

Цитата: MuI_I_Ika от 12 дек 2014, 13:56
Ну либо смотреть XDTO пакеты в собственной конфигурации, либо по адресу веб сервиса.
Как понять какая именно моя? Что нужно посмотреть в отладчике?
Цитировать//ВладелецТип   -- значение urn:1C.ru:commerceml_2}Каталог, тип -- ТипОбъектаXDTO
Как мне интерпретировать urn:1C.ru:commerceml_2}Каталог, на что это влияет?

sertak

Цитата: stillenough от 12 дек 2014, 14:03Что нужно посмотреть в отладчике?
Значение переменной ВладелецТип. Его и ищите среди пакетов.

stillenough

Спасибо, нашел, экспортировал, открыл и совсем запутался.
Дело в том, что когда я в отладчике пробегаю по коду....
XDTOТоварыТип = ВладелецТип.Свойства.Получить("Товары").Тип; //ВладелецТип   -- значение urn:1C.ru:commerceml_2}Каталог, тип -- ТипОбъектаXDTO
XDTOТовары = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOТоварыТип); // создаем коллекцию <Товары></Товары>
цикл по товарам /// начало
[u][b]XDTOТовар[/b][/u] = ПараметрыОбмена.МояФабрикаXDTO.Создать(XDTOТоварТип); //лебедев
XDTOТовар.Вес  = ПланОбмена.Вес;
XDTOТовар.Страна  = ПланОбмена.Страна;
XDTOТовары.Товар.Добавить(XDTOТовар);
КонецЦикла;

выделенная переменная типа ОбъектXDTO содержит перечень доступных реквизитов (вес,страна). Я думал что они берутся из соответствующего раздела схемы xml, но в схеме не нашел ничего подобного. Получается, что созрел вопрос: где определяется список этих самых реквизитов? Мне нужно его расширить для хаписи.
Добавлено: 12 дек 2014, 14:28


А нет, господа. Я вас обманул. Это как раз указывается в схеме. Всем спасибо, буду ковырять и пробовать
Добавлено: 12 дек 2014, 14:44


Спасибо, за помощь еще раз, но я не добился желаемого. Что сделал по пунктам:
1. Выгрузил нужную схему из конфигурации.
2. Отредактировал схему (банально добавил 1 реквизит копированием с уже существующего).
3. Загрузил схему в конфигурацию и обновился.

Итог:
Объект DXTO, подцепляющий схему xml все еще не отображает добавленный реквизит... Что я не сделал ?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск