|
v7: Не выполняется запрос | ☑ | ||
---|---|---|---|---|
0
balak05
14.10.13
✎
14:39
|
Здравствуйте. Подскажите почему (Запрос.Группировка("Товар")) возвращает 0? Заранее спасибо.
Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса =" |Товар = Регистр.ОстаткиТоваров.Товар; |Склад = Регистр.ОстаткиТоваров.Склад; |Ост = Регистр.ОстаткиТоваров.ОстатокТовара; |Функция ПолнОст = КонОст(Ост) ; |Группировка Товар упорядочить по Товар.Наименование; |Условие ((ПолнОст <> 0) и (Склад = ВыбСклад));"; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос.Группировка("Товар") = 1 Цикл Твр = Запрос.Товар; Если Проверка(Твр)=1 Тогда СформироватьСтроку(); КонецЕсли; КонецЦикла; |
|||
1
Arh01
14.10.13
✎
14:43
|
(0) А если Запрос.Группировка(1) попробовать?
|
|||
2
balak05
14.10.13
✎
14:44
|
(1) Сначала так и было. То же самое
|
|||
3
palpetrovich
14.10.13
✎
14:45
|
а это "Условие ((ПолнОст <> 0)" зачем?
|
|||
4
balak05
14.10.13
✎
14:47
|
(3) Мне нужен список товаров у которых имеется конечный остаток
|
|||
5
palpetrovich
14.10.13
✎
14:55
|
(4) нулевых и так не будет, вполне рабочий код:
Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Товар = Регистр.ПартииТоваров.Товар; |Склад = Регистр.ОстаткиТоваров.Склад; |ОстатокТовара = Регистр.ПартииТоваров.ОстатокТовара; |Функция ОстатокТовараКонОст = КонОст(ОстатокТовара); |Группировка Товар Без групп упорядочить по Товар.Наименование; |Условие (Склад = ВыбСклад);"; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос.Группировка(1) = 1 Цикл ... Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Товар = Регистр.ПартииТоваров.Товар; |Склад = Регистр.ОстаткиТоваров.Склад; |ОстатокТовара = Регистр.ПартииТоваров.ОстатокТовара; |Функция ОстатокТовараКонОст = КонОст(ОстатокТовара); |Группировка Товар Без групп упорядочить по Товар.Наименование; |Условие (Склад = ВыбСклад);"; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос.Группировка(1) = 1 Цикл КонецЦикла; КонецЦикла; |
|||
6
palpetrovich
14.10.13
✎
14:55
|
+5 баден-баден получился :)
|
|||
7
mikecool
14.10.13
✎
14:57
|
а остатки по складу есть то?
|
|||
8
Arh01
14.10.13
✎
14:58
|
(3) Да, попробуйте убрать (ПолнОст <> 0).
|
|||
9
balak05
14.10.13
✎
15:05
|
(7) Да есть
|
|||
10
balak05
14.10.13
✎
15:05
|
(5) (8) Пробую
|
|||
11
mikecool
14.10.13
✎
15:05
|
(9) раздели условия на 2, сначала склад, потом остаток
|
|||
12
balak05
14.10.13
✎
15:09
|
(11) Выше же сказали что нулевой остаток и так не попадает, разве нет?
|
|||
13
palpetrovich
14.10.13
✎
15:09
|
(10) я надеюсь понятно, что 5 два раза скопировалось? :)
д.б. так Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Товар = Регистр.ПартииТоваров.Товар; |Склад = Регистр.ОстаткиТоваров.Склад; |ОстатокТовара = Регистр.ПартииТоваров.ОстатокТовара; |Функция ОстатокТовараКонОст = КонОст(ОстатокТовара); |Группировка Товар Без групп упорядочить по Товар.Наименование; |Условие (Склад = ВыбСклад);"; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос.Группировка(1) = 1 Цикл // тут что надо делать КонецЦикла; |
|||
14
balak05
14.10.13
✎
15:10
|
(13) Да я понял. Спасибо
|
|||
15
vladko
14.10.13
✎
15:10
|
(0) ПолнОст <> 0 - лишнее в данном случае
|
|||
16
viktor_vv
14.10.13
✎
15:16
|
Я бы даже сказал, что с таким условием
|Функция ПолнОст = КонОст(Ост) ; |Группировка Товар упорядочить по Товар.Наименование; |Условие ((ПолнОст <> 0));"; запрос вообще не выполнится, вывалится с ошибкой. ТС че-то недоговаривает. |
|||
17
viktor_vv
14.10.13
✎
15:18
|
Вот так выполнится, но за рультат не поручусь.
|Условие ((Запрос.ПолнОст <> 0));"; |
|||
18
balak05
14.10.13
✎
15:18
|
(16) может быть и вываливается. я отладчиком смотрю, и дальше не выполняю
|
|||
19
viktor_vv
14.10.13
✎
15:21
|
(18) :).
С одной группировкой, (17) нормально отработает, только такое условие бессмыслено, там и так нулевых остатков не будет, как правильно сказали (5) и (15). |
|||
20
Злопчинский
14.10.13
✎
16:03
|
указание в услвоии ссылки запрос.Коност - вполне нормально
. гораздо интереснее что будет если написать Условие (Запрос.ПолнОст = 0);"; . ??? |
|||
21
viktor_vv
14.10.13
✎
16:06
|
(20) Это условие никак не повлияет на результат, именно с "=".
|
|||
22
viktor_vv
14.10.13
✎
16:08
|
Некоторые нюансы могут быть, если для одной из группировок нижнего уровня будет указано "все вошедшие в запрос", тогда это условие вполне может нивелировать "все вошедшие в запрос". Тут уже зависит в ккой последовательности там действия выполняются.
|
|||
23
viktor_vv
14.10.13
✎
16:12
|
(21)+ Ступил. По идее должно вернуть пустой результат.
|
|||
24
viktor_vv
14.10.13
✎
16:13
|
(23) Так и получилось.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |