|
Передача больших чисел через ComConnector. | ☑ | ||
---|---|---|---|---|
0
Hmster
02.09.11
✎
11:02
|
1С неверно передает/получает большие числа.
Для примера можно взять регистр сведений "Адресный классификатор" колонку "Код". ЗаписьАдреса = БД.РегистрыСведений.АдресныйКлассификатор.СоздатьМенеджерЗаписи(); ЗаписьАдреса.Код = "100000000000000000000000"; ЗаписьАдреса.Записать(Истина); //Так запишет нормально ЗаписьАдреса.Код = 100000000000000000000000; ЗаписьАдреса.Записать(Истина); //так запишет число 99999999999999000000000 Это только у меня так? Или дело в 1С? |
|||
1
Grusswelle
02.09.11
✎
11:04
|
Ппц... 10^24 степени адресов... Это ж - квадрилион!
|
|||
2
Grusswelle
02.09.11
✎
11:04
|
...Ну и так, для пятницы: wiki:Именные_названия_степеней_тысячи
|
|||
3
Jolly Roger
02.09.11
✎
11:05
|
(0) в 1С... передавай строкой...
|
|||
4
Grusswelle
02.09.11
✎
11:06
|
(3) Ну вот нафига, а? >:-/ Такую пятницу испортил...
|
|||
5
Hmster
02.09.11
✎
11:07
|
(2) wiki:Гуголплекс
|
|||
6
Hmster
02.09.11
✎
11:07
|
(3) чисто спортивный интерес
|
|||
7
Hmster
02.09.11
✎
13:38
|
Чувствую никто мне не скажет в чем проблема.
|
|||
8
kiruha
02.09.11
✎
13:44
|
Видать идет неявное преобразование в число с плаваяющей запятой и обратно
|
|||
9
kiruha
02.09.11
✎
13:44
|
ЗаписьАдреса.Код = 100000000000000000000001;
ЗаписьАдреса.Записать(Истина); //так запишет число какое ? |
|||
10
Hmster
02.09.11
✎
13:51
|
99 999 999 999 999 000 000 000
|
|||
11
kiruha
02.09.11
✎
14:02
|
||||
12
Hmster
02.09.11
✎
14:14
|
Спс.
300 000 000 000 000 000 000 000 передает нормально. |
|||
13
hhhh
02.09.11
✎
14:27
|
(0) вот почему адресный классификатор не включен в обмен в типовых!
|
|||
14
Torquader
02.09.11
✎
22:13
|
Для передачи больших чисел существуют форматы OLE Decimal и Currency, но 1С почему-то приводит их в double, а там всего 19 десятичных цифр без округления помещается.
Поэтому, коды проще всего преобразовать в строку (добавив, например в начало любой символ). |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |