|
как сделать в запросе одну штуку... | ☑ | ||
---|---|---|---|---|
0
Простенький вопросик
05.09.11
✎
08:12
|
Вопрос, как сделать, чтобы в запросе учитывалось или не учитывалось условие, в зависимости от заполнение на форме. Конкретнее есть запрос
Запрос.Текст = "ВЫБРАТЬ | ПриходныйКассовыйОрдер.Ссылка, | ПриходныйКассовыйОрдер.СуммаДокумента |ИЗ | Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер |ГДЕ | ПриходныйКассовыйОрдер.ПометкаУдаления = ЛОЖЬ | И ПриходныйКассовыйОрдер.Дата < &НачПериода | И ПриходныйКассовыйОрдер.Касса = &касса" ; что надо сделать, чтобы если на форме касса не указана, это условие не учитывалось |
|||
1
YHVVH
05.09.11
✎
08:13
|
Если тогда....
|
|||
2
Fragster
гуру
05.09.11
✎
08:14
|
начать уже изучать построитель и СКД
|
|||
3
ParaWiz
05.09.11
✎
08:17
|
по сути (1)
Если тарампарамвыбран Тогда Запрос.Текст=Запрос.Текст+" | И ПриходныйКассовыйОрдер.Касса = &касса"; КонецЕсли; Запрос.Текст=Запрос.Текст+конецтекстазапросакакойтамутебя |
|||
4
Escander
05.09.11
✎
08:18
|
(0) послушайте, столько простейших вопросов по одной теме за утро... может пора взять в руки букварь?
параметр передайте в запрос... |
|||
5
Fragster
гуру
05.09.11
✎
08:18
|
(3) фуфуфу!
|
|||
6
ParaWiz
05.09.11
✎
08:18
|
(5) номаное 7шное решение ;)
|
|||
7
VladimirSK
05.09.11
✎
08:19
|
(3) или сделай так
|ГДЕ | ПриходныйКассовыйОрдер.ПометкаУдаления = ЛОЖЬ | И ПриходныйКассовыйОрдер.Дата < &НачПериода | И (ПриходныйКассовыйОрдер.Касса = &касса" | ИЛИ &кассаНеЗадана)" Запрос.УстановитьПараметр("кассаНеЗадана",НЕ ЗначениеЗаполнено(Касса); |
|||
8
mikeA
05.09.11
✎
08:28
|
(7)+ ИЛИ ПриходныйКассовыйОрдер.Касса = ЗНАЧЕНИЕ(Справочник.Кассы.ПустаяСсылка)
|
|||
9
MatrosoV AleXXXand_R
05.09.11
✎
08:43
|
ВЫБОР КОГДА &Касса = ЗНАЧЕНИЕ(Справочник.Кассы.ПустаяСсылка) ТОГДА ЛОЖЬ ИНАЧЕ
ПриходныйКассовыйОрдер.Касса = &касса КОНЕЦ |
|||
10
badboychik
05.09.11
✎
08:57
|
к первому условию добавить "И &УчитыватьПервоеУсловиеВЗависимостиОтЗаполненияФормы"
и параметр заполнить. Все. |
|||
11
mikeA
05.09.11
✎
09:46
|
(9) ему нужно по всем кассам, когда касса не заполнена
|
|||
12
Fragster
гуру
05.09.11
✎
09:54
|
Построитель = Новый ПостроительЗапроса;
Построитель.Текст = "ВЫБРАТЬ | ПриходныйКассовыйОрдер.Ссылка, | ПриходныйКассовыйОрдер.СуммаДокумента |ИЗ | Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер |ГДЕ | ПриходныйКассовыйОрдер.ПометкаУдаления = ЛОЖЬ |{ГДЕ | ПриходныйКассовыйОрдер.Дата, |ПриходныйКассовыйОрдер.Касса}"; Если ЗначениеЗаполнено(НачПериода) Тогда ЭлементОтбора = Построитель.Отбор.Добавить("Дата"); ЭлементОтбора.ВидСравнения = ВидСравнения.Меньше; ЭлементОтбора.Значение = НачПериода; КонецЕсли; Если ЗначениеЗаполнено(Касса) Тогда ЭлементОтбора = Построитель.Отбор.Добавить("Дата"); ЭлементОтбора.Установить(Касса, Истина); КонецЕсли; |
|||
13
VVi3ard
05.09.11
✎
09:59
|
Используй построитель запроса
Запрос=Новый ПостроительЗапроса("ВЫБРАТЬ | ПриходныйКассовыйОрдер.Ссылка, | ПриходныйКассовыйОрдер.СуммаДокумента |ИЗ | Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер |ГДЕ | ПриходныйКассовыйОрдер.ПометкаУдаления = ЛОЖЬ | И ПриходныйКассовыйОрдер.Дата < &НачПериода | {ГДЕ ПриходныйКассовыйОрдер.Касса}") ОтборПоКассе=Запрос.Отбор.Добавить("Касса"); ОтборПоКассе.Установить(Касса,НЕ Касса.Пустая); Запрос.Выполнить(); Результат=Запрос.Результат; |
|||
14
VVi3ard
05.09.11
✎
09:59
|
(12) Опередил :)
|
|||
15
Wobland
05.09.11
✎
10:02
|
(8) +ИЛИ &Касса = ЗНАЧЕНИЕ(Справочник.Кассы.ПустаяСсылка)
|
|||
16
Fragster
гуру
05.09.11
✎
10:06
|
(13) вот это: ОтборПоКассе.Установить(Касса,НЕ Касса.Пустая); прикольно, с утра не допер :)
|
|||
17
VVi3ard
05.09.11
✎
10:09
|
(15) Зачем плохому учишь человека, ИМХО плохо так писать.
На больших объёмах можно и замедление запроса получить. (16) Ну это я выепнутся захотел на самом деле твой пример легче читается и в нём больше условий можно предусмотреть (например Неопределенно, или Null). |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |