Нестандартное округление в тексте запроса 8.1

05.08.09

Разработка - Запросы

Было дано задание, получать баллы, расчет которых шел по формуле СуммаПродажи / 1000. И округлять в большую сторону, если остаток больше 700р.

Данная статья не претендует на какое-то великое открытие, просто хочу поделится информацией. Так как в запросе 1с достаточно скудные средства обработки данных, пришлось немного поломать голову как реализовать нестандартный механизм округления.

Суть задачи:

Требуется выводить отчет по продажам контрагентов (УТ 10.3 Регистр.Продажи) с пересчетом суммы продаж в баллы. Формула расчета баллов проста - Сумма / 1000.

При этом округление до целого должно происходить не по обычной схеме 1.5, а по схеме 1.7. То есть имеем две суммы:

35645 руб = 35 баллов
35796 руб = 36 баллов

В результате был создан отчет с помощью построителя.

Текст запроса:

ВЫБРАТЬ
    Таблица.Контрагент КАК Контрагент,
    Таблица.СуммаПродаж,
    Таблица.Баллы КАК ПредварительныеБаллы,
    ВЫРАЗИТЬ(Таблица.Баллы - 0.2 КАК ЧИСЛО(10, 0)) КАК Баллы
ИЗ
    (ВЫБРАТЬ
        ПродажиОбороты.Контрагент КАК Контрагент,
        СУММА(ПродажиОбороты.СтоимостьОборот) КАК СуммаПродаж,
        СУММА(ПродажиОбороты.СтоимостьОборот / 1000) КАК Баллы
    ИЗ
        РегистрНакопления.Продажи.Обороты(&НачПериода, &КонПериода, , ) КАК ПродажиОбороты
   
    СГРУППИРОВАТЬ ПО
        ПродажиОбороты.Контрагент) КАК Таблица

УПОРЯДОЧИТЬ ПО
    Контрагент
АВТОУПОРЯДОЧИВАНИЕ

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    184760    1029    403    

968

Обновление 1С Запросы Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Данный инструмент помогает анализировать доработанную конфигурацию после обновления на новый релиз и находить «битые» тексты запросов, в которых участвуют несуществующие в новом релизе метаданные.

2 стартмани

06.02.2025    2203    17    XilDen    26    

36

Запросы Программист Платформа 1С v8.3 Запросы 1C:Бухгалтерия Бесплатно (free)

В статье приведена удобная возможность отладки исполняемого запроса динамического списка.

03.12.2024    5735    artemusII    11    

23

Запросы Программист Бесплатно (free)

Увидел cheatsheet по SQL и захотелось нарисовать подобное, но про запросы.

18.10.2024    13145    sergey279    18    

66

Запросы Программист Платформа 1С v8.3 Запросы 1C:Бухгалтерия Бесплатно (free)

Столкнулся с интересной ситуацией, которую хотел бы разобрать, ввиду её неочевидности. Речь пойдёт про использование функции запроса АВТОНОМЕРЗАПИСИ() и проблемы, которые могут возникнуть.

11.10.2024    8221    XilDen    36    

90

СКД Механизмы типовых конфигураций Запросы Программист Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    3193    PROSTO-1C    0    

23

Запросы Программист Запросы Бесплатно (free)

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

16.08.2024    10805    user1840182    5    

29
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. redgad 80 05.08.09 15:48 Сейчас в теме
Для новичков самое то.
Пора кому - нибудь сваять книгу на основании таких статей
2. levran 202 05.08.09 16:06 Сейчас в теме
3. glek 119 11.08.09 16:15 Сейчас в теме
У меня была похожая задача, только там всегда (независимо) округлялось в большую сторону (Типа даже если в коробке только одна конфета, то все равно 1 коробка-место). Решил добавлением половины и стандартного округдения
muzipov; ekomova; +2 Ответить
Оставьте свое сообщение