8.х Округление в Запросе

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Mimik, 12 ноя 2009.

  1. TopicStarter Overlay
    Mimik
    Offline

    Mimik

    Регистрация:
    30 июл 2009
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    ДароФФ Фсем... Скажите ГуРу
    а как округлить число в запросе 1С8

    ПримЗапрос = новый Запрос;
    ПримЗапрос.Текст =
    " Выбрать ЧислоВыбр из Справочник.ЧисловыеЗнач ";

    есть Фишка Выразить - но она округляет знаки после запятой... а мне надо округлить число 136 до 140 а 133 до 130 к примеру.. :smile: :unsure:
  2. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    как вариант
    Код:
    ВЫРАЗИТЬ(ЧислоВыбр/10 КАК ЧИСЛО(10, 0))*10 КАК ОкругленноеДоДесятиЧисло
    
  3. TopicStarter Overlay
    Mimik
    Offline

    Mimik

    Регистрация:
    30 июл 2009
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    Это понятно а меньше извращений нет?
    Вот в Скуле есть Round неужто в 1С не реализовали ничего подобного? :unsure:
  4. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    В скуле много чего есть. Зачем это учетной системе?
  5. TopicStarter Overlay
    Mimik
    Offline

    Mimik

    Регистрация:
    30 июл 2009
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    За тем что мы работаем со Скулем!!! :unsure:
  6. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    А 1С-то и не знает, что вы со скулем работаете:) Вот у меня база на постгре, что теперь в 1С весь функционал постгре должен быть? Используйте ado тогда для своих запросов, если так хочется полноценный sql.
  7. Sol
    Offline

    Sol Опытный в 1С

    Регистрация:
    14 ноя 2008
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    Подключаюсь к базе через ComConnector, в запросе поле:
    ВЫРАЗИТЬ(СчетФактураВыданный.СуммаДокумента КАК ЧИСЛО(15, 2))
    не обрезает дробную часть хоть убей :unsure:
    например сумма: 3 439,359999999
    после "ВЫРАЗИТЬ" возвращает то же самое. мне нужно чтоб округлилась до сотых: 3 439,36
    помогите победить!!!
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    сумму умножить на 100, округлить нацело и поделить на 100.
  9. Sol
    Offline

    Sol Опытный в 1С

    Регистрация:
    14 ноя 2008
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    уже голову сломал, не помогает ниче :(
    делаю даже так, всё равно вываливает девятки на конце:

    ВЫБОР
    КОГДА СчетФактураВыданный.СуммаДокумента * 100 - (ВЫРАЗИТЬ(СчетФактураВыданный.СуммаДокумента * 100 КАК ЧИСЛО(15, 0))) > 0.5
    ТОГДА ВЫРАЗИТЬ(СчетФактураВыданный.СуммаДокумента * 100 + 0.5 КАК ЧИСЛО(15, 0))
    ИНАЧЕ ВЫРАЗИТЬ(СчетФактураВыданный.СуммаДокумента * 100 КАК ЧИСЛО(15, 0))
    КОНЕЦ / 100
  10. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    вам округлить по мат правилам или отбросить дробную часть?
  11. Sol
    Offline

    Sol Опытный в 1С

    Регистрация:
    14 ноя 2008
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    Мне округлить по мат. правилам, оставив, два знака после запятой!
  12. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    выразить прекрасно с эти справляется :)

    Вложения:

  13. uza
    Offline

    uza 1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    Вы работаете с 1С - это 1С уже работает со скулем.
    Точнее даже так: Вы работаете с 1С Клиентом, 1С Клиент работает с сервером 1С, сервер 1С уже работает со скулем/постгри/дб2/оракл (1С8.2) ;)

    Если вы то, что предложил ASh называете ИЗВРАЩЕНИЯМИ - то интересно было бы узанть какой опыт работы со скулем (не считая студенческий поделок на коленке перед сдачей сесии).
    Не приймите за наезд.
  14. Sol
    Offline

    Sol Опытный в 1С

    Регистрация:
    14 ноя 2008
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    Попробуй через com подключится к другой базе и выдернуть запросом сумму документа. через выразить не катит :(
  15. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    uza, Mimik последний раз был здесь 7.12.2009. Думаю он вас не услышит.. :angry: ;)
  16. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Sol, вы же потом с этими данными что-то делаете? Если запрос через com действительно так работает, почему не оставить как есть, и потом уже при обработке результата запроса использовать допустим функцию Окр()?
  17. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Я предположу так (если кто-то может поправьте меня), что при взаимодействие через com соединение, передается число типа float (в терминах С), поскольку такого типа данных (15 знаков с точностью 2) - не существует как-бы (это ммм... внутренний тип 1С). В результате этого в приемнике и получается число типа float с точностью сколько там, 15 знаков после запятой, которое при приведении в 1С, к типу 1С Число(15,2) (если допустим присвоить этот результат полю ввода с этим типом) - и выдаст нужное значение (3 439,36 в вашем примере).
  18. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    в нормальных типовых сумма документа уже 15,2 также ничего выражать не приходится
  19. Sol
    Offline

    Sol Опытный в 1С

    Регистрация:
    14 ноя 2008
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    Сумма документа у меня условие отбора. Пока так и делаю, после запроса округляю и сравниваю. Но это не серьезно. хочется всё по фен-шую :)

    Может быть и так. Однако бывают такие доки, где сумма приходит с двумя знаками после запятой.

    P.S. В базе, откуда беру данные, сумма, которая была, например, 3 435,36 приходит как 3 435, 3599999. А в некоторых случаях как было 1 287, 96 так и приходит. Бред какой-то :(

Поделиться этой страницей