Имя: Пароль:
1C
1С v8
Вопрос по пакетным запросам - один из запросов как источ. параметров для другого
0 aspect
 
21.12.11
16:57
Не в курсе, возможно ли такое, но нужно понять, можно ли и как использовать результат выполнения одного из запросов как значение параметр условия для второго, вот пример:

ВЫБРАТЬ
   ЗаказПокупателяТовары.Ссылка КАК ЗаказПокупателя,
   ЗаказПокупателяТовары.Ссылка.Дата КАК Дата,
   ЗаказПокупателяТовары.Ссылка.Контрагент КАК Контрагент,
   ЗаказПокупателяТовары.Ссылка.Проект КАК Проект,
   ЗаказПокупателяТовары.Ссылка.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
   ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
   ЗаказПокупателяТовары.Номенклатура.Артикул КАК Артикул,
   ЗаказПокупателяТовары.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
   ЗаказПокупателяТовары.Номенклатура.ЦеноваяГруппа КАК ЦеноваяГруппа,
   ЗаказПокупателяТовары.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
   ЗаказПокупателяТовары.Цена КАК Цена,
   ЗаказПокупателяТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
ПОМЕСТИТЬ ЗаказТовары
ИЗ
   Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
ГДЕ
   ЗаказПокупателяТовары.Ссылка.Проведен = ИСТИНА
   И ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
   СкидкиНаценкиНоменклатуры.Период КАК ДатаНачала,
   СкидкиНаценкиНоменклатуры.ДатаОкончания КАК ДатаОкончания,
   СкидкиНаценкиНоменклатуры.ЦенаТовара КАК Цена,
   ВЫБОР
       КОГДА ЕСТЬNULL(СкидкиНаценкиНоменклатуры.ПроцентСкидкиНаценки, 0) = 0
           ТОГДА 0
       ИНАЧЕ ЕСТЬNULL(СкидкиНаценкиНоменклатуры.ПроцентСкидкиНаценки, 0)
   КОНЕЦ КАК ПроцентСкидкиНаценки
ПОМЕСТИТЬ СкидкиНаценкиНоменклатурыПроект
ИЗ
   РегистрСведений.СкидкиНаценкиНоменклатуры КАК СкидкиНаценкиНоменклатуры
ГДЕ
   СкидкиНаценкиНоменклатуры.Период < ЗаказТовары.Дата
   И СкидкиНаценкиНоменклатуры.ДатаОкончания > ЗаказТовары.Дата
   И СкидкиНаценкиНоменклатуры.ПолучательСкидки = ЗаказТовары.Контрагент
   И СкидкиНаценкиНоменклатуры.Проект = ЗаказТовары.Проект
   И СкидкиНаценкиНоменклатуры.Номенклатура = ЗаказТовары.Номенклатура
   И СкидкиНаценкиНоменклатуры.ХарактеристикаНоменклатуры = ЗаказТовары.ХарактеристикаНоменклатуры
   И СкидкиНаценкиНоменклатуры.Валюта = ЗаказТовары.ВалютаВзаиморасчетов
   И ЕСТЬNULL(СкидкиНаценкиНоменклатуры.ПроцентСкидкиНаценки, 0) = 0

УПОРЯДОЧИТЬ ПО
   ДатаНачала УБЫВ

Пишет "Поле не найдено ЗаказТовары.Дата"
1 Mort
 
21.12.11
16:58
Больше на внутреннее соединение похоже.
2 andrewks
 
21.12.11
16:59
нужно соединения использовать
3 shuhard
 
21.12.11
16:59
(0) попробуй использовать не в ГДЕ, а в ПО
4 GLazNik
 
21.12.11
16:59
Соединения нужны
5 Ненавижу 1С
 
гуру
21.12.11
17:00
(0) ну временной таблицы нет в списке таблиц второго запроса
6 Limori
 
21.12.11
17:01
А временные таблицы чем не угодили?
7 aspect
 
21.12.11
17:02
(5),(6) Т.е. только через временную?
8 andrewks
 
21.12.11
17:02
(6) вообще-то, именно они там и есть. непонятна реплика
9 aspect
 
21.12.11
17:08
(5) Имеется в виде внешняя, или временная таблица первого запроса?
10 andrewks
 
21.12.11
17:11
(9) какая ещё внешняя? ТЗ? её всё равно в ВТ придётся перегонять.

сделай уже соединение, будь мужиком!
11 aspect
 
21.12.11
17:18
(10) Соединить в обычном запросе?
12 aspect
 
21.12.11
17:19
(10) Если (11), то медленней получится
13 andrewks
 
21.12.11
17:22
да ёшкин кот...

ИЗ
   РегистрСведений.СкидкиНаценкиНоменклатуры КАК СкидкиНаценкиНоменклатуры
{ЛЕВОЕ,ПРАВОЕ,ПОЛНОЕ} СОЕДИНЕНИЕ ЗаказТовары
ПО (?тут условия всякие?)
14 GLazNik
 
21.12.11
17:22
(12) медленней чем что?
15 aspect
 
21.12.11
17:34
(13) Да так я уже сделал, хотел через пакетный попробовать, не юзал ни разу
16 Limori
 
21.12.11
17:36
(15) пакетные для независимых друг от друга результатов запроса
17 andrewks
 
21.12.11
17:37
(15) я тебе для твоего пакетного и пишу
(16) да ну!
18 Limori
 
21.12.11
17:39
(8) а-то... спасибо за уточнение
(17) 15-ое сообщение к Вам обращено?
19 Limori
 
21.12.11
17:40
*т.е 16-е
20 aspect
 
21.12.11
18:25
(19) Спасибо, но получается все равно, что в обычном запросе, разве нет?