|
Вопрос по запросу с выражением Где | ☑ | ||
---|---|---|---|---|
0
AnisaL
01.03.13
✎
14:11
|
Добрый день) Вопрос по запросу, его текст такой
запрос.Текст = "Выбрать * из документ.ЗаявкаНаряд как рег"; Дальше идет куча если, и соответственно добавления к тексту запроса,пример если элементыформы.Флажок2.Значение=Истина тогда запрос.УстановитьПараметр("регламентные", истина); если флаг=Ложь тогда запрос.Текст=запрос.Текст+" рег.регламентные=&Регламентные"; флаг = Истина; иначе запрос.Текст=запрос.Текст+" и рег.регламентные=&Регламентные"; конецЕсли; конецЕсли; |
|||
1
AnisaL
01.03.13
✎
14:12
|
Вопрос в том, можно ли по-другому написать этот запрос?
|
|||
2
Тролль главный
01.03.13
✎
14:12
|
круто
|
|||
3
Maxus43
01.03.13
✎
14:12
|
Дописывай
|
|||
4
Господин ПЖ
01.03.13
✎
14:12
|
какой лохматый и закрытый купальник...
|
|||
5
Wobland
01.03.13
✎
14:13
|
где (что-то и &флаг)
|
|||
6
chelentano
01.03.13
✎
14:13
|
(1) я не против
|
|||
7
AnisaL
01.03.13
✎
14:13
|
(3) Ну вот, дописала)
|
|||
8
Тролль главный
01.03.13
✎
14:14
|
я делаю так
ГДЕ &Условие1 И &Условие2 И &Условие3 потом СтрЗаменить(Текст,"Условие1",?(ИспУсловие1,НастоящееУсловие1,"ИСТИНА")); и про построитель не надо |
|||
9
andreymongol82
01.03.13
✎
14:14
|
Можно так:
запрос.УстановитьПараметр("регламентные", истина); Запрос.текст = "ГДЕ 1=1" запрос.Текст=запрос.Текст+" и рег.регламентные=&Регламентные"; |
|||
10
AnisaL
01.03.13
✎
14:14
|
(4) Это не купальник, во-первых) а дубленка) а во-вторых, с мягким мехом )
|
|||
11
Wobland
01.03.13
✎
14:14
|
(10) не нужна она тебе
|
|||
12
andreymongol82
01.03.13
✎
14:15
|
(9) в общем-то это частный случай (8)
|
|||
13
Sammo
01.03.13
✎
14:16
|
Варианта 2
1. Если устроит, что запрос не отркываем контсрутором (динамический сбор), то пишется Где Истина и дальше в если (кстати, в первом условии И пропущено) 2. В запросе обрабатывать, например, передавая Неопределено |
|||
14
AnisaL
01.03.13
✎
14:16
|
(11) Пока еще нужна) холодно же, а как потеплеет то обязательно сниму ее
|
|||
15
Sammo
01.03.13
✎
14:16
|
+ варинат в 8
|
|||
16
Wobland
01.03.13
✎
14:16
|
(14) тебя нагреть?
|
|||
17
badboychik
01.03.13
✎
14:19
|
(16) не нагреть а согреть )
|
|||
18
AnisaL
01.03.13
✎
14:20
|
(15) СтрЗаменить(Текст,"Условие1",?(ИспУсловие1,НастоящееУсловие1,"ИСТИНА")) - объясните, пожалуйста, ИспУсловие1 и НастоящееУсловие1 - что вписать?
|
|||
19
badboychik
01.03.13
✎
14:20
|
вообще СКД надо использовать и отборы юзать
|
|||
20
AnisaL
01.03.13
✎
14:20
|
(16) Я предпочитаю согревание) я ж не бутылка, чтоб нагревать
|
|||
21
Wobland
01.03.13
✎
14:21
|
(20) хорошо, я стану для тебя согревающей бутылкой ;)
|
|||
22
AnisaL
01.03.13
✎
14:23
|
(21) Я не пью) ну так иногда, по большим праздникам если;))
Напиши про выражение(18) ) |
|||
23
Wobland
01.03.13
✎
14:26
|
(22) ИспУсловие - например "&Условие1"; Настоящее - например "рег.регламентные=&Регламентные"
|
|||
24
kosts
01.03.13
✎
14:27
|
В твоем случае условие
равносильно условию
и параметр "регламентные" можно не устанавливать |
|||
25
AnisaL
01.03.13
✎
14:37
|
запрос = новый запрос;
запрос.Текст = "Выбрать * из документ.ЗаявкаНаряд как рег где &Условие1"; ИспУсловие1 = "&Условие1"; НастоящееУсловие1 = "рег.регламентные"; СтрЗаменить(Запрос.Текст,"Условие1",?(ИспУсловие1,НастоящееУсловие1,"ИСТИНА")); |
|||
26
AnisaL
01.03.13
✎
14:37
|
(25) Выдает ошибку - {Документ.ЗаявкаНаряд.Форма.ФормаСписка1(8,13)}: Встроенная функция может быть использована только в выражении. (СтрЗаменить)
СтрЗаменить<<?>>(Текст,"Условие1",?(ИспУсловие1,НастоящееУсловие1,"ИСТИНА")); |
|||
27
AnisaL
01.03.13
✎
14:39
|
(26) а все, поняла, надо так
Запрос.Текст = СтрЗаменить(Запрос.Текст,"Условие1",?(ИспУсловие1,НастоящееУсловие1,"ИСТИНА")); |
|||
28
kosts
01.03.13
✎
14:41
|
(27) "Условие1" -> "&Условие1"
|
|||
29
Wobland
01.03.13
✎
14:41
|
а я вот так делал:
"<<" в тексте запроса ну никак не может быть, в отличие от "Условие1"... |
|||
30
Wobland
01.03.13
✎
14:42
|
(29) и читается хорошо
|
|||
31
kosts
01.03.13
✎
14:42
|
(29) А конструктор как это воспринимает?
|
|||
32
Wobland
01.03.13
✎
14:43
|
(31) это семёрка
|
|||
33
Reset
01.03.13
✎
14:46
|
(29) &Условие1 тоже в тексте запроса не может быть, но зато позволяет открывать запрос конструктором
|
|||
34
AnisaL
01.03.13
✎
14:48
|
(28) Ребят, ну что-то не получается никак - ошибку опять выдает - Документ.ЗаявкаНаряд.Форма.ФормаСписка1(8)}: Преобразование значения к типу Булево не может быть выполнено
Запрос.Текст = СтрЗаменить(Запрос.Текст,"&Условие1",?(ИспУсловие1,НастоящееУсловие1,"ИСТИНА")); |
|||
35
Тролль главный
01.03.13
✎
14:49
|
(34) я не знаю, что у тебя
ИспУсловие1 НастоящееУсловие1 |
|||
36
Reset
01.03.13
✎
14:50
|
(34)
Запрос.Текст = СтрЗаменить(Запрос.Текст,"&Условие1",?(элементыформы.Флажок2.Значение,НастоящееУсловие1,"ИСТИНА")); |
|||
37
Reset
01.03.13
✎
14:54
|
Только не нужно буквально копировать с форума названия переменных.
Вместо НастоящееУсловие1, например, гоаздо читабельней что-то типа УсловиеПоРегламентным |
|||
38
Reset
01.03.13
✎
14:55
|
хотя у тебя уже "Флажок2" и думаю не только он:) хуже не будет -.-
|
|||
39
Wobland
01.03.13
✎
14:55
|
(37) к вопросу о бездумном копипасте. не видал v8: Собрать план производства за период ? там на второй сотне такое начинается...
|
|||
40
Reset
01.03.13
✎
14:56
|
(39) Я просматривал, по мере процесса просматривания созревало желание что-то нехорошее сказать, закрыл во избежание xd
|
|||
41
Megas
01.03.13
✎
14:59
|
НЕ фига не понял, но я так собирал запросы на маленькие условия. Как вариант
где ВЫбор когда &ФлажокОтбор = истина тогда Документ.сумма < 100 иначе Истина Конец |
|||
42
Wobland
01.03.13
✎
15:01
|
(41) а я предлагал в самом начале. видимо, не подходит
|
|||
43
AnisaL
01.03.13
✎
15:06
|
(37) ага, понятно) просто хотелось побыстрее проверить как это работает)
|
|||
44
Megas
01.03.13
✎
15:07
|
(29)
Я ещё так делал | | //====УсловияОтбора====// Конструктор тоже открывает, но затирает "//====УсловияОтбора====//" так как считает это за комментарий. |
|||
45
AnisaL
01.03.13
✎
15:13
|
(41) Ну можно и так попробовать )
|
|||
46
AnisaL
01.03.13
✎
15:21
|
А если такое условие
если элементыформы.Флажок1.Значение=Истина тогда запрос.УстановитьПараметр("Статус", перечисления.СтатусЗаявки.ВРаботе); если флаг=Ложь тогда запрос.Текст=запрос.Текст+" рег.статус=&Статус"; флаг = Истина; иначе запрос.Текст=запрос.Текст+" и рег.статус=&Статус"; конецЕсли; конецЕсли; |
|||
47
AnisaL
01.03.13
✎
15:22
|
(46)+ то как должно выглядеть выражение
Запрос.Текст = СтрЗаменить(Запрос.Текст,"&Условие2",?(элементыформы.Флажок1.Значение,УсловиеПоСтатусу,"ИСТИНА")); Так программа зависла |
|||
48
AnisaL
01.03.13
✎
15:24
|
(47) получился такой текст запроса
Выбрать * из документ.ЗаявкаНаряд как рег где ИСТИНА и ИСТИНА |
|||
49
AnisaL
01.03.13
✎
15:27
|
Что-то в пятницу вечером голова совсем не варит
|
|||
50
Reset
01.03.13
✎
15:31
|
(48) Ну так же и задумывалось? Получился текст запроса без отборов
|
|||
51
AnisaL
01.03.13
✎
15:32
|
(35) С этим первым условием все получилось) а вот пытаюсь второе условие сюда же добавить, не получается у меня(
|
|||
52
AnisaL
01.03.13
✎
15:34
|
(50) Ой!! Точно) ха - я думала зависла, а оказывается нет, вот блин жесть
|
|||
53
zladenuw
01.03.13
✎
15:44
|
ты потом эту куда ?
Я бы делал через СКД и добавлял отбор какой тебе надо. |
|||
54
AnisaL
04.03.13
✎
08:52
|
(53) Это документ, а не отчет)
|
|||
55
acsent
04.03.13
✎
08:55
|
Бл@, а построитель запроса юзать, не???
|
|||
56
AnisaL
04.03.13
✎
09:18
|
(55) Ну в принципе можно) просто до меня было написано, поэтому так
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |