Здравствуйте. Есть отчет, данные берутся запросом. Допустим в ячейке выводиться число 15 114,7. Если я в конструкторе форматной строки в свойствах ячейки делаю так:
то выводиться 15 115. А нужно 15 114. Т.е убрать числа после запятой, без округления. Можно ли так сделать при помощи конструктора форматной строки?
ЧДЦ=0
то выводиться 15 115. А нужно 15 114. Т.е убрать числа после запятой, без округления. Можно ли так сделать при помощи конструктора форматной строки?
По теме из базы знаний
- Округление суммы документа с учетом скидок для конфигурации УТ 11 (версия 11.2 и новее)
- Округление суммы каждой строки документа с учетом скидок для конфигурации УТ 11 (версия 11.2 и новее)
- Округление сумм в чеке после применения скидок
- Округление в пользу магазина/покупателя по каждой единице товара
- Округление суммы чека покупателя при оплате наличными в Рознице 3.0, УНФ 3.0, 1С:РМК
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)В Формат(...) работает стандартный механизм округления, т.е. в большую сторону.
Если округлять до целых нужно в меньшую полагаю подойдет такой способ:
От исходного числа отнимаем 0.5
Далее все как было раньше
Формат(15114.7-0.5, "ЧДЦ=0") = 15114
Формат(15114.2-0.5, "ЧДЦ=0") = 15114
Если округлять до целых нужно в меньшую полагаю подойдет такой способ:
От исходного числа отнимаем 0.5
Далее все как было раньше
Формат(15114.7-0.5, "ЧДЦ=0") = 15114
Формат(15114.2-0.5, "ЧДЦ=0") = 15114
Решил делать округление в запросе, если округлять в коде то всё было ок, но если в запросе пишу так:
выводит 58 184,51 а нужно 58 184. Можно ли так округлить в запросе?
СУММА(ВЫРАЗИТЬ(ЕСТЬNULL(Итоговая.Оплата, 0) КАК ЧИСЛО(15, 2))) КАК Оплата
выводит 58 184,51 а нужно 58 184. Можно ли так округлить в запросе?
// по умолчанию округление работает в большую сторону
Сообщить(Окр(1.5, 0)); // 2
// а если указать третьим параметром 0, то в меньшую
Сообщить(Окр(1.5, 0, 0)); // 1
не дочитал, что это запрос... так что пост анулирован... сорри
Сообщить(Окр(1.5, 0)); // 2
// а если указать третьим параметром 0, то в меньшую
Сообщить(Окр(1.5, 0, 0)); // 1
не дочитал, что это запрос... так что пост анулирован... сорри
(18) У меня синтаксическую ошибку выдаёт :
у меня запрос такого вида:
синтаксическая ошибка "ВЫБРАТЬ"
у меня запрос такого вида:
| СУММА(ЕСТЬNULL(Итоговая.Нагрузка, 0)) КАК Нагрузка,
|ВЫБРАТЬ
| ВЫБОР
| КОГДА Оплата>= ВЫРАЗИТЬ(Итоговая.Оплата КАК ЧИСЛО(15, 0))
| ТОГДА ВЫРАЗИТЬ(Итоговая.Оплата КАК ЧИСЛО(15, 0))
| ИНАЧЕ ВЫРАЗИТЬ(Итоговая.Оплата КАК ЧИСЛО(15, 0)) - 1
| КОНЕЦ
|ИЗ
| (ВЫБРАТЬ
..............далее продолжается текст запроса............
Показать
(23) убрал Выбрать, ругалось что поле должно присутствовать в выборке, сделать так:
ругается
| СУММА(ЕСТЬNULL(Итоговая.Нагрузка, 0)) КАК Нагрузка,
|СУММА(ЕСТЬNULL(Итоговая.Оплата, 0)) КАК Оплата,
| ВЫБОР
| КОГДА Оплата >= ВЫРАЗИТЬ(Итоговая.Оплата КАК ЧИСЛО(15, 0))
| ТОГДА ВЫРАЗИТЬ(Итоговая.ОплатаКАК ЧИСЛО(15, 0))
| ИНАЧЕ ВЫРАЗИТЬ(Итоговая.ОплатаКАК ЧИСЛО(15, 0)) - 1
| КОНЕЦ
|ИЗ
| (ВЫБРАТЬ
..............далее таекст запроса продолж..........
Показатьругается
Поле не входит в группу "Итоговая.Оплата"
ИНАЧЕ ВЫРАЗИТЬ(<<?>>Итоговая.Оплата КАК ЧИСЛО(15, 0)) - 1
(24)
Только зачем это делать в запросе, если проще в параметр табличного документа передавать значение через ОКР()?
|СУММА(ЕСТЬNULL(Итоговая.Нагрузка, 0)) КАК Нагрузка,
|СУММА(ЕСТЬNULL(Итоговая.Оплата, 0)) КАК Оплата,
|ВЫБОР
| КОГДА СУММА(ЕСТЬNULL(Итоговая.Оплата, 0))>= ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(Итоговая.Оплата, 0)) КАК ЧИСЛО(15, 0))
| ТОГДА ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(Итоговая.Оплата, 0)) КАК ЧИСЛО(15, 0))
| ИНАЧЕ ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(Итоговая.Оплата, 0)) КАК ЧИСЛО(15, 0)) - 1
|КОНЕЦ КАК Сумма
|ИЗ
ПоказатьТолько зачем это делать в запросе, если проще в параметр табличного документа передавать значение через ОКР()?
(29) можно и без запроса.
Перед циклом обхода запроса создать переменную
СуммаИтого = 0;
И в цикле, при присваивании параметру:
Область.параметры.сумма = Цел(Выборка.Сумма);
СуммаИтого = СуммаИтого + Цел(Выборка.Сумма);
И в конце присваивание параметру Итого значение переменной СуммаИтого.
Перед циклом обхода запроса создать переменную
СуммаИтого = 0;
И в цикле, при присваивании параметру:
Область.параметры.сумма = Цел(Выборка.Сумма);
СуммаИтого = СуммаИтого + Цел(Выборка.Сумма);
И в конце присваивание параметру Итого значение переменной СуммаИтого.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот