Имя: Пароль:
1C
1С v8
Ошибка XDTO
0 marinelli
 
10.10.12
14:46
Здравствуйте! Помогите, пожалуйста, разобраться...

Есть схема:

<?xml version="1.0" encoding="windows-1251"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:usch="http://www.unisoftware.ru/schematron-extensions" elementFormDefault="qualified" attributeFormDefault="unqualified">
   <xs:element name="Файл">
       <xs:annotation>
           <xs:documentation>Файл обмена</xs:documentation>
...

Пишу:
   Фабрика = СоздатьФабрикуXDTO(ПутьКСхеме);
   Тип_Файл = Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "Файл");
   Файл_XDTO = Фабрика.Создать(Тип_Файл);

Ошибка:
Ошибка при вызове метода контекста (Создать)
   Файл_XDTO = Фабрика.Создать(Тип_Файл);
по причине:
Несоответствие типов (параметр номер '1')

Очень прошу помочь разобраться
1 ЧеловекДуши
 
10.10.12
14:48
И что тебе непонятно?
2 ЧеловекДуши
 
10.10.12
14:49
Слово "Несоответствие" http://ru.wiktionary.org/wiki/несоответствие
Слово "типов" wiki:Тип
3 marinelli
 
10.10.12
14:51
И правда смешно) я такая глупая, не догадалась в википедии сразу посмотреть)
4 ЧеловекДуши
 
10.10.12
14:57
(3)Отладчик что содержит в переменной "Тип_Файл"?
5 ЧеловекДуши
 
10.10.12
14:58
ФабрикаXDTO (XDTOFactory)
Создать (Create)
Вариант синтаксиса: Создание значения из значения

Синтаксис:

Создать(<Тип>, <Значение>)
Параметры:

<Тип> (обязательный)

Тип: ТипЗначенияXDTO.
Тип, значение которого необходимо создать.
<Значение> (обязательный)

Тип: Произвольный.
Произвольное значение, на основе которого должно быть создано значение XDTO.
Вариант синтаксиса: Создание значения по лексическому представлению

Синтаксис:

Создать(<Тип>, <Строка>)
Параметры:

<Тип> (обязательный)

Тип: ТипЗначенияXDTO.
Тип, значение которого необходимо создать.
<Строка> (обязательный)

Тип: Строка.
Лексическое представление значения.
Вариант синтаксиса: Создание объекта

Синтаксис:

Создать(<Тип>)
Параметры:

<Тип> (обязательный)

Тип: ТипОбъектаXDTO.
Тип, объект которого необходимо создать.
Возвращаемое значение:

Тип: ЗначениеXDTO.

Описание:

Создает значение XDTO на основе строки (лексического представления значения).

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение.
Примечание:

Лексическое представление значения должно удовлетворять ограничениям, определяемым данным типом значения XDTO.
6 ЧеловекДуши
 
10.10.12
15:00
ТипЗначенияXDTO (XDTOValueType)
Свойства:

URIПространстваИмен (NamespaceURI)
БазовыйТип (BaseType)
Имя (Name)
ТипыЧленовОбъединения (MemberTypes)
ТипЭлементаСписка (ListItemType)
Фасеты (Facets)

Методы:

Проверить (Validate)
ЭтоПотомок (IsDescendant)

Описание:

Определяет тип значений модели XDTO.

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение.
См. также:

ЗначениеXDTO, метод Тип
КоллекцияТиповЗначенийXDTO, метод Получить
ТипЗначенияXDTO, свойство БазовыйТип
ТипЗначенияXDTO, свойство ТипЭлементаСписка
ТипЗначенияXDTO, метод ЭтоПотомок
ФабрикаXDTO, метод Привести
ФабрикаXDTO, метод Создать
7 ЧеловекДуши
 
10.10.12
15:01
ФабрикаXDTO.Тип (XDTOFactory.Type)
ФабрикаXDTO (XDTOFactory)
Тип (Type)
Вариант синтаксиса: По имени и URI пространства имен

Синтаксис:

Тип(<URIПространстваИмен>, <Имя>)
Параметры:

<URIПространстваИмен> (обязательный)

Тип: Строка.
URI пространства имен запрашиваемого типа.
<Имя> (обязательный)

Тип: Строка.
Имя запрашиваемого типа.
Вариант синтаксиса: По раширенному имени XML

Синтаксис:

Тип(<ИмяXML>)
Параметры:

<ИмяXML> (обязательный)

Тип: РасширенноеИмяXML.
Расширенное имя XML.
Вариант синтаксиса: По типу данных XML

Синтаксис:

Тип(<ТипДанных>)
Параметры:

<ТипДанных> (обязательный)

Тип: ТипДанныхXML.
Тип данных XML, по которому запрашивается тип XDTO.
Возвращаемое значение:

Тип: ТипЗначенияXDTO; ТипОбъектаXDTO; Неопределено.

Описание:

Получение типа XDTO.

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение.
8 ЧеловекДуши
 
10.10.12
15:02
Судя по ошибки, у тебя должен быть тип "ТипОбъектаXDTO"
9 ЧеловекДуши
 
10.10.12
15:03
+ Потому что команда
       Тип_Файл = Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "Файл");
Вернет одно из значений
Возвращаемое значение:
Тип: ТипЗначенияXDTO; ТипОбъектаXDTO; Неопределено.
10 marinelli
 
10.10.12
15:08
Тип_Файл - неопределено
11 quest
 
10.10.12
15:15
Тип_Файл = Фабрика.Тип("http://www.unisoftware.ru/schematron-extensions", "Файл");
или
 Тип_Файл = Фабрика.Тип("http://purl.oclc.org/dsdl/schematron", "Файл");
в зависимости где определено "Файл"

по моему так.
12 marinelli
 
10.10.12
15:34
Я часть схемы вверху привела
Фабрика.Тип("http://purl.oclc.org/dsdl/schematron", "Файл") = Истина

Фабрика.Создать(Тип_Файл) всё равно выдаёт ошибку
13 marinelli
 
10.10.12
15:45
Совершенно не понимаю ничего в этом синтаксисе( помогите, пожалуйста...
14 quest
 
10.10.12
15:47
где тип Файл определен?
15 marinelli
 
10.10.12
15:56
Правильно понимаю, что в этой строке надо описать тип значений?

<xs:element name="Файл">
16 quest
 
10.10.12
15:59
выложи где нибудь файл схемы и файл хмл который читаешь.  а там посмотрим как тебе это все читать...
17 marinelli
 
10.10.12
16:03
Я пытаюсь создать файл хмл
Схема тут:
http://files.mail.ru/YMUE92
18 quest
 
10.10.12
16:28
схему с таким определением 1С не прочтет. Вынеси определения типов, сделай их именоваными и явно свяжи.
19 marinelli
 
10.10.12
16:41
Что-то сложное видимо мне сейчас предстоит)))
спасибо за помощь...
20 quest
 
10.10.12
17:02
да нет там ничего сложного... просто свою писалку хмл сделай (за пример можно взять любой пример из инета про ЗаписьXML)
тебе никакого смысла от этой схемы нет на этапе создания, а валидацию можешь потом на скрипте сделать.
21 marinelli
 
10.10.12
17:14
да уж))) легко вам, умным так говорить))
22 sapphire
 
10.10.12
17:16
(0)
encoding="windows-1251"
23 quest
 
10.10.12
17:48
(21) пиши. плюнь на все и пиши. сперва получиться фигня, потом перепишешь и станет лучше, потом еще раз перепишешь...
А потом вопросов подобных в 0 не будет возникать
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.