|
v8: Ненужное округление в запросе | ☑ | ||
---|---|---|---|---|
0
KoderMaksim
11.07.13
✎
10:08
|
После выполнения запроса на получение данных из регистра сведений, почему то происходит округление реквизита до 2-х знаков, а хранится оно в с разрядностью в 3 знака. Почему происходит округление?
|
|||
1
Cube
11.07.13
✎
10:09
|
(0) Ты бредишь.
|
|||
2
Cube
11.07.13
✎
10:09
|
Давай скрин
|
|||
3
mikecool
11.07.13
✎
10:09
|
потому что пользуешь выразить или форматирование в поле, куда выводишь
|
|||
4
zak555
11.07.13
✎
10:09
|
код
|
|||
5
Mitriy
11.07.13
✎
10:09
|
мы все умрем?
|
|||
6
1Сергей
11.07.13
✎
10:10
|
(5) Обязательно!
(0) Как проверял? |
|||
7
Serg_1960
11.07.13
✎
10:13
|
(какой вопрос - такой ответ) Три знака - для пересчета из валюты в валюту, два знака - когда валюта уже определена.
|
|||
8
Aprobator
11.07.13
✎
10:15
|
в какой момент происходит округление то?
|
|||
9
Aprobator
11.07.13
✎
10:15
|
ща выяснится, что причина в формате вывода.
|
|||
10
Jonny_Khomich
11.07.13
✎
10:16
|
(8) я думаю, КодерМаксим вряд ли ответит тебе на этот вопрос.
|
|||
11
KoderMaksim
11.07.13
✎
10:16
|
Проверял я в отладчике, формат вывода здесь отсутствует.
|
|||
12
KoderMaksim
11.07.13
✎
10:17
|
Это аномалия 1С!
|
|||
13
Mitriy
11.07.13
✎
10:18
|
угу... а ты сталкер...
|
|||
14
KoderMaksim
11.07.13
✎
10:19
|
Вот код
[CODE] Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | др_ГруппыСкидокКонтрагентовСрезПоследних.Скидка, | др_УстановкаГруппСкидокКонтрагентов.НаценкаНаВес |ИЗ | РегистрСведений.др_ГруппыСкидокКонтрагентов.СрезПоследних( | &Период, | (Контрагент В ИЕРАРХИИ (&Контрагент) | ИЛИ Контрагент = &Контрагент) | И ГруппаСкидок = &ГруппаСкидок) КАК др_ГруппыСкидокКонтрагентовСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ Документ.др_УстановкаГруппСкидокКонтрагентов КАК др_УстановкаГруппСкидокКонтрагентов | ПО др_ГруппыСкидокКонтрагентовСрезПоследних.Регистратор = др_УстановкаГруппСкидокКонтрагентов.Ссылка"; Запрос.УстановитьПараметр("Период", ДокументОбъект.Дата); Запрос.УстановитьПараметр("Контрагент", ОбщегоНазначения.ПолучитьРеквизитШапки("Контрагент", ДокументОбъект, МетаданныеДокумента).Родитель); Запрос.УстановитьПараметр("ГруппаСкидок", СтрокаТабличнойЧасти.Номенклатура.ЦеноваяГруппа); //Запрос.УстановитьПараметр("ТипЦен", ТипЦен); Результат = Запрос.Выполнить(); Если НЕ Результат.Пустой() Тогда Выборка = Результат.Выбрать(); Выборка.Следующий(); Скидка = Выборка.Скидка; Наценка = Выборка.НаценкаНаВес; Иначе Скидка = 0; КонецЕсли; [/CODE] Поле скидка режется до двух знаков. |
|||
15
Aprobator
11.07.13
✎
10:19
|
стоп, а как разрядность (общее количество значков числа), связана с разрядностью дробной части?
|
|||
16
Aprobator
11.07.13
✎
10:22
|
или где там знаки режутся то?
|
|||
17
KoderMaksim
11.07.13
✎
10:23
|
у меня хранится число например 0.665, а в отладчике я вижу его как 0.67.
|
|||
18
Mitriy
11.07.13
✎
10:23
|
что такое Скидка и что такое Наценка? Какая у них разрядность установлена?
|
|||
19
Aprobator
11.07.13
✎
10:24
|
+(18) опередил )
|
|||
20
Cube
11.07.13
✎
10:24
|
(17) Скрин давай.
|
|||
21
Aprobator
11.07.13
✎
10:25
|
код - убийственный кстати.
|
|||
22
Maxus43
11.07.13
✎
10:29
|
Кстати сталкивался с таким, на скуле сервер 1с транслирует запрос уже с CAST, хотя в запросе 1с его нет. Как выбирает - не совсем понятно. Если в запросе юзать Выразить() то всё будет пучком
|
|||
23
KoderMaksim
11.07.13
✎
10:34
|
||||
24
Cube
11.07.13
✎
10:40
|
(23) А теперь скрин, где округляется...
|
|||
25
Serg_1960
11.07.13
✎
10:41
|
ТС, в конце кода добавь строку "Скидка = 0.667;" и посмотри результат в отладчике.
(имхо, не в тему) ТС, например, добавляет свои объекты и приписывает им всякие "др_" и "пр_"... понятно что для уникальности... но вот он использует "Скидка" и "Наценка" так, слово 100% уверен в их уникальности. |
|||
26
Ненавижу 1С
гуру
11.07.13
✎
10:49
|
др_ГруппыСкидокКонтрагентовСрезПоследних.Скидка //здесь у тебя 3 знака
Скидка = Выборка.Скидка; //а здесь (слева от присваивания), вот и весь фокус |
|||
27
Ненавижу 1С
гуру
11.07.13
✎
10:49
|
+(26) //а здесь 2 (слева от присваивания), вот и весь фокус
|
|||
28
KoderMaksim
11.07.13
✎
10:50
|
да это фокус, и как его побороть?
|
|||
29
Ненавижу 1С
гуру
11.07.13
✎
10:51
|
(28) а как ты думаешь? либо увеличивать разрядность, либо смириться
|
|||
30
KoderMaksim
11.07.13
✎
10:52
|
а где увеличивать у переменной?
|
|||
31
Ненавижу 1С
гуру
11.07.13
✎
10:54
|
(30) а это не переменная, это реквизит какого-то объекта
|
|||
32
Serg_1960
11.07.13
✎
10:59
|
Хмм.. (18) (25) (27) (31) ... у ТС проблемы со слухом или...?
- Доктор, меня всё игнорируют... - Следующий! |
|||
33
Ненавижу 1С
гуру
11.07.13
✎
11:02
|
(32) с глазами вроде
|
|||
34
hhhh
11.07.13
✎
11:03
|
(30) Скидка - это похоже не переменная
|
|||
35
KoderMaksim
11.07.13
✎
11:04
|
Похоже всё решилось, щас буду тестировать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |