|
Регистр НАкопления не выполнение запроса | ☑ | ||
---|---|---|---|---|
0
PochtiUser
16.04.13
✎
14:55
|
Доброе время суток всем!! Обрисую в вкратце. Есть регистр накопления в котором после проведения дока записываются значения Док регистратор, Сумма покупки,Сумма бонуса.... есть запрос который считает по этому регистру определенные данные
Запрос = Новый Запрос; НачПериода = НачалоГода(ДатаДок); КонПериода = КонецГода(ДатаДок); ; Запрос.Текст = "ВЫБРАТЬ | Бонусы.Период КАК Период, | Бонусы.Регистратор, | ПРЕДСТАВЛЕНИЕ(Бонусы.Регистратор), | Бонусы.НомерКарты, | Бонусы.СуммаПокупки КАК СуммаПокупки, | Бонусы.СуммаБонуса КАК СуммаБонуса, | Бонусы.СуммаСписания КАК СуммаСписания |ИЗ | РегистрНакопления.Бонусы КАК Бонусы |ГДЕ | Бонусы.Период МЕЖДУ &НачПериода И &КонПериода | И Бонусы.НомерКарты = &НомерКарты | |УПОРЯДОЧИТЬ ПО | Период |ИТОГИ | СУММА(СуммаПокупки), | СУММА(СуммаБонуса), | СУММА(СуммаСписания) |ПО | ОБЩИЕ"; Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонПериода); Запрос.УстановитьПараметр("НомерКарты", ЭлементыФормы.Номеркарты.Значение); Результат = Запрос.Выполнить(); ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ВыборкаОбщийИтог.Следующий(); Остаток = ВыборкаОбщийИтог.СуммаБонуса-ВыборкаОбщийИтог.СуммаСписания ; ЭлементыФормы.ОстатокВывод.Значение = Остаток ; ВыборкаДетальныеЗаписи = ВыборкаОбщийИтог.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл КонецЦикла; Смысл такой - запрос считает суммы по конкретным номерам Дисконтных Карт . Если есть регистраторы с таким номерам карты то считает норм. а если запрос не выполняется естественно вываливается ошибка . Все методы применяемые к регистру накопления пробовал но толку нету. Подскажите что можно придумать ?? Надо просмотреть регистр накопления есть ли там номер карты если да то запрос. если нет то сообщить(). Всем спасибо! |
|||
1
Defender aka LINN
16.04.13
✎
14:59
|
(0) Естественно вываливается, да. Ты ж и не думаешь даже проверять - а вернул ли чего запрос, или нет
|
|||
2
GROOVY
16.04.13
✎
15:00
|
Судя по структуре регистра - это авторская нетленка. Автор нифига не понимает в том что такое регистры и зачем они нужны.
|
|||
3
Miss1C
16.04.13
✎
15:03
|
(0) Попытка Исключение КонецПопытки;
|
|||
4
PochtiUser
16.04.13
✎
15:17
|
Miss1C Спасибо все получилось!! Тема закрыта !! Всем спасибо за внимание.
|
|||
5
Defender aka LINN
16.04.13
✎
15:20
|
(4) ППЦ
|
|||
6
vicof
16.04.13
✎
15:32
|
спасибо, поржал
|
|||
7
GROOVY
16.04.13
✎
15:50
|
(5) Не ну а чё...
|
|||
8
НЕА123
16.04.13
✎
15:56
|
Если ВыборкаОбщийИтог.Следующий() Тогда
Остаток = ВыборкаОбщийИтог.СуммаБонуса-ВыборкаОбщийИтог.СуммаСписания ; Иначе Остаток = 0; КонецЕсли; можно (в целях экономии) Остаток = ?(ВыборкаОбщийИтог.Следующий(), ВыборкаОбщийИтог.СуммаБонуса-ВыборкаОбщийИтог.СуммаСписания, 0) |
|||
9
sikuda
16.04.13
✎
16:00
|
(3) Ну это совсем не то...
1. Используй в запросе виртуальные таблицы... 2. Проверяй результаты операций типа ВыборкаОбщийИтог.Следующий(); 3. Ну и посмотри видео от GROOVY(Павел Чистов) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |