Имя: Пароль:
1C
1С v8
Запрос в два регистра
,
0 DenisSol
 
21.02.12
11:09
Добрый день.
Подскажите пожалуйста как правильно сделать запрос по следующим условиям.

В регистр “Цены номенклатуры”, по заданному товару (Справочник Номенклатуры)  получить цену и в регистр сведений “ЗначенияСвойствОбъектов”, по заданному контрагенту (Справочник Контрагенты).

Есть два регистра между собой они не связаны и имеют условия отбора. Если в одном регистре нет записей там самым результат будет “пуст”, то в другом регистре может  быть заполнено.  

Можно ли одним запросом получить данные двух не связанных регистров с условием отбора ? если можно, то как ?.  Самому получилось сделать, но есть сомнение что это не совсем корректно. Заранее спасибо.
1 salvator
 
21.02.12
11:12
(0) Запрос покажи
2 DenisSol
 
21.02.12
11:17
"ВЫБРАТЬ
   |    ВложенныйЗапрос.Значение,
   |    ЦенаТовара.Цена,
   |    ВложенныйЗапрос.Объект
   |ИЗ
   |    (ВЫБРАТЬ
   |        ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
   |        ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура
   |    ИЗ
   |        РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, Номенклатура = &Номенклатура) КАК ЦеныНоменклатурыСрезПоследних) КАК ЦенаТовара
   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
   |            ЗначенияСвойствОбъектов.Значение КАК Значение,
   |            ЗначенияСвойствОбъектов.Объект КАК Объект
   |        ИЗ
   |            РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
   |        ГДЕ
   |            ЗначенияСвойствОбъектов.Объект = &ОбъектОтборо
   |            И ЗначенияСвойствОбъектов.Свойство = &СвойствоОтбора) КАК ВложенныйЗапрос
   |        ПО ЦенаТовара.Номенклатура = ВложенныйЗапрос.Объект"
3 КМ155
 
21.02.12
11:17
(0) Объединить всё
4 salvator
 
21.02.12
11:20
ЕСТЬ NULL попробуй использовать
5 DenisSol
 
21.02.12
11:28
(3) ПОЛНОЕ СОЕДИНЕНИЕ ?
6 КМ155
 
21.02.12
11:30
(5) Объединить всё
7 DenisSol
 
21.02.12
11:30
(4) Можно поподробнее, где использовать ?
8 Жан Пердежон
 
21.02.12
11:31
у тебя каша какая-то в (0)
нарисуй хотя б 2 исходные таблицы и таблицу-результат
9 DrShad
 
21.02.12
11:32
(7) в запросе
10 DenisSol
 
21.02.12
12:15
(6)Если я правильно понял. При использовании ОБЪЕДИНИТЬ ВСЕ второе значение всегда NULL

ВЫБРАТЬ
   |    ЦеныНоменклатурыСрезПоследних.Цена,
   |    NULL КАК ЗначениеСвойства
   |ИЗ
   |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, Номенклатура = &Номенклатура) КАК ЦеныНоменклатурыСрезПоследних
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    NULL,
   |    ЗначенияСвойствОбъектов.Значение
   |ИЗ
   |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
   |ГДЕ
   |    ЗначенияСвойствОбъектов.Объект = &ОбъектОтборо
   |    И ЗначенияСвойствОбъектов.Свойство = &СвойствоОтбора
Независимо от того, куда вы едете — это в гору и против ветра!