|
v7: "вечный" цикл при выборке из запроса :) | ☑ | ||
---|---|---|---|---|
0
palpetrovich
20.03.15
✎
14:58
|
кодик:
Пока Запрос.Группировка(1) = 1 Цикл Пока Запрос.Группировка(2, -1) = 1 Цикл Прервать; КонецЦикла; КонецЦикла; мне из второй выборки нужно только одно, последнее по упорядочиванию, значение - вроде все логично, получил - прервал, ан нет, низзя тут так оказывается что можно сделать для реализации сабжа делать? |
|||
1
IVT_2009
20.03.15
✎
14:59
|
может выгрузить в ТЗ и взять это последнее значение?
|
|||
2
palpetrovich
20.03.15
✎
15:02
|
(1) это понятно, непонятно почему так с выборкой получается
зы: без "Прервать;" - все отрабатывает как надо |
|||
3
Медведик
20.03.15
✎
15:04
|
(2) Заведи переменную-флаг, как нашел нужное значение - флаг сбросил и целевой код пусть по "Если Флаг = 1" пропускается.
Топорно, но работать будет. |
|||
4
palpetrovich
20.03.15
✎
15:07
|
(3) ну, примерно так сделал
Пока Запрос.Группировка(1) = 1 Цикл ПечДок = ""; Пока Запрос.Группировка(2, -1) = 1 Цикл Если ПечДок = "" Тогда ПечДок = Запрос.Док; КонецЕсли; КонецЦикла; Сообщить(""+Запрос.Товар+" "+ПечДок+" Цена= "+ПечЦена); КонецЦикла; |
|||
5
Lazy Stranger
20.03.15
✎
15:13
|
а если внутреннюю выборку не обходить целиком?
Пока Запрос.Группировка(1) = 1 Цикл ПечДок = ""; Если Запрос.Группировка(2, -1) = 1 тогда ПечДок = Запрос.Док; КонецЕсли; Сообщить(""+Запрос.Товар+" "+ПечДок+" Цена= "+ПечЦена); КонецЦикла; |
|||
6
Злопчинский
20.03.15
✎
15:13
|
боже, какая мутная хрень.
воспользуйтесь классическим гоуту если другое не подходит |
|||
7
Lazy Stranger
20.03.15
✎
15:14
|
но вообще-то, емнип, "прервать" в конструкции из (0) вроде работало
|
|||
8
palpetrovich
20.03.15
✎
15:18
|
(5) "Если" я пробовал изначально, конструкция "цикл+прервать" - уже потом, по результату с вечным циклом..
|
|||
9
palpetrovich
20.03.15
✎
15:21
|
(7) так работает
Пока Запрос.Группировка(2) = 1 Цикл так не работает Пока Запрос.Группировка(2, -1) = 1 Цикл |
|||
10
WebberNSK
20.03.15
✎
15:32
|
(0) запросом получай сразу что нужно
нафига так писать код |
|||
11
palpetrovich
20.03.15
✎
15:40
|
(10) научи пожалуйста, в результате нужна плоская табличка со структурой строк:
Товар-Поставщик-ПоследнийПриходныйДокумент-ЦенаПрихода-ОстатокНаСкладах |
|||
12
palpetrovich
20.03.15
✎
15:57
|
(10) время вышло - ты балабол :)
|
|||
13
Torquader
20.03.15
✎
16:34
|
А что получается в запросе ?
Может быть, там вообще всё кардинально нужно переделывать, чем перебирать весь результат, чтобы увидеть конец ? |
|||
14
Злопчинский
20.03.15
✎
17:33
|
(8) Прервать прерывает внешний цикл ближайший, а не все внешние..
|
|||
15
Злопчинский
20.03.15
✎
17:35
|
(11) можно попробовать, но геморно будет - придется тянуть из регистра партий, а в партиях у пиплов обычно бардак
|
|||
16
Злопчинский
20.03.15
✎
17:36
|
Можно взять регистр остатки на складах, склеить с Справочник.Партии (если ВЕДЕТСЯ ПАРТИОННЫЙ УЧЕТ) - взять последний элемент спр.партии для тек.номенклатуры - из него вытащить прих.документ и цену
|
|||
17
palpetrovich
20.03.15
✎
17:53
|
(14) естествеено :)
(16) справочника партии нет, из регистра Партии, - прихДок, если он не в выбранном периоде, взять неоткуда, поэтому я "склеил" запрос к регистру остатков с запросом по документам. В общем костыль из (4) работает и, пока, этого хватает |
|||
18
Ёпрст
20.03.15
✎
18:06
|
(0)
забудь про метод -1 в группировке, он всегда так криво работал делай упоряддочивание в самом запросе. |
|||
19
Ёпрст
20.03.15
✎
18:40
|
(11) по какому полю нужна сортировка по-убыванию?
|
|||
20
Ёпрст
20.03.15
✎
18:41
|
всё в чорном запросе можно слепить, почти вссё.
|
|||
21
palpetrovich
20.03.15
✎
18:56
|
(19) |Группировка Док Упорядочить по Док.ДатаДок;
|
|||
22
Ёпрст
20.03.15
✎
19:29
|
(21)
это же элементарно, ватсон |
|||
23
Ёпрст
20.03.15
✎
19:31
|
Функция Вася = Сумма (Число(КонДата-ДатаДок));
... Группировка Док УпорядочитьПО Вася; |
|||
24
palpetrovich
21.03.15
✎
10:47
|
(23) прикольно, спасибо :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |