0
Julbars
09.06.14
✎
10:34
|
Столкнулся с непонятной ситуацией.
Через "ВнешнийИсточникДанных" подключаюсь к базе Oracle 11.
Обычным 1С запросом из View получаю значение "91 211,203125"
Если посмотреть это значение в самой View из Developer'а, то оно хранится в базе как "91 211,2"
Откуда в 1С приходит это же число с хвостом ???
|
|
2
Julbars
09.06.14
✎
10:45
|
Позволяет, я посмотрел откуда берет данные вьюха, но и там число хранится уже обрезанным.
Что интересно хвост .003125 присутствует в очень многих "не округленных" значениях.
|
|
3
Julbars
09.06.14
✎
11:20
|
Вот что пишут умные люди:
Причина описанного явления в том, что в OLE Automation нет типа данных с фиксированной точкой. Дробные числа 1С:Предприятия при передаче через COM преобразуются к типу с плавающей точкой (double), в котором не все десятичные дроби, даже с малой разрядностью, могут быть представлены точно. Для решения проблемы можно:
1) При получении дробных значений 1С:Предприятием выполнять округление до нужной разрядности дробной части (Окр).
2) Передавать через COM строковые представления чисел, для чего использовать функцию преобразования числа в XML-строку.
3) Передавать все данные через COM в виде единой XML-строки.
Это особенность числовых типов данных в модели COM. В ней нет точного соответствия числовым типам 1С, поэтому они так и передаются.
|
|