Имя: Пароль:
1C
 
Проверка XDTO - Несоответствие фасету TotalDigits = '6'
0 RomaH
 
naïve
13.01.15
13:58
Ошибка при установке значения атрибута контекста (v_indicator): Ошибка проверки данных XDTO:
Значение: '24.655' не соответствует простому типу:
Несоответствие фасету TotalDigits = '6'

почему 100 соответствует этому фасету
а
'24.655' - нет
?
1 Господин ПЖ
 
13.01.15
14:00
строка?
2 RomaH
 
naïve
13.01.15
14:01
3 RomaH
 
naïve
13.01.15
14:02
(1) - число. я сначала проверил на тип - потом на мисту
4 Господин ПЖ
 
13.01.15
14:04
http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#element-totalDigits

пишут что по типу значение должно быть положительное целое
5 RomaH
 
naïve
13.01.15
14:05
вот добавил вывод в сообщения значения и типа:

30,781
Число
{Документ.ВыгрузкаРеестраВОМС(616)}: Ошибка при установке значения атрибута контекста (v_indicator): Ошибка проверки данных XDTO:
Значение: '30.781' не соответствует простому типу:
Несоответствие фасету TotalDigits = '6'
6 RomaH
 
naïve
13.01.15
14:08
(4) ты точно уверен?
value = positiveInteger  - вот это?
это вроде к самому показателю - у меня он равен 6
7 Широкий
 
13.01.15
14:08
Decimal - это случаем не целые числа?
8 RomaH
 
naïve
13.01.15
14:09
и как бы я сейчас переписываю формирование XML через XDTO
до этого этот же алгоритм, но

                                                                
                                                                Запись.ЗаписатьНачалоЭлемента("indicators");
                                                                
                                                                Для каждого Эл Из МассивПоказателей Цикл
                                                                    
                                                                    Запись.ЗаписатьНачалоЭлемента("indicator");
                                                                    
                                                                    Если Эл.КодПоказателя = 11 Тогда
                                                                        Запись.ЗаписатьАтрибут("type_indicator", "8");
                                                                    Иначе
                                                                        Запись.ЗаписатьАтрибут("type_indicator", СокрЛП(Эл.КодПоказателя));
                                                                    КонецЕсли;
                                                                    Запись.ЗаписатьАтрибут("measure", СокрЛП(Эл.ЕдиницаИзмерения));
                                                                    
                                                                    Если Эл.Количество = 0 Тогда
                                                                        Запись.ЗаписатьАтрибут("v_indicator", "0.000");
                                                                    Иначе
                                                                        Запись.ЗаписатьАтрибут("v_indicator", "" + Формат(Эл.Количество,"ЧРД=."));
                                                                    КонецЕсли;
                                                                    
                                                                    Запись.ЗаписатьКонецЭлемента();//indicator


который в конце ппроверялся на ссоответсвие схеме - и проверка по схеме проходила

а тут - почему-то не ссответсвует
9 RomaH
 
naïve
13.01.15
14:10
(7) нет - интеджер - для целых
и ошибка:

Несоответствие фасету TotalDigits = '6'
10 Господин ПЖ
 
13.01.15
14:11
(6) 30.781 - это целое?
11 Господин ПЖ
 
13.01.15
14:12
(7) это десятичное
12 RomaH
 
naïve
13.01.15
14:12
вот вывод всех значений:
30,781
30,781
Число
{Документ.ВыгрузкаРеестраВОМС(616)}: Ошибка при установке значения атрибута контекста (v_indicator): Ошибка проверки данных XDTO:
Значение: '30.781' не соответствует простому типу:
Несоответствие фасету TotalDigits = '6'
0
4,7
4,7
4,2
4,4
80
130
165
55
78
20,202
20,202
Число
{Документ.ВыгрузкаРеестраВОМС(616)}: Ошибка при установке значения атрибута контекста (v_indicator): Ошибка проверки данных XDTO:
Значение: '20.202' не соответствует простому типу:
Несоответствие фасету TotalDigits = '6'
0
6
4,3
85
140
176
113
117
36,48
0
70
120
175
87
78
28,408
28,408
Число
{Документ.ВыгрузкаРеестраВОМС(616)}: Ошибка при установке значения атрибута контекста (v_indicator): Ошибка проверки данных XDTO:
Значение: '28.408' не соответствует простому типу:
Несоответствие фасету TotalDigits = '6'
13 RomaH
 
naïve
13.01.15
14:14
т.е.
36,48 проходит
а
28,408 - нет

(10) еще раз - ты про целое не туда смотришь - целым должен быть показатель "TotalDigits"
у меня он целый - 6
нельзя его поставить равным 6,5
14 mikecool
 
13.01.15
14:14
(12) может кол-во символов не проходит уже, какой то служебный может считается
15 RomaH
 
naïve
13.01.15
14:18
(14) какое количество символов у числа?
увеличил тотал диджитс и количество после запятой дор 7 и до 4 соответсвенно
- ничего не поменялось
16 Господин ПЖ
 
13.01.15
14:19
у тебя там рядом fractionDigits не задан?

типа fractionDigits = 2

тогда 28,408 не катит
а 28,40 проскочит
17 Господин ПЖ
 
13.01.15
14:19
18 RomaH
 
naïve
13.01.15
14:20
19 RomaH
 
naïve
13.01.15
14:21
нет - ругается именно на количество цифр
20 mikecool
 
13.01.15
14:22
(15) "какое количество символов у числа? "
28,408 наверняка представляется как строка "28,408" - она уже 6 символов, мб к енй прибавляется какой то служебный символ
это я так, предположил
21 RomaH
 
naïve
13.01.15
14:23
уменьшил до 5 стало:

31,64
Число
{Документ.ВыгрузкаРеестраВОМС(616)}: Ошибка при установке значения атрибута контекста (v_indicator): Ошибка проверки данных XDTO:
Значение: '31.64' не соответствует простому типу:
Несоответствие фасету TotalDigits = '5'


но если увеличить до 7 - то все-равно ругается на 28,404

фича какая-то
22 Господин ПЖ
 
13.01.15
14:24
(20) при анализе точка выпиливается
23 RomaH
 
naïve
13.01.15
14:25
(20) самое интересное, что XML с 28,404 проходит проверку по схеме, если её "руками создать"
24 Широкий
 
13.01.15
14:25
(21) Длину дробной части пробовал увеличить?
25 Широкий
 
13.01.15
14:26
И вообще
Запись.ЗаписатьАтрибут("v_indicator", "" + Формат(Эл.Количество,"ЧРД=."));
Я бы поменял на
Запись.ЗаписатьАтрибут("v_indicator", XMLСтрока(Эл.Количество));
26 mikecool
 
13.01.15
14:38
(25) да и вообще - заюзать схему хдто, раз уж на нее переписывается
27 RomaH
 
naïve
13.01.15
14:50
(26) дак я её и заюзал - смотрите скрин, однако
(24) пробовал - ошибка именно из-за тотал диджитс
если её в 1 - ошибки нет
уменьшить до 5 - ругается начинает на 24,26
увеличить до 8 - ошибка на 24,404 остается
28 Господин ПЖ
 
13.01.15
14:55
такое впечатление что в самой xml в значении есть еще что-то...
29 RomaH
 
naïve
13.01.15
14:57
(28) XML еще нет
все пишется в объектXDTO
(28) скрин видно или где? http://www.dropmocks.com/mH3WHM
30 RomaH
 
naïve
13.01.15
15:02
Выставил общее количество цифр = 8 перестала ругаться
на 7 - еще ругалась
31 RomaH
 
naïve
13.01.15
15:04
131,64
0
104,9
104,5
180
220
262
163
182
124,005
124,005
Число
{Документ.ВыгрузкаРеестраВОМС(616)}: Ошибка при установке значения атрибута контекста (v_indicator): Ошибка проверки данных XDTO:
Значение: '124.005' не соответствует простому типу:
Несоответствие фасету TotalDigits = '8'

похоже после 5 надо +2 делать
32 Господин ПЖ
 
13.01.15
15:16
>XML еще нет. все пишется в объектXDTO

а где он?

Запись.ЗаписатьАтрибут("v_indicator", "" + Формат(Эл.Количество,"ЧРД=."));

это запись "православного" xml где тут xdto?
33 RomaH
 
naïve
13.01.15
16:07
(32) скрин видно или где? http://www.dropmocks.com/mH3WHM
34 RomaH
 
naïve
13.01.15
16:08
и как бы я сейчас переписываю формирование XML через XDTO
до этого этот же алгоритм, но