Имя: Пароль:
1C
1С v8
Округление в запросе
,
0 _barracuda_
 
01.06.17
16:41
Добрый день.Подскажите как правльно округлить до 2-х знаком в запросе.а то целая цифра вылазит,хотя записана 30.44,но вылазит 30

ВЫБОР
КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена, 0) <> 0 И (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0) < ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0))
   ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0)
1 Джинн
 
01.06.17
16:43
Не совсем понятен вопрос. Округление в запросе через ВЫРАЗИТЬ, но непонятно причем тут округление.
2 Сильф
 
01.06.17
16:44
(0) Чувствую, запрос тут не при чём. Где-то после него у тебя обрезается.
3 Ц_У
 
01.06.17
16:44
куда там что вылазит, результат запроса сам себя не округлит?
4 _barracuda_
 
01.06.17
16:46
ВЫБОР
КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена, 0) <> 0 И (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0) < ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0))
   ТОГДА Выразить(ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0) КАК ЧИСЛО (10,2))
КОГДА  ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена, 0) <> 0  И (ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0) < ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0))
   ТОГДА Выразить(ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0)КАК ЧИСЛО (10,2))
КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0) = 0
   ТОГДА Выразить(ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0)КАК ЧИСЛО (10,2))
КОГДА ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0) = 0
   ТОГДА Выразить(ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0)КАК ЧИСЛО (10,2))
КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена, 0) <> 0 И (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена, 0) = ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0))
ТОГДА Выразить(ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0)КАК ЧИСЛО (10,2))
КОГДА ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена, 0) <> 0 И (ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена, 0) = ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0))
ТОГДА Выразить(ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0)КАК ЧИСЛО (10,2))
КОНЕЦ КАК Цена,

вроде правильно?
5 Гаврилин Игор
 
01.06.17
16:48
А вылазит куда? может реквизит имеет тип Число 15,0 ?
6 _barracuda_
 
01.06.17
16:56
ВЫБРАТЬ

Выразить(СпрНоменклатура.Ссылка.НаименованиеПолное КАК строка(1000)) КАК ПолноеНаименование,
ХарактеристикиНоменклатуры.ШтрихКод Как ШтрихКод,


ВЫБОР
КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена, 0) <> 0 И (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0) < ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0))
   ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0)
КОГДА  ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена, 0) <> 0  И (ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0) < ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0))
   ТОГДА ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0)
КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0) = 0
   ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0)
КОГДА ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0) = 0
   ТОГДА ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0)
КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена, 0) <> 0 И (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена, 0) = ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0))
ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0)
КОГДА ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена, 0) <> 0 И (ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена, 0) = ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0))
ТОГДА ЕСТЬNULL(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0)
КОНЕЦ КАК Цена,


ИЗ
Справочник.Номенклатура.Изменения КАК СпрНоменклатура  
  
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки() КАК ТоварыНаСкладахОстатки
ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура


ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК ЦеныНоменклатурыКонтрагентовГРн
ПО СпрНоменклатура.Ссылка = ЦеныНоменклатурыКонтрагентовГРн.Ссылка


ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК ХарактеристикиНоменклатуры    
ПО  СпрНоменклатура.Ссылка = ХарактеристикиНоменклатуры.Владелец


    
ГДЕ
СпрНоменклатура.Ссылка.ПометкаУдаления = ЛОЖЬ

СГРУППИРОВАТЬ ПО
Выразить(СпрНоменклатура.Ссылка.НаименованиеПолное КАК строка (1000)),
ХарактеристикиНоменклатуры.ШтрихКод,
ЦеныНоменклатурыСрезПоследнихГРн.Цена,
Выразить(ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена КАК ЧИСЛО (10,2))

так ругается на
Поле не входит в группу "ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена"
КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена, 0) <> 0 И (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихГРн.Цена,0) < ЕСТЬNULL(<<?>>ЦеныНоменклатурыКонтрагентовГРн.МинимальнаяЦена,0))
7 _barracuda_
 
01.06.17
16:56
(5)реквизит 10.2
8 _barracuda_
 
01.06.17
17:18
идеи есть?
9 dezss
 
01.06.17
17:20
(8) посмотри значения после того, как сделал Выполнить().Выгрузить()
Там точно округленные значения?
10 _barracuda_
 
01.06.17
17:20
(9)понял сейчас гляну
11 _barracuda_
 
01.06.17
17:58
(9) есть две цифры 30,79 и 30.80.так вот начало цикла сообщает что в самом запросе содержится 30 круглое число
Выб=Запрос.Выполнить().Выбрать();  
Пока Выб.Следующий()>0 Цикл
12 _barracuda_
 
01.06.17
18:27
есть идеи?
13 Неверный Параметр И
 
01.06.17
19:06
Значения 30.79, 30.80 и 30.44 из (0) взяты с оштукатуренного или с натяжного?
14 dezss
 
02.06.17
08:19
(12) убери после Тогда все естьnull и Выразить и посмотри что будет. Ты и так уже проверил на естьnull, зачем же еще раз проверять.
15 Дмитрий
 
02.06.17
08:52
(12) не там ищешь. запрос ничего сам не округляет