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

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

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

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

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

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