Имя: Пароль:
1C
1С v8
искажение числа при СОМ-соединении
, ,
0 atlantika
 
19.09.13
10:40
Подскажите встречался ли кто нибудь с такой ситуацией?
И если можно ее как то исправить, то как лучше это сделать?

При получении некоторого значения типа Число, два знака после запятой, через СОМ-соединение в результате получается число с 11 знаками после запятой. Не для всех получаемых значений. При повторном запросе искажения сохраняются в точности.

В базе источнике тот же запрос дает корректные значения, все реквизиты проверены - два знака после запятой.
Например имеем число 9 200,03  , а получаем 9 200,03000000001
1 atlantika
 
19.09.13
11:34
Причина:"..Это особенность числовых типов данных в модели COM. В ней нет точного соответствия числовым типам 1С, поэтому они так и передаются. Если вы точно знаете, какая должна быть разрядность результата, то спокойно округляйте его на вызывающей стороне."
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=563192&threadtype=0

найденный способ решения - описывать тип поля в таблице значений куда будут выгружаться результаты запроса в цикле:
ТаблицаИзБухгалтерии.Колонки.Добавить("СуммаДокумента",    Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15, 2)));
2 wowik
 
19.09.13
11:45
(0) нормально это. использую Окр.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.