|
Значение не определено !! Прошу помощи !! | ☑ | ||
---|---|---|---|---|
0
PochtiUser
02.02.13
✎
23:27
|
Доброе время суток! Вопрос След характера. В процедуре засчитывается сумма бонуса начисленная за предыдущий месяц от суммы покупки . но вопрос в следующем если нет оборота в предыдущем месяце то тогда ошибка "Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов Если ОбщСуммаПокупок <= ПервыйПредел". С NULL пробовал но ничего не получилось !!! как правильно это сделать???
ПервыйПредел = 3000 ; ВторойПредел = 5000 ; ТретийПредел = 10000 ; СтавкаБонуса1 = 0.03 ; СтавкаБонуса2 = 0.05; СтавкаБонуса3 = 0.07; ДатаДок = Дата ; НачалоПериода = ДобавитьМесяц((НачалоМесяца(ДатаДок)),-1); КонецПериода = КонецМесяца(НачалоПериода) ; Макет = Документы.ЧекККМ.ПолучитьМакет("Макет"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Бонусы.Период, | Бонусы.НомерКарты, | СУММА(Бонусы.СуммаПокупки) КАК СуммаПокупки |ИЗ | РегистрНакопления.Бонусы КАК Бонусы |ГДЕ | Бонусы.Период МЕЖДУ &НачалоПериода И &КонецПериода | И Бонусы.НомерКарты = &НомерКарты | |СГРУППИРОВАТЬ ПО | Бонусы.Период, | Бонусы.НомерКарты |ИТОГИ | СУММА(СуммаПокупки) |ПО | ОБЩИЕ"; Запрос.УстановитьПараметр("КонецПериода", КонецПериода); Запрос.УстановитьПараметр("НачалоПериода",НачалоПериода ); Запрос.УстановитьПараметр("НомерКарты", НомерКарты); Результат = Запрос.Выполнить(); ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ВыборкаОбщийИтог.Следующий(); ВыборкаДетальныеЗаписи = ВыборкаОбщийИтог.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбщСуммаПокупок = ВыборкаОбщийИтог.СуммаПокупки ; КонецЦикла; Если ОбщСуммаПокупок <= ПервыйПредел и ОбщСуммаПокупок >= 0 Тогда КоэффБонуса = СтавкаБонуса1 ; КонецЕсли ; Если ОбщСуммаПокупок <= ВторойПредел и ОбщСуммаПокупок >= ПервыйПредел Тогда КоэффБонуса = СтавкаБонуса2 ; КонецЕсли ; Если ОбщСуммаПокупок <= ТретийПредел и ОбщСуммаПокупок >= ВторойПредел Тогда КоэффБонуса = СтавкаБонуса3 ; КонецЕсли ; Если ОбщСуммаПокупок > ТретийПредел Тогда КоэффБонуса = СтавкаБонуса3 ; КонецЕсли ; СуммаБонуса = ЭлементыФормы.Всего.Значение * КоэффБонуса ; ЭлементыФормы.СуммаБонуса.Значение = СуммаБонуса ; //запись значения в форму документа |
|||
1
Ork
02.02.13
✎
23:31
|
(0) Буду краток. Задолбали.
Прочтите наконец о функции языка запросов ЕстьNULL(). |
|||
2
GROOVY
02.02.13
✎
23:40
|
Лефмихалыч обрати внимание на ipшник ТС. Не дай бог к вам работать пойдет.
|
|||
3
PochtiUser
03.02.13
✎
00:02
|
"ВЫБРАТЬ
| Бонусы.Период, | Бонусы.НомерКарты, | СУММА(Бонусы.СуммаПокупки) КАК СуммаПокупки, |ЕСТЬNULL (Бонусы.СуммаПокупки,0) | |ИЗ | РегистрНакопления.Бонусы КАК Бонусы |ГДЕ | Бонусы.Период МЕЖДУ &НачалоПериода И &КонецПериода | И Бонусы.НомерКарты = &НомерКарты | |СГРУППИРОВАТЬ ПО | Бонусы.Период, | Бонусы.НомерКарты, | Бонусы.СуммаПокупки |ИТОГИ | СУММА(СуммаПокупки) |ПО | ОБЩИЕ"; так не работает тоже! |
|||
4
GROOVY
03.02.13
✎
00:07
|
посмотри муьтики: http://1c.chistov.pro/search/label/Запросы
Особенно обрати внимание на работу с итогами и иерархический обход выборки запроса. |
|||
5
PochtiUser
03.02.13
✎
00:08
|
спасибо сейчас гляну!!
|
|||
6
Mikhail Volkov
03.02.13
✎
06:30
|
(4) Есть возможность скачать их? А то инет медленный...
|
|||
7
Лефмихалыч
модератор
03.02.13
✎
06:54
|
(2) ой, да ладно, он же честно признался, что почти юзер. Да и учится же человек, глядишь и выйдет толк через какое-то время
|
|||
8
PochtiUser
05.02.13
✎
16:03
|
ЕСЛИ тАК
Выбрать ЕСТЬNULL(Бонусы.Период,111)КАК Период, ЕСТЬNULL(Бонусы.НомерКарты,222)КАК НомерКарты, ЕСТЬNULL(СУММА(Бонусы.СуммаПокупки),333) КАК СуммаПокупки ИЗ РегистрНакопления.Бонусы КАК Бонусы Где НомерКарты = 99 И Период МЕЖДУ ДАТАВРЕМЯ (2013,1,1) И ДАТАВРЕМЯ (2013,2,1) СГРУППИРОВАТЬ ПО Период , НомерКарты ИТОГИ СУММА(СуммаПокупки) ПО НомерКарты Все Считает но если номер карты изменить допустим на 70 по которой не было оборотов то соответственно и регистратора нету и записей в регистре соответственно ОбщСуммаПокупок = ВыборкаОбщийИтог.СуммаПокупки Вообще не существует !! Подскажите пожалуйста как выкрутится что бы КоэффБонуса = СтавкаБонуса1 при расчете карты без регистраторов за определенный период.!! Всем спасибо ! |
|||
9
PochtiUser
06.02.13
✎
09:31
|
up
|
|||
10
НафНаф
06.02.13
✎
09:34
|
(2) можно подумать там боги сидят
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |