0
- 07.02.2013 - 22:53
|
Вот запрос ПервыйПредел = 3000 ; ВторойПредел = 5000 ; ТретийПредел = 10000 ; СтавкаБонуса1 = 0.03 ; СтавкаБонуса2 = 0.05; СтавкаБонуса3 = 0.07; ДатаДок = Дата ; НачалоПериода = ДобавитьМесяц((НачалоМесяца(ДатаДок)),-1); КонецПериода = КонецМесяца(НачалоПериода) ; Макет = Документы.ЧекККМ.ПолучитьМакет("Макет"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Бонусы.Период, | Бонусы.НомерКарты, | Бонусы.СуммаПокупки КАК СуммаПокупки | |ИЗ | РегистрНакопления.Бонусы КАК Бонусы |ГДЕ | Бонусы.Период МЕЖДУ &НачалоПериода И &КонецПериода | И Бонусы.НомерКарты = &НомерКарты | |СГРУППИРОВАТЬ ПО | Бонусы.Период, | Бонусы.НомерКарты, | Бонусы.СуммаПокупки |ИТОГИ | СУММА(СуммаПокупки) |ПО | ОБЩИЕ"; Запрос.УстановитьПараметр("КонецПериода", КонецПериода); Запрос.УстановитьПараметр("НачалоПериода",НачалоПе риода ); Запрос.УстановитьПараметр("НомерКарты", НомерКарты); Результат = Запрос.Выполнить(); ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппир овкам); ВыборкаОбщийИтог.Следующий(); ВыборкаДетальныеЗаписи = ВыборкаОбщийИтог.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбщСуммаПокупок = ВыборкаОбщийИтог.СуммаПокупки ; КонецЦикла; Если ОбщСуммаПокупок <= ПервыйПредел и ОбщСуммаПокупок >= 0 Тогда КоэффБонуса = СтавкаБонуса1 ; КонецЕсли ; Если ОбщСуммаПокупок <= ВторойПредел и ОбщСуммаПокупок >= ПервыйПредел Тогда КоэффБонуса = СтавкаБонуса2 ; КонецЕсли ; Если ОбщСуммаПокупок <= ТретийПредел и ОбщСуммаПокупок >= ВторойПредел Тогда КоэффБонуса = СтавкаБонуса3 ; КонецЕсли ; Если ОбщСуммаПокупок > ТретийПредел Тогда КоэффБонуса = СтавкаБонуса3 ; КонецЕсли ; СуммаБонуса = ЭлементыФормы.Всего.Значение * КоэффБонуса ; ЭлементыФормы.СуммаБонуса.Значение = СуммаБонуса ; Ситуация следующая Сумма считается за предыдущий месяц но когда новый номер карты т.е. оборотов и регистраторов нету вообще!! То естественно не проходит первое сравнение общей суммы с первым пределом !! Как обыграть эту ситуацию что-бы получилось КоэффБонуса = СтавкаБонуса1 | |
1
- 07.02.2013 - 23:18
|
1. Огрести звездюлей на форуме. 2. Вернуть конфигурацию на полную поддержку без возможности изменений. 2. Купить книжку или записаться на курсы. 3. Не подходить к боевым базам пока не закончишь курсы или хотя бы книжку. | |
2
- 07.02.2013 - 23:23
| (1) А по существу?? | |
3
- 08.02.2013 - 00:53
|
А по существу, Reaper шибко не прав: при подобном низком уровне кодирования курсы не помогут. У самого-то от своих "Если" не поплохело? | |
4
- 08.02.2013 - 01:02
|
+3 И нафига в выборке формировать поля, которые не используются? Да еще группировть их :D Не чуствуешь ты этого механизма... | |
5
- 08.02.2013 - 01:26
| ... И вообще весь запрос можно изобразить одной строкой. | |
6
- 08.02.2013 - 04:57
|
запрос хорош! сам-то с какова горада? | |
7
- 08.02.2013 - 05:26
| мамочки мои ) | |
8
- 08.02.2013 - 13:14
| перед циклом обнуляй сумму, а после цикла первое сравнение на ноль ставь - твой коэф. Лишние группировки убрать, условие ГДЕ тоже, надо вритуальную таблицу оборотов с параметрами из где использовать. | |
9
- 08.02.2013 - 13:16
|
Запрос.Текст = "ВЫБРАТЬ | Бонусы.Период, | СУММА(Бонусы.СуммаПокупки) КАК СуммаПокупки | |ИЗ | РегистрНакопления.БонусыОбороты(&НачалоПериода,&Ко нецПериода, НомерКарты = &НомерКарты) КАК Бонусы | | |СГРУППИРОВАТЬ ПО | Бонусы.Период |ИТОГИ | СУММА(СуммаПокупки) |ПО | ОБЩИЕ"; | |
10
- 08.02.2013 - 13:23
|
ОбщСуммаПокупок = 0; ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппир овкам); Если ВыборкаОбщийИтог.Следующий() тогда ВыборкаДетальныеЗаписи = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.По Группировкам); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбщСуммаПокупок = ВыборкаОбщийИтог.СуммаПокупки; КонецЦикла; конецЕсли; Если ОбщСуммаПокупок <= ПервыйПредел Тогда КоэффБонуса = СтавкаБонуса1 ; ИначеЕсли ОбщСуммаПокупок <= ВторойПредел Тогда КоэффБонуса = СтавкаБонуса2 ; ИначеЕсли ОбщСуммаПокупок <= ТретийПредел Тогда КоэффБонуса = СтавкаБонуса3 ; // какой тут смысл ??? ИначеЕсли ОбщСуммаПокупок > ТретийПредел Тогда КоэффБонуса = СтавкаБонуса3 ; КонецЕсли ; | |
11
- 08.02.2013 - 13:24
| нет бы взять и помочь начинающему, не все же сразу стали профи | |
12
- 08.02.2013 - 14:51
| 11-Jimbo > И тебе про реквизиты регистров в запросах помнить :)) | |
13
- 08.02.2013 - 15:06
| не ясна ни конфа, ни структура регистра. (12) предложи свой вариант | |
14
- 08.02.2013 - 16:11
| Конструкция "ВЫБОР КОГДА ТОГДА КОНЕЦ" не канает? | |
| Интернет-форум Краснодарского края и Краснодара |