|
СКД помогите с условием | ☑ | ||
---|---|---|---|---|
0
Maximysis
04.07.14
✎
07:27
|
Что то не могу сообразить, как сделать чтобы в запросе левое соединение использовалась только по условию.
|
|||
1
Maximysis
04.07.14
✎
07:28
|
То есть выбран параметр используем левое соединение, не выбран не используем.
|
|||
2
softmaker
04.07.14
✎
07:31
|
Можно текст запроса добавлять в коде, который формирует запрос, например:
Запрос.Текст = "ВЫБРАТЬ | ДополнительныеНачисления.НомерСтроки, | ДополнительныеНачисления.ВидРасчета.СпособРасчета КАК Способ, | ДополнительныеНачисления.Размер"; Если Параметры.База Тогда Запрос.Текст = Запрос.Текст + " | ,ЕСТЬNULL(ДополнительныеНачисленияБазаДополнительныеНачисления.РезультатБаза, 0) + ЕСТЬNULL(ДополнительныеНачисленияБазаОсновныеНачисления.РезультатБаза, 0) КАК База"; КонецЕсли; Запрос.Текст = Запрос.Текст + " |ИЗ | РегистрРасчета.ДополнительныеНачисления КАК ДополнительныеНачисления"; Если Параметры.База Тогда Запрос.Текст = Запрос.Текст + " | ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ДополнительныеНачисления.БазаДополнительныеНачисления( | &Измерения, | &Измерения, | , | Регистратор = &Ссылка | И ВидРасчета.КатегорияРасчета = &КатегорияРасчета) КАК ДополнительныеНачисленияБазаДополнительныеНачисления | ПО ДополнительныеНачисления.НомерСтроки = ДополнительныеНачисленияБазаДополнительныеНачисления.НомерСтроки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ДополнительныеНачисления.БазаОсновныеНачисления( | &Измерения, | &Измерения, | , | Регистратор = &Ссылка | И ВидРасчета.КатегорияРасчета = &КатегорияРасчета) КАК ДополнительныеНачисленияБазаОсновныеНачисления | ПО ДополнительныеНачисления.НомерСтроки = ДополнительныеНачисленияБазаОсновныеНачисления.НомерСтроки"; КонецЕсли; Запрос.Текст = Запрос.Текст + " |ГДЕ | ДополнительныеНачисления.Регистратор = &Ссылка | И ДополнительныеНачисления.ВидРасчета.КатегорияРасчета = &КатегорияРасчета"; КонецЕсли; Возврат Запрос.Выполнить(); |
|||
3
Лодырь
04.07.14
✎
07:33
|
(1) Сделай левое соединение с доп. проверкой заполненности параметра в условии, не?
|
|||
4
softmaker
04.07.14
✎
07:36
|
Это же СКД, сори...
|
|||
5
Maximysis
04.07.14
✎
07:36
|
(2)А как на СКД это делаться?
|
|||
6
rphosts
04.07.14
✎
07:37
|
(1) у параметра запретить незаполненное значение?
|
|||
7
Лодырь
04.07.14
✎
07:38
|
(5) Никто не мешает тебе собрать все програмно. Примеры есть.
|
|||
8
Maximysis
04.07.14
✎
07:38
|
(3) пробовал так
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДатуОтчета) КАК ЦеныНоменклатурыСрезПоследних ПО ОперативныеОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура {И ЦеныНоменклатурыСрезПоследних.ТипЦен в (&СписокТиповЦен)} и в виртуальную таблицу тоже параметр добавлял все равно отрабатывает( |
|||
9
Maximysis
04.07.14
✎
07:53
|
(7)Кстати да! СКД и это может, не знал.
|
|||
10
Лодырь
04.07.14
✎
07:53
|
(8) А если добавить еще переменную &ПараметрЗаполнен и подавать ее на вход?
|
|||
11
Maximysis
04.07.14
✎
08:08
|
(10) Да идея не плохая, только придется еще и для каждой строки условие писать.
|
|||
12
catena
04.07.14
✎
08:25
|
(8)Ничего не поняла.
Если в принципе не хочется дергать таблицу, то надо поставить галку "не обязательная", будет примерно так: ВЫБРАТЬ вт1.Ссылка КАК Ссылка, вт2.ПричинаИзмененияСостояния, вт2.ОбособленноеПодразделение ИЗ вт1 КАК вт1 {ЛЕВОЕ СОЕДИНЕНИЕ вт2 КАК вт2 ПО вт1.Ссылка = вт2.Физлицо} Если нужно условие на тип цен - выбрать цены в ВТ и в самой ВТ добавить тип цен в поля отбора. |
|||
13
Maximysis
04.07.14
✎
09:56
|
(12) Блин!!! И все!!!
Спасибо огромное то что нужно, а я тут уже запрос стрЗаменит наваял)) А вот только где эта галка, весь конструктор облазил... |
|||
14
Maximysis
04.07.14
✎
09:59
|
А все нашел "Компоновка данных"
|
|||
15
anatoly
04.07.14
✎
10:02
|
(12) изящно.
я таких случаях текст запроса из макета программно правил... |
|||
16
volshebnik_
idiot 04.07.14
✎
10:19
|
СКД ребята - это СЕКС!
Без шуток, готовь ТЗ программно, потом передаешь в скд ТЗ и получаешь то что нужно. |
|||
17
sirsp
04.07.14
✎
10:51
|
(12) +100500
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |