1с округлить в запросе в большую сторону

Очень часто в запросах 1С 8.2 или 8.3 необходимо округлить значение «на лету», непосредственно в запросе. Сделать это очень просто. Для этого используется конструкция «Выразить()». Округление проходит по арифметическим правилам (в большую или меньшую сторону, в зависимости от последнего символа).

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(0 голосов, в среднем: 0 из 5)

Поддержите нас, расскажите друзьям!

СПРОСИТЕ в комментариях!

ВЫРАЗИТЬ( 10/3 КАК (Число(10,2)) КАК РезультатДеления // система разве возвратит значение 3.3?
А не 3.33?

Да, вы правы, это опечатка

А если нужно целую часть «Обрезать»?

Число = Число — Окр(Число);

Если в запросе:
10/3 — ВЫРАЗИТЬ( 10/3 КАК (Число(10,0))

ВЫРАЗИТЬ( КАК Число( ,

При использовании данного сайта, вы подтверждаете свое согласие на использование файлов cookie в соответствии с настоящим уведомлением в отношении данного типа файлов. Если вы не согласны с тем, чтобы мы использовали данный тип файлов, то вы должны соответствующим образом установить настройки вашего браузера или не использовать сайт.

Отправляя любую форму на сайте, вы соглашаетесь с политикой конфиденциальности данного сайта.

Проконсультироваться
со специалистом 1С

Код 1C v 8.х
Код 1C v 8.х

Получение целой части числа в запросе?
Код 1C v 8.х
Код 1C v 8.х

Как округлить в запросе в меньшую сторону?
Код 1C v 8.х
или
Код 1C v 8.х

Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования (Linus Torvalds).

Страницы

понедельник, 6 января 2014 г.

Округление всегда в большую сторону в запросе

Запрос для пересчета количества заказываемого товара в большую сторону, с учетом количества товара содержащимся в одной упаковке.

ВЫБРАТЬ
ЗаказПоставщикуТовары.Номенклатура ,
ЗаказПоставщикуТовары.Количество ,
ЗаказПоставщикуТовары.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК ЕдиницаХраненияОстатковКоэффициент ,
ЗаказПоставщикуТовары.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК ЕдиницаДляОтчетовКоэффициент ,
ЗаказПоставщикуТовары.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЗаказПоставщикуТовары.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК ДоляВУпаковке ,
ЗаказПоставщикуТовары. Количество * ( ЗаказПоставщикуТовары.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЗаказПоставщикуТовары.Номенклатура.ЕдиницаДляОтчетов.Коэффициент ) КАК КоличествоУпаковок
ПОМЕСТИТЬ втЗаказПоставщику
ИЗ
Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
ГДЕ
ЗаказПоставщикуТовары. Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втЗаказПоставщику.Номенклатура ,
втЗаказПоставщику.Количество ,
втЗаказПоставщику.ЕдиницаХраненияОстатковКоэффициент ,
втЗаказПоставщику.ЕдиницаДляОтчетовКоэффициент ,
втЗаказПоставщику.ДоляВУпаковке ,
втЗаказПоставщику.КоличествоУпаковок ,
ВЫРАЗИТЬ ( втЗаказПоставщику.КоличествоУпаковок — 0.5 КАК ЧИСЛО( 10 , 0 )) КАК ЧислоЦелыхЧастей ,
втЗаказПоставщику. Количество — втЗаказПоставщику.ЕдиницаДляОтчетовКоэффициент * ( ВЫРАЗИТЬ ( втЗаказПоставщику.КоличествоУпаковок — 0.5 КАК ЧИСЛО( 10 , 0 ))) КАК ОстатокЦелого
ПОМЕСТИТЬ втЗаказПоставщикуУпаковка
ИЗ
втЗаказПоставщику КАК втЗаказПоставщику
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втЗаказПоставщикуУпаковка.Номенклатура ,
втЗаказПоставщикуУпаковка.Количество ,
втЗаказПоставщикуУпаковка.ЕдиницаХраненияОстатковКоэффициент ,
втЗаказПоставщикуУпаковка.ЕдиницаДляОтчетовКоэффициент ,
втЗаказПоставщикуУпаковка.ДоляВУпаковке ,
втЗаказПоставщикуУпаковка.КоличествоУпаковок ,
втЗаказПоставщикуУпаковка.ЧислоЦелыхЧастей ,
втЗаказПоставщикуУпаковка.ОстатокЦелого ,
ВЫБОР
КОГДА втЗаказПоставщикуУпаковка.ОстатокЦелого = 0
ТОГДА втЗаказПоставщикуУпаковка.ЧислоЦелыхЧастей
ИНАЧЕ втЗаказПоставщикуУпаковка.ЧислоЦелыхЧастей + 1
КОНЕЦ * втЗаказПоставщикуУпаковка.ЕдиницаДляОтчетовКоэффициент КАК КоличествоСУчетомУпаковки
ИЗ
втЗаказПоставщикуУпаковка КАК втЗаказПоставщикуУпаковка

Оцените статью