|  | Как такое можно сделать запросом? 
 MWWRuza, Crusher , VKS , d_Fyodor , DeeK , Галахад , lucky_ , RVN , toypaul , mortal , Garykom ,  ,  ,  , 1Сергей , zippygrill , serpentt , U4Me2 , Fedor-1971 , XLife , Ёпрст , Бычье сердце , Мультук , 2S , patapum , H A D G E H O G s , kir-g , El_Duke , Злопчинский , alex73 , _Batoo , Волшебник , vyaz , DimR_71 , Dmitrii , mmg , saaken , eRik , abfm , Андрюха , lubitelxml , ldo6 , takefive , sikuda , Прохожий , Stepashkin , Domovoi ,  , NorthWind , Prog_man , hunter76 , бегинер , yanikolay , denk32 , Silgis , who respawn , ЕRPe , Ногаминебить , vladko , Anton1307 , KJlag , Sserj , Builder , Кукуев , Amra , MichmaN , Shurjk , nick86 , dva1c , nemo1966 | ☑ | 
    
        | 0
    
        VKS   27.03.25✎ 12:35 | 
        Добрый день. Подскажите, пожалуйста, как такой код можно сделать запросом? 
 Итого = 0;
 
 Для Сч = 1 По 1000 Цикл
 
 Если Сч <= 100 Тогда
 Сумма = 1;
 ИначеЕсли Сч <= 150 Тогда
 Сумма = 2;
 ИначеЕсли Сч <= 200 Тогда
 Сумма = 3;
 ИначеЕсли Сч <= 250 Тогда
 Сумма = 4;
 ИначеЕсли Сч >= 251 Тогда
 Сумма = 5;
 КонецЕсли;
 
 Итого = Итого + Сумма;
 
 КонецЦикла;
 
 Сообщить(Итого);
 |  | 
    
        | 1
    
        Волшебник   27.03.25✎ 12:39 | 
        зачем?     |  | 
    
        | 2
    
        Stepashkin   27.03.25✎ 12:40 | 
        (1) Такой же вопрос.     |  | 
    
        | 3
    
        2S   27.03.25✎ 12:41 | 
        Загнать в ВТ от 1 до 1000
Потом выборка из ВТ через "Выбора когда" и просуммировать.
 |  | 
    
        | 4
    
        VKS   27.03.25✎ 12:42 | 
        Есть практическая задача, в которой все считается в запросе, кроме одного показателя, который рассчитывается по этому алгоритму. Не могу понять как его тоже засунуть в расчет, чтобы дальше уже рассчитанный показатель использовать в запросе     |  | 
    
        | 5
    
        KJlag   27.03.25✎ 12:47 | 
        *нет, ступил. можно удалить сообщение     |  | 
    
        | 6
    
        VKS   27.03.25✎ 12:47 | 
        Условно, у меня в запросе есть поле, которое показывает, к примеру 350. Пусть будет 350 яблок. За первые 100 собранных яблок я получил по 1 рублю за сборку. За яблоки с 101 по 150 я получаю по 2 рубля за сборку и т.д. Максимально начиная с 251 яблока я получаю по 5 рублей за каждое собранное яблоко. 
 Так я получил сумму за собранные яблоки. Дальше эта сумма в запросе считается по другим фруктам и овощам и в конце я прихожу к какой-то итоговой сумме
 |  | 
    
        | 7
    
        1Сергей   27.03.25✎ 12:47 | 
        ВЫБРАТЬ
4300 КАК Итог
 |  | 
    
        | 8
    
        toypaul   гуру 27.03.25✎ 12:53 | 
        100 * 1 + 50 * 2 + 50 * 3 + 50 * 4 + (N - 250) * 5     |  | 
    
        | 9
    
        Garykom   гуру 27.03.25✎ 13:05 | 
        (6) Можно но сложно
Извращение будет еще то и не гибкое
 
 Лучше отдельно кодом рассчитать таблицу коэффициентов
 Засунуть ее как ВТ в запрос и соединять
 
 Фактически тебе для некоего числа надо вычислить функцию от этого числа
 Т.к. функция интервальная то можно подготовить таблицу параметров для использования:
 1|100|1
 101|150|2
 ...
 251|NULL|5
 
 Затем соединяешь хитрым образом (выбор когда.. тогда..) по условиям, получая в несколько колонок последовательно нужные цифры
 
 Например для 350:
 350|100*1|50*2|...|(350-250) * 5
 
 Ну и в конце просуммировать
 |  | 
    
        | 10
    
        Dmitrii   гуру 27.03.25✎ 13:08 | 
        (6) Что-то типа такого
 
ВЫБОР
 КОГДА КоличествоЯблок <= 100 ТОГДА КоличествоЯблок * 1
 КОГДА КоличествоЯблок <= 150 ТОГДА 100 * 1 + (КоличествоЯблок - 100) * 2
 КОГДА КоличествоЯблок <= 200 ТОГДА 100 * 1 + 50 * 2 + (КоличествоЯблок - 150) * 3
 КОГДА КоличествоЯблок <= 250 ТОГДА 100 * 1 + 50 * 2 + 50 * 3 + (КоличествоЯблок - 200) * 4
 КОГДА КоличествоЯблок > 250 ТОГДА 100 * 1 + 50 * 2 + 50 * 3 + 50 * 4 + (КоличествоЯблок - 250) * 5
 ИНАЧЕ 0
 КОНЕЦ КАК Итог
 
 |  | 
    
        | 11
    
        Garykom   гуру 27.03.25✎ 13:09 | 
        (9)+ Если числа условно "небольшие"
То можно как ВТ передавать (или даже хранить в базе) уже полностью рассчитанную таблицу
 1 - 1
 2 - 2
 3 - 3
 ...
 100 - 100
 101 - 102
 102 - 104
 ...
 
 тогда банальное соединение даст искомое число
 но табличка может быть великовата
 как и долгий ее расчет - заполнение
 |  | 
    
        | 12
    
        Garykom   гуру 27.03.25✎ 13:10 | 
        (10) Совершенно негибко
Параметры расчета хранить внутри запросов изврат
 
 Конечно может быть выходом текст запроса кодом формировать
 |  | 
    
        | 13
    
        Garykom   гуру 27.03.25✎ 13:11 | 
        (12)+ Если кол-во скачков (добавляемых колонок) заранее известно проще (9)
А сами пороги (от/до) и коэффициенты могут легко меняться и браться из ВТ
 |  | 
    
        | 14
    
        Мультук   гуру 27.03.25✎ 13:12 | 
        (12) 
 Имхо, интервальная таблиц плюс код, который будет автоматом по этой таблице генерировать текст запроса из (10)
 
 P.S.
 Пока писал, все всё уже посоветовали :-(
 |  | 
    
        | 15
    
        VKS   27.03.25✎ 14:47 | 
        Идея понятна, всем спасибо     |  |