|
что я делаю не так? (запрос) Ø (Asmody 02.12.2014 08:01) | ☑ | ||
---|---|---|---|---|
0
nevopros
02.12.14
✎
07:11
|
запрос1=новый запрос;
для каждого стр из объект.Товары цикл запрос1.Текст="ВЫБРАТЬ ПЕРВЫЕ 1 | РеализацияТоваровУслуг.Товары.( | Номенклатура, | Цена | ) |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Проведен = ИСТИНА | И РеализацияТоваровУслуг.Товары.Номенклатура = &ном | И РеализацияТоваровУслуг.Партнер = &партнер | |УПОРЯДОЧИТЬ ПО | РеализацияТоваровУслуг.Дата УБЫВ"; запрос1.УстановитьПараметр("ном",стр.номенклатура); запрос1.УстановитьПараметр("партнер",объект.Партнер); итогз=запрос1.Выполнить().Выгрузить(); если итогз.Количество()>0 тогда стр.ценапр=итогз[0].цена; конецесли; конеццикла; В итоге ошибка - поле не обнаружено (цена) |
|||
1
Cube
02.12.14
✎
07:11
|
(0) Расстрелять!
|
|||
2
Chameleon1980
02.12.14
✎
07:13
|
(0) на тебя ругаются ужо.
в том числе за запрос в цихле |
|||
3
nevopros
02.12.14
✎
07:14
|
(2)
а как без цикла тут? |
|||
4
Chameleon1980
02.12.14
✎
07:15
|
а прочитать дык вообще красота
|
|||
5
Cube
02.12.14
✎
07:15
|
(3) Без цикла никак. Без запроса в цикле - запросто...
|
|||
6
break
02.12.14
✎
07:16
|
(2) в запросе можно напрямую и к табличной части обращаться
|
|||
7
Мимохожий Однако
02.12.14
✎
07:17
|
(0)В чём цель сия творения?
|
|||
8
nevopros
02.12.14
✎
07:20
|
(7)
в заказе последнюю цену реализации по клиенту получить |
|||
9
Cube
02.12.14
✎
07:24
|
(8) Про регистры что-нибудь слыхал? Для чего они предназначены?
|
|||
10
nevopros
02.12.14
✎
07:25
|
В общем сам доделал. Работает за доли секунды.
&НаСервере Процедура ВспомнитьЦенуНаСервере() запрос1=новый запрос; для каждого стр из объект.Товары цикл запрос1.Текст="ВЫБРАТЬ ПЕРВЫЕ 1 | РеализацияТоваровУслугТовары.Ссылка, | РеализацияТоваровУслугТовары.Цена КАК Ц1, | РеализацияТоваровУслугТовары.Номенклатура |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.Ссылка.ПометкаУдаления = ЛОЖЬ | И РеализацияТоваровУслугТовары.Номенклатура = &Ном | И РеализацияТоваровУслугТовары.Ссылка.Партнер = &Партнер"; запрос1.УстановитьПараметр("Ном",стр.номенклатура); запрос1.УстановитьПараметр("Партнер",объект.Партнер); итогз=запрос1.Выполнить().Выгрузить(); если итогз.Количество()>0 тогда стр.ценапр=итогз[0].Ц1; конецесли; конеццикла; КонецПроцедуры |
|||
11
Любопытная
02.12.14
✎
07:26
|
Фу, какая гадость
Убрать к чертовой матери цикл, товары подавать в запрос пачкой. |
|||
12
wertyu
02.12.14
✎
07:27
|
(11) охлаждёнными и под соусом
|
|||
13
Cube
02.12.14
✎
07:28
|
(10) "Работает за доли секунды"
На документе в 1000 строк проверял? А ты проверь, прежде чем делать такие голословные выводы. Переделывай на один большой красивый запрос или расстрел! |
|||
14
nevopros
02.12.14
✎
07:29
|
(13)
какой нах расстрел, я на фикси, тут щас фанфары будут ) |
|||
15
Зэни Эль Мутабос
02.12.14
✎
07:30
|
(0)> В итоге ошибка - поле не обнаружено (цена)
Попробуй стр.ценапр=итогз[0].ТоварыЦена; |
|||
16
Cube
02.12.14
✎
07:32
|
(14) Можешь тешить себя мыслями о том, что ты крут, но ты ни о чем, пока что...
Хочешь быть крутым - учись, не хочешь учиться - к нам твои "довольные" клиенты прибегут за переделкой твоих наколенных поделок. А ты пойдешь двор подметать... |
|||
17
Зэни Эль Мутабос
02.12.14
✎
07:33
|
(14) > тут щас фанфары будут
Даже представить боюсь куда тебе их щасунут. |
|||
18
13_Mult
02.12.14
✎
07:36
|
тут щас фанфары будут. facepalm
|
|||
19
wertyu
02.12.14
✎
07:42
|
(8) так ты цену первой реализации получишь
|
|||
20
wertyu
02.12.14
✎
07:44
|
+(19) причем первую не по дате документа, по порядку внесения в базу
|
|||
21
wertyu
02.12.14
✎
07:45
|
+(20) а по*
|
|||
22
Любопытная
02.12.14
✎
07:48
|
(14) А тебя не Рома случаем зовут?
|
|||
23
nevopros
02.12.14
✎
07:48
|
(19)
да, тут не весь код, там еще сортировка вставлена по убыванию (16) а можете нарисовать, как красиво, с вашей точки зрения? |
|||
24
nevopros
02.12.14
✎
07:52
|
500 позиций 30сек, для конторы терпимо.
|
|||
25
Cube
02.12.14
✎
07:53
|
(23) "а можете нарисовать, как красиво, с вашей точки зрения?"
Я бы сделал так: 1). Объект.Товары в ВТ запроса. 2). К этой ВТ добавляем колонку с датой последней продажи (из регистра) 3). Находим последний регистратор по дате из п.2. 4). Получаем цену (стоимость/Количество) из регистра по регистратору из п.3. 5). Загружаем результат запроса прямо в Объект.Товары. Даже без циклов... |
|||
26
Cube
02.12.14
✎
07:54
|
(24) 30 сек - это писец)))) Вариант (25) отработает на порядок быстрее.
|
|||
27
Cube
02.12.14
✎
07:56
|
(25) И это всё в одном запросе.
|
|||
28
wertyu
02.12.14
✎
07:56
|
(25) неправильно, в продажах партнёра нет, надо внутреннее соединение делать
|
|||
29
Cube
02.12.14
✎
07:57
|
(28) Смотря где... В УПП есть.
|
|||
30
nevopros
02.12.14
✎
08:00
|
у меня ут 11
|
|||
31
Asmody
02.12.14
✎
08:01
|
Тема не отражает суть сообщения
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |