Очень часто в запросах 1С 8.2 или 8.3 необходимо округлить значение «на лету», непосредственно в запросе. Сделать это очень просто. Для этого используется конструкция «Выразить()». Округление проходит по арифметическим правилам (в большую или меньшую сторону, в зависимости от последнего символа).
- 5
- 4
- 3
- 2
- 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
КОНЕЦ * втЗаказПоставщикуУпаковка.ЕдиницаДляОтчетовКоэффициент КАК КоличествоСУчетомУпаковки
ИЗ
втЗаказПоставщикуУпаковка КАК втЗаказПоставщикуУпаковка