Имя: Пароль:
1C
1С v8
Запрос тупит... Взгляньте свежим взглядом, плз
0 Темный
 
14.03.12
11:46
Вот запрос:

"ВЫБРАТЬ
   |    СчетНаОплатуПокупателюТовары.Номенклатура КАК НоменклатураСчет,
   |    СчетНаОплатуПокупателюТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатурыСчет,
   |    СчетНаОплатуПокупателюТовары.Количество КАК КоличествоСчет,
   |    ВЫБОР
   |        КОГДА Реализации.Количество ЕСТЬ NULL
   |            ТОГДА 0
   |        ИНАЧЕ Реализации.Количество
   |    КОНЕЦ КАК Количество,
   |    ВЫБОР
   |        КОГДА Реализации.СерияНоменклатуры ЕСТЬ NULL
   |            ТОГДА &ПустаяСерия
   |        ИНАЧЕ Реализации.СерияНоменклатуры
   |    КОНЕЦ КАК Серия,
   |    Реализации.Ссылка КАК Реализация,
   |    СчетНаОплатуПокупателюТовары.Цена,
   |    СчетНаОплатуПокупателюТовары.Сумма
   |ИЗ
   |    Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары
   |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
   |            РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
   |            РеализацияТоваровУслугТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |            РеализацияТоваровУслугТовары.СерияНоменклатуры КАК СерияНоменклатуры,
   |            СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
   |            РеализацияТоваровУслугТовары.Ссылка КАК Ссылка
   |        ИЗ
   |            Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
   |        ГДЕ
   |            РеализацияТоваровУслугТовары.Ссылка.Организация = &Организация
   |            И РеализацияТоваровУслугТовары.Ссылка.Контрагент = &Контрагент
   |            И РеализацияТоваровУслугТовары.Ссылка.ДоговорКонтрагента = &ДоговорКонтрагента
   |        
   |        СГРУППИРОВАТЬ ПО
   |            РеализацияТоваровУслугТовары.Номенклатура,
   |            РеализацияТоваровУслугТовары.ХарактеристикаНоменклатуры,
   |            РеализацияТоваровУслугТовары.СерияНоменклатуры,
   |            РеализацияТоваровУслугТовары.Ссылка) КАК Реализации
   |        ПО СчетНаОплатуПокупателюТовары.Номенклатура = Реализации.Номенклатура
   |            И СчетНаОплатуПокупателюТовары.ХарактеристикаНоменклатуры = Реализации.ХарактеристикаНоменклатуры
   |ГДЕ
   |    СчетНаОплатуПокупателюТовары.Ссылка = &Ссылка
   |
   |УПОРЯДОЧИТЬ ПО
   |    Реализация УБЫВ";

Все работало! Добавил цену и сумму - из правой таблицы перестал выбирать...
1 Темный
 
14.03.12
11:47
Опа.
Нашел :-)
2 Wobland
 
14.03.12
11:47
(1) обращайся
3 Темный
 
14.03.12
11:47
Всем спасибо!
4 Темный
 
14.03.12
11:50
Хотя нет, поторопился
Почему из правой таблицы ничего не выбирает?
5 Maxus43
 
14.03.12
11:55
Сорединение с вложеным запросом - ЗЛО, перепиши на ВТ лучше, и работать в конструкторе с ними приятней
6 Wobland
 
14.03.12
11:55
(4) условие соединения проверяй
7 Темный
 
14.03.12
11:58
(6)Работало ведь, ничего не трогал. Только цену и сумму добавил. Да и сейчас не вижу ошибки
(5) Почему зло? Всегда так делаю, проблем не замечал.
8 Maxus43
 
14.03.12
12:00
(7) SQL другого мнения.
может выбрать не оптимальный план запроса
9 Maxus43
 
14.03.12
12:00
ВТ наше всё!
10 pumbaEO
 
14.03.12
12:04
ПО СчетНаОплатуПокупателюТовары.Номенклатура = Реализации.Номенклатура
   |            И СчетНаОплатуПокупателюТовары.ХарактеристикаНоменклатуры = Реализации.ХарактеристикаНоменклатуры

У тебя, что на один счет выбираются все реализации по одному контрагенту и договору за все время что были? Т.е. 5 счетов, 5 реализций, но в этом запросе будет 1 счет и 5 реализаций по этой номенклатуре?

Зачем по организации отбирать, если договор содержит в себе организацию? РеализацияТоваровУслугТовары может без договора провестись?
11 pumbaEO
 
14.03.12
12:07
Реализации выбираются все, даже удаленные и не проведенные...
12 Темный
 
14.03.12
12:12
(10) Да, выбираю все реализации на один счет. Насчет контрагента и организации - можно убрать, все есть в договоре, в принципе.
(11) Верное замечание, поправлю.
13 pumbaEO
 
14.03.12
12:13
А сам запрос
ВЫБРАТЬ
   |            РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
   |            РеализацияТоваровУслугТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |            РеализацияТоваровУслугТовары.СерияНоменклатуры КАК СерияНоменклатуры,
   |            СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
   |            РеализацияТоваровУслугТовары.Ссылка КАК Ссылка
   |        ИЗ
   |            Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
   |        ГДЕ
   |            РеализацияТоваровУслугТовары.Ссылка.Организация = &Организация
   |            И РеализацияТоваровУслугТовары.Ссылка.Контрагент = &Контрагент
   |            И РеализацияТоваровУслугТовары.Ссылка.ДоговорКонтрагента = &ДоговорКонтрагента
   |        
   |        СГРУППИРОВАТЬ ПО
   |            РеализацияТоваровУслугТовары.Номенклатура,
   |            РеализацияТоваровУслугТовары.ХарактеристикаНоменклатуры,
   |            РеализацияТоваровУслугТовары.СерияНоменклатуры,
   |            РеализацияТоваровУслугТовары.Ссылка
че нибудь выбирает? Что консоль запросов показывает?
14 Темный
 
14.03.12
12:14
(13) Да, все выбиралось и работало. Добавил в левую таблицу цену и сумму - и опа...
15 asady
 
14.03.12
12:25
(5)+1
(7) читай ИТС или в профайлере глянь на ту срань что получается из твоего запроса

Народ - кто-нить понял смысл скрытый в этом запросе?
16 Темный
 
14.03.12
12:25
Гы. Лол. Ошибка найдена. Ошибка - в данных. Проверял на одном счете, оказывается, рядом есть еще один счет того же контрагента на ту же сумму, но по другой организации. А по "другой" организации отгрузок не было.
17 Темный
 
14.03.12
12:28
(15) Скрытый смысл такой - У нас много возвратов, причем возвращают сразу много позиций по многим реализациям (ну просто так коммисионая торговля оформляется). Хочу так сделать - менеджеры заносят весь возврат в счет, а по кнопке создается несколько документов "Возврат" с привязкой к реализациям.
18 Темный
 
14.03.12
12:29
то есть счет - просто контейнер.