|
Операции сравнения на больше-меньше допустимы только для значений совпадающих пр | ☑ | ||
---|---|---|---|---|
0
dante_a123
27.04.16
✎
18:53
|
Здравствуйте.Возникла проблемка,которую я не могу решить уже более часа.
Ошибка - Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов код Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! // регистр Взаиморасчеты Приход Движения.Взаиморасчеты.Записывать = Истина; Движение = Движения.Взаиморасчеты.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.ПоДокументу = Ссылка; Движение.Контрагент = Контрагент; Движение.Сумма = СуммаПоДокументу; Движения.Взаиморасчеты.Записать(); //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВзаиморасчетыОстатки.ПоДокументу, | ЕСТЬNULL(ВзаиморасчетыОстатки.СуммаОстаток, 0) КАК СуммаОстаток, | ВзаиморасчетыОстатки.Контрагент.Срок, | ВзаиморасчетыОстатки.Контрагент.Лимит КАК КонтрагентЛимит, | ВзаиморасчетыОстатки.ПоДокументу.Дата КАК ПоДокументуДата |ИЗ | РегистрНакопления.Взаиморасчеты.Остатки(&МоментВремени, Контрагент = &Контрагент) КАК ВзаиморасчетыОстатки | |УПОРЯДОЧИТЬ ПО | ПоДокументуДата |ИТОГИ | СУММА(СуммаОстаток), | МАКСИМУМ(КонтрагентЛимит), | МИНИМУМ(ПоДокументуДата) |ПО | ОБЩИЕ"; Запрос.УстановитьПараметр("Контрагент", Контрагент); Запрос.УстановитьПараметр("МоментВремени", МоментВремени()); РезультатЗапроса = Запрос.Выполнить(); ВыборкаОбщийИтог = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ВыборкаОбщийИтог.Следующий(); Если (ВыборкаОбщийИтог.СуммаОстаток) > 0 Тогда Если ВыборкаОбщийИтог.СуммаОстаток>ВыборкаОбщийИтог.КонтрагентЛимит Тогда отказ=истина; сообщить("лимит превышен"); возврат конецесли; конецесли; //Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // // Вставить обработку выборки ВыборкаДетальныеЗаписи //КонецЦикла; // //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры Как исправить глупую ситуацию?Почему я не получаю результатов от запроса? |
|||
1
MUXACb
27.04.16
✎
19:03
|
(0) Остаток равен нулю, т.е выборка пустая
|
|||
2
Mankubus
27.04.16
✎
19:03
|
в отладчике посмотри какие типы ты сравниваешь
|
|||
3
1sanekmaloi1
27.04.16
✎
19:05
|
Да там Null похоже
|
|||
4
dante_a123
27.04.16
✎
19:07
|
(3) я же указал ЕСТЬNULL(ВзаиморасчетыОстатки.СуммаОстаток, 0) КАК СуммаОстаток. как мне вообще быть в такой ситуации? (2) в отлатчике сказано что то вроде - ошибка значения
|
|||
5
Lexey_
27.04.16
✎
19:14
|
(4) "в отлатчике сказано что то вроде - ошибка значения" - отладчик пьян и пишет неразборчиво?
|
|||
6
Mankubus
27.04.16
✎
19:15
|
(4) в смысле "что-то вроде"? лень полностью написать?
|
|||
7
dante_a123
27.04.16
✎
19:28
|
(5) (6) "Ошибка чтения значения"
|
|||
8
dante_a123
27.04.16
✎
20:14
|
?
|
|||
9
MUXACb
27.04.16
✎
20:16
|
(8) Вместо ВыборкаОбщийИтог.Следующий() сделайте
Если ВыборкаОбщийИтог.Следующий() Тогда |
|||
10
bazvan
27.04.16
✎
20:21
|
КонтрагентЛимит что?
Видимо тоже надо обрамить ЕСТЬNULL |
|||
11
dante_a123
27.04.16
✎
20:49
|
(10) ошибку выбивает именно в этом моменте -
Если (ВыборкаОбщийИтог.СуммаОстаток) > 0 Тогда (9)в этом случае работает но не учитывает ограничение по лимиту,проводит все накладные подряд |
|||
12
bazvan
27.04.16
✎
21:01
|
(11) выполни запрос в отладчике и глянь что получилось в ТЗ
|
|||
13
Wern
27.04.16
✎
21:35
|
Учитывая (9) и (11) просто результат запроса пустой.
ВыборкаОбщийИтог.Следующий(); не позиционируется и суммы тоже нету. ЕстьNULL тут никак не поможет. |
|||
14
dante_a123
28.04.16
✎
14:42
|
(13) что тут поможет?
|
|||
15
salvator
28.04.16
✎
14:50
|
(14) А что нужно делать, если результат пустой?
|
|||
16
dante_a123
28.04.16
✎
14:53
|
(15) если бы я знал я бы на форум не обращался
|
|||
17
catena
28.04.16
✎
14:54
|
(14)В (9) написали уже, что тут поможет. Это будет синтаксически правильно. То, что после этого результат не соответствует вашим ожиданиям, означает, что вы неправильно реализовали задачу.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |