Нестандартное округление в тексте запроса 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С:Предприятие 8 Платные (руб)

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

16500 руб.

02.09.2020    253154    1400    421    

1151

WEB-интеграция Запросы Программист 1С 8.3 Абонемент ($m)

Post1C - это внешняя обработка, которая превращает 1С в полноценный инструмент для тестирования REST API. Всё управление сосредоточено в одном окне: настройка запроса, выполнение, просмотр ответа и генерация кода - без переключения между формами. Аналог Postman, но работающий в привычной среде 1С.

1 стартмани

02.04.2026    1550    52    priem_nv    18    

59

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

QueryConsole1C — расширение, включающее консоль запросов с поддержкой исполняемых представлений — аналогов виртуальных таблиц, основанных на методах программного интерфейса ЗУП. Оно позволяет выполнять запросы с учётом встроенной бизнес-логики, отлаживать алгоритмы получения данных и автоматически генерировать код на встроенном языке 1С.

1 стартмани

16.05.2025    10601    142    zup_dev    30    

82

Инструментарий разработчика Запросы Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Абонемент ($m)

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

2 стартмани

05.03.2025    6257    21    XilDen    12    

29

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

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

3 стартмани

06.02.2025    5520    36    XilDen    26    

42

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

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

03.12.2024    12508    artemusII    11    

27

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

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

18.10.2024    22451    sergey279    18    

74
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 Ответить
Для отправки сообщения требуется регистрация/авторизация