|
|
|
Выгрузка документа посредством XDTO ₽ |
☑ | ||
|---|---|---|---|---|
|
0
leo_d
03.09.08
✎
18:39
|
Здравствуйте. Подскажите пож. как выгрузить табл. часть документа посредством XDTO объекта.
вот кусок обработки: ЗаписьXML = Новый ЗаписьXML; ИмяФайла ="D:\XML_выгрузка.xml"; ЗаписьXML.ОткрытьФайл(ИмяФайла); Пути = Новый Массив(); Пути.Добавить("D:\v8_schem.xsd"); Фабрика = СоздатьФабрикуXDTO(Пути); URI = "http://v8.1c.ru/8.1/data/enterprise/current-config"; ТипЗаказ = Фабрика.Тип(URI, "DocumentObject.ЗаказПокупателя"); ТипТабЧасть = ФабрикаXDTO.Тип(URI, "DocumentTabularSectionRow.ЗаказПокупателя.Товары"); ЗаписьXML.ЗаписатьНачалоЭлемента("Заказ"); ОбъектДокумент = Фабрика.Создать(ТипЗаказ); Выборка = Документы.ЗаказПокупателя.Выбрать(НачДата, КонДата); Пока Выборка.Следующий() Цикл Если Выборка.Проведен Тогда ТекДок = Выборка.ПолучитьОбъект(); ОбъектДокумент.Ref = Строка(ТекДок.ВидОперации); ОбъектДокумент.АдресДоставки = ТекДок.АдресДоставки; ОбъектДокумент.ВидОперации = Строка(ТекДок.ВидОперации); ОбъектДокумент.Контрагент = ТекДок.Контрагент.Код; ОбъектДокумент.Товары = ТекДок.Товары; Для Каждого Элемент из ТекДок.Товары Цикл ОбъектТабЧасть = Фабрика.Создать(ТипТабЧасть); //..................... КонецЦикла; Фабрика.ЗаписатьXML(ЗаписьXML, ОбъектДокумент); КонецЕсли; КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.Закрыть(); в строке "ОбъектТабЧасть = Фабрика.Создать(ТипТабЧасть);" - выдает Несоответствие типов XDTO: Тип '{http://v8.1c.ru/8.1/data/enterprise/current-config}DocumentTabularSectionRow.ЗаказПокупателя.Товары' не найден Тип принадлежит пакету, отсутствующему в фабрике типов XDTO в схеме "D:\v8_schem.xsd" описано: ... <xsd:complexType name="DocumentTabularSectionRow.ЗаказПокупателя.Товары"> <xsd:sequence> <xsd:element name="Количество" type="xsd:decimal"/> <xsd:element name="Номенклатура" type="tns:CatalogRef.Номенклатура"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="DocumentTabularSectionRow.ЗаказПокупателя.Услуги"> <xsd:sequence> <xsd:element name="Количество" type="xsd:decimal"/> <xsd:element name="Номенклатура" type="tns:CatalogRef.Номенклатура"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="DocumentObject.ЗаказПокупателя"> <xsd:sequence> <xsd:element name="Ref" type="xsd:string"/> <xsd:element name="АдресДоставки" type="xsd:string"/> <xsd:element name="ВидОперации" type="xsd:string"/> <xsd:element name="Контрагент" type="xsd:string"/> <xsd:element name="Город" type="tns:CatalogRef.Города"/> <xsd:element name="Район" type="tns:CatalogRef.Районы"/> <xsd:element name="Улица" type="tns:CatalogRef.Улица"/> <xsd:element name="НомерДома" type="xsd:string"/> <xsd:element name="Корпус" type="xsd:string"/> <xsd:element name="Квартира" type="xsd:string"/> <xsd:element maxOccurs="99999" minOccurs="0" name="Товары" type="tns:DocumentTabularSectionRow.ЗаказПокупателя.Товары"/> <xsd:element maxOccurs="99999" minOccurs="0" name="Услуги" type="tns:DocumentTabularSectionRow.ЗаказПокупателя.Услуги"/> </xsd:sequence> </xsd:complexType> ... |
|||
|
1
Йожин с бажин
03.09.08
✎
18:41
|
что такое XDTO?
|
|||
|
2
leo_d
03.09.08
✎
18:45
|
XML Data Transfer Objects (Объекты перенова данных с помощью XML).
|
|||
|
3
Йожин с бажин
03.09.08
✎
18:48
|
чудеса
|
|||
|
4
quest
03.09.08
✎
18:57
|
вместо
<xsd:element maxOccurs="99999" minOccurs="0" name="Товары" type="tns:DocumentTabularSectionRow.ЗаказПокупателя.Товары"/> <xsd:element maxOccurs="99999" minOccurs="0" name="Услуги" type="tns:DocumentTabularSectionRow.ЗаказПокупателя.Услуги"/> не должно ли быть <xsd:choice> <xsd:element maxOccurs="unbounded" minOccurs="0" name="Товары" type="tns:DocumentTabularSectionRow.ЗаказПокупателя.Товары"/> <xsd:element maxOccurs="unbounded" minOccurs="0" name="Услуги" type="tns:DocumentTabularSectionRow.ЗаказПокупателя.Услуги"/> </xsd:choice> ? |
|||
|
5
quest
03.09.08
✎
18:59
|
сори. Тупанул. Ты прав. Буду думать дальше
|
|||
|
6
leo_d
03.09.08
✎
19:00
|
хм, файл схемы брал вырезками из файла экспорта конфигурации в схему XML...
но все ж попробую, спасибо |
|||
|
7
leo_d
03.09.08
✎
19:02
|
))
|
|||
|
8
quest
03.09.08
✎
19:17
|
Ша. Читать по буквам.
Фабрика = СоздатьФабрикуXDTO(Пути); URI = "http://v8.1c.ru/8.1/data/enterprise/current-config"; ТипТабЧасть = ФабрикаXDTO.Тип(URI, "DocumentTabularSectionRow.ЗаказПокупателя.Товары"); Внимание вопрос - что создали и где требуем получить тип? |
|||
|
9
quest
03.09.08
✎
19:18
|
хотя прикольно. Даже не понял сразу в чем прикол :)
|
|||
|
10
quest
03.09.08
✎
19:20
|
я тебе даже больше скажу -
разные экземпляры фабрик построенные по одному типу - различны. Попался на этом с в одной своей разработке. |
|||
|
11
quest
03.09.08
✎
19:27
|
блин, не типу. URI
|
|||
|
12
leo_d
04.09.08
✎
10:22
|
все же почему тип ТипТабЧасть в фабрике не находит не пойму?
в отладчике ТипТабЧасть определяется, в пространстве "http://v8.1c.ru/8.1/data/enterprise/current-config", все как полодено... |
|||
|
13
leo_d
04.09.08
✎
11:13
|
аааааа!!! понял, эка меня глюкануло. to quest пасибоооо!!!
|
|||
|
14
quest
04.09.08
✎
11:23
|
Фигня. ты с этим XDTO еще хлебнешь проблем... И основная - очень мало инфы.
|
|||
|
15
leo_d
04.09.08
✎
11:29
|
инфы даааа, нету вообще а то что есть то просто примеры и без всякого пояснения что и куда... ((
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |