Вход | Регистрация
 

Запрос для разных условий

Запрос для разных условий
Я
   Margo95
 
07.12.20 - 15:42
Добрый день, такой вопрос, есть запрос в котором есть опр. отбор(ГДЕ), Если клиент заполняет все параметры отбора, то запрос отрабатывает, но возникла такая проблема, что если клиент не заполнит допустим номенклатуру и нажмёт сформировать, то отчет сформируется уже по всей номенклатуре, возможно ли как-то это в запросе самом сделать? не очень, когда идёт после условия запрос, а в Иначе опять тот же запрос, просто без 1 строки в отборе, как можно это сделать, но не вставляя запрос 2й раз?
   ДенисЧ
 
1 - 07.12.20 - 15:46
В СКД - запросто )))
   polosov
 
2 - 07.12.20 - 15:46
ГДЕ
...
...

И &ПараметрыЗаполнены
   Margo95
 
3 - 07.12.20 - 15:47
(1) это к сожалению не отчет
   ДенисЧ
 
4 - 07.12.20 - 15:50
(3) А что, за использование СКД вне отчёта с сегодняшнего дня расстреливают?
Ну... Тогда возьми ПостроительЗапроса... За него только 15 лет с конфискацией дают...
   Margo95
 
5 - 07.12.20 - 15:50
(2) не совсем поняла, у меня допустим есть в запросе 5 Параметров, я на форме им присваиваю им значение реквизитов, просто не совсем поняла из вашего примера, если клиент допустим не заполнил &Товары(реквизит на форме) , а в запросе он указан, то как мне сделать так, чтобы отбор по &Товары не срабатывал просто
   novichok79
 
6 - 07.12.20 - 15:51
ПостроительЗапроса или ручками... измельчал программист нынче...
ГДЕ Т.Номенклатура = &Номенклатура Или &Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
   Margo95
 
7 - 07.12.20 - 15:51
(4) Видимо еще плохо знакома с СКД, не поняла, как можно там реализовать запрос, чтобы его уже после вставить в модуль формы
   Margo95
 
8 - 07.12.20 - 15:54
(6) Я правильно поняла, что я это в запросе указываю? Своё где меняю на ГДЕ Т.Номенклатура = &Номенклатура Или &Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка), а когда я параметр устанавливаю на форме, я просто передаю Имя(Реквизита)?
   novichok79
 
9 - 07.12.20 - 15:55
ничего не понял... на форме отбор как реализован? это управляемые или неуправляемые формы?
   Масянька
 
10 - 07.12.20 - 15:57
СтрокаВЗапрос = "";
    Если (НоменклатураСтрокой) Тогда 
        СтрокаВЗапрос = "
        |            Номенклатура.Наименование ПОДОБНО (&СписокНоменклатуры)";
    Иначе
        СтрокаВЗапрос = "
        |            Номенклатура В ИЕРАРХИИ (&СписокНоменклатуры)";
    КонецЕсли; 

(6) Не говори...
   ДенисЧ
 
11 - 07.12.20 - 15:57
Только не ПустаяСсылка, а Неопределено
   FIXXXL
 
12 - 07.12.20 - 15:57
ВЫБРАТЬ
    ЗаказКлиента.Ссылка КАК Ссылка
ИЗ
    Документ.ЗаказКлиента КАК ЗаказКлиента
ГДЕ
    (ЗаказКлиента.Ссылка = &Ссылка
            ИЛИ &СсылкаНеУказана)
    И (ЗаказКлиента.Номер = &Номер
            ИЛИ &НомерНеУказан)
    И (ЗаказКлиента.Дата = &Дата
            ИЛИ &ДатаНеУказана)

Запрос.УстановитьПараметр("***НеУказан", НЕ ЗначениеЗаполнено(ТвойРеквизит))
   Margo95
 
13 - 07.12.20 - 15:59
(9) Да, уже разобралась, как ваш пример описать правильно, спасибо)
   Margo95
 
14 - 07.12.20 - 16:00
(10) (11) (12)  спасибо большое за помощь
   H A D G E H O G s
 
15 - 07.12.20 - 17:45
(12) И такой SQL сидит и смотрит на 3 своих индекса и такой:

https://youtu.be/d1vRLfuF-wM
   Малыш Джон
 
16 - 07.12.20 - 19:34
(12) можно изящнее:
ГДЕ
    &Ссылка В (ЗаказКлиента.Ссылка, ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка))             
    И &Номер В (ЗаказКлиента.Номер, "")            
    И &Дата В (ЗаказКлиента.Дата, ДАТАВРЕМЯ(1,1,1)) 

Но по поводу (15) согласен, смотреть он будет именно так.

Список тем форума
Рекламное место пустует  Рекламное место пустует
2 + 2 = 3.9999999999999999999999999999999...
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.