Имя: Пароль:
1C
1С v8
подсажите синтаксис как в зависимости от условия выбрать вид соединения?
,
0 Cerera
 
01.04.13
13:28
Есть запрос, принимающий входной параметр. Нужно чтоб в зависимости от этого параметра, запрос соединялся по левому соединению либо по внутреннему.

Вот сам запрос:

ВЫБРАТЬ
   ЦелевыеПродуктыСрезПоследних.ЦелевойПродукт
ПОМЕСТИТЬ Целевые
ИЗ
   РегистрСведений.ЦелевыеПродукты.СрезПоследних(&ВыбКонПериода, ) КАК ЦелевыеПродуктыСрезПоследних
ГДЕ
   ЦелевыеПродуктыСрезПоследних.Действует = ИСТИНА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа.Наименование КАК НоменклатураНоменклатурнаяГруппаНаименование,
   ПродажиОбороты.Контрагент КАК Контрагент,
   СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот,
   &ТолькоЦелевые
ИЗ
   РегистрНакопления.Продажи.Обороты(&ВыбНачПериода, &ВыбКонПериода, , ) КАК ПродажиОбороты
       Левое СОЕДИНЕНИЕ Целевые КАК Целевые
       ПО ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа = Целевые.ЦелевойПродукт

СГРУППИРОВАТЬ ПО
   ПродажиОбороты.Контрагент,
   ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа.Наименование

УПОРЯДОЧИТЬ ПО
   НоменклатураНоменклатурнаяГруппаНаименование

Как сделать чтоб если параметр "&ТолькоЦелевые" если равен Истина, тогда чтоб было внутреннее соединение, в противном случае, левое?
1 Лефмихалыч
 
01.04.13
13:30
ГДЕ выбор когда &ТолькоЦелевые тогда не ПолеПравойТаблицы есть null иначе истина конец
2 Defender aka LINN
 
01.04.13
13:31
(0) Мда. Слова "ЕСТЬ НЕ NULL" о чем-нибудь говорят?
3 Лефмихалыч
 
01.04.13
13:31
ну или полелевойтаблицы - я их там стороны эти путаю вечно
4 unkairosed
 
01.04.13
13:32
Если ТолькоЦелевые Тогда
   Запрос.Текст = СтрЗаменить(Запрос.Текст, "ЛЕВОЕ", "ВНУТРЕННЕЕ");
КонецЕсли;
5 Галахад
 
гуру
01.04.13
13:32
Нафига вообще нужно соединение, если ни одно поле из второй таблицы не используется?
6 Cerera
 
01.04.13
13:32
(2)говорит. но я не знаю синтаксис как вид соединения менять.
7 Cerera
 
01.04.13
13:33
(4)ну уж нет. у меня СКД
8 Cerera
 
01.04.13
13:33
(5)чтоб фильтровать
9 Cerera
 
01.04.13
13:34
(2)ну я знаю для чего Есть Нулл но хотел же чтоб запрос видоизменялся по виду соединения.
10 Defender aka LINN
 
01.04.13
13:34
(6) А нахрена менять вид соединения, если результат аналогичен будет?
11 Ювелир
 
01.04.13
13:34
(9)тебе Шашечки или ехать?
12 Ювелир
 
01.04.13
13:35
в (1) все нарисовано, пользуй и улыбайся!
13 Галахад
 
гуру
01.04.13
13:38
ГДЕ
ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа = Целевые.ЦелевойПродукт
И (НЕ &ТолькоЦелевые)
14 Cerera
 
01.04.13
13:38
(6)чтобы знать как это делать. так то придется как в (1) сделать но это не порядок что я не научился ничему в этой ветке.
15 Лефмихалыч
 
01.04.13
13:39
так и знал, что правильный ответ не поможет, даже если его представить в виде фрагмента запроса, который бери да копипасть
16 Ювелир
 
01.04.13
13:41
(14) Хм. Правильный ответ на твой вопрос будет работать дольше. Сам ответ будет боле сложным и не очевидным. Ибо нужно будет написать процедуру которая внутри СКД будет подставлять два разных запроса. Прямо как в анекдоте про фею и студента.
17 Cerera
 
01.04.13
13:43
(15)я воспользовался вашим советом)