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

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

Запрос для разных условий
Я
   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) согласен, смотреть он будет именно так.

Список тем форума
 
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.