|
что не так в запросе | ☑ | ||
---|---|---|---|---|
0
LivingStar
27.01.12
✎
07:49
|
добавил кое что в запрос, что бы он делал отбор без фильтра по контрагенту
| УниверсальныйЗапрос.Текст = " |ВЫБРАТЬ | "+Строка(ЭлементСписка.Значение.Имя)+".Ссылка, | "+Строка(ЭлементСписка.Значение.Имя)+".Номер, | "+Строка(ЭлементСписка.Значение.Имя)+".Дата |ИЗ | Документ."+Строка(ЭлементСписка.Значение.Имя)+" КАК "+Строка(ЭлементСписка.Значение.Имя)+" |ГДЕ | "+Строка(ЭлементСписка.Значение.Имя)+".Дата >= &НачДата | И "+Строка(ЭлементСписка.Значение.Имя)+".Дата <= &КонДата "; Если ЗначениеЗаполнено(Контрагент) Тогда УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + "| И "+Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр"; Иначе УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + "|"; КонецЕсли; УниверсальныйЗапрос.УстановитьПараметр("НачДата", ОтборДатаНач); УниверсальныйЗапрос.УстановитьПараметр("КонДата", КонецДня(ОтборДатаКон)); УниверсальныйЗапрос.УстановитьПараметр("Контр", Контрагент); РезультатУЗ = УниверсальныйЗапрос.Выполнить().Выбрать(); | но на него выходит ошибка, что в нем не так? |
|||
1
БибиГон
27.01.12
✎
07:52
|
прикольно :)
|
|||
2
Escander
27.01.12
✎
07:54
|
(0) ну так сам посмотри что у тебя в УниверсальныйЗапрос.Текст перед выполнением...
вот это нафига не понимаю УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + "|"; |
|||
3
Explorer1c
27.01.12
✎
07:54
|
(0)А этот запрос в цикле чтоли? Блеать у меня мозг сломался
|
|||
4
ponaroshku
27.01.12
✎
07:55
|
а говорят у меня жесткий код:))
|
|||
5
LivingStar
27.01.12
✎
07:55
|
(3) да в цикле ((((
|
|||
6
Escander
27.01.12
✎
07:57
|
Да нормально, обычный пиленый запрос, вот только запрос в цикле - моветон!
|
|||
7
LivingStar
27.01.12
✎
07:58
|
вот ошибка
| {Форма.Форма(115)}: Ошибка при вызове метода контекста (Выполнить): {(10, 46)}: Синтаксическая ошибка "| И" И СчетФактураВыданный.Дата <= &КонДата <<?>>| И СчетФактураВыданный.Контрагент = &Контр РезультатУЗ = УниверсальныйЗапрос.Выполнить().Выбрать(); по причине: {(10, 46)}: Синтаксическая ошибка "| И" И СчетФактураВыданный.Дата <= &КонДата <<?>>| И СчетФактураВыданный.Контрагент = &Контр |
|||
8
LivingStar
27.01.12
✎
07:59
|
(6) ну а как реализовать без цикла?
хотя подумаю как... сам только с ваших слов сейчас заметил что в цикле, это же недопустимо!!! |
|||
9
Азат
27.01.12
✎
07:59
|
автор - ты ваще сплошной пипец ходячий...
Имя = СокрЛП(ЭлементСписка.Значение.Имя); УниверсальныйЗапрос.Текст = " |ВЫБРАТЬ | Док.Ссылка, | Док.Номер, | Док.Дата |ИЗ | Документ.Имя КАК Док |ГДЕ | Док.Дата МЕЖДУ &НачДата И &КонДата "; Если ЗначениеЗаполнено(Контрагент) Тогда УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + " И Док.Контрагент = &Контр"; КонецЕсли; УниверсальныйЗапрос.УстановитьПараметр("НачДата", ОтборДатаНач); УниверсальныйЗапрос.УстановитьПараметр("КонДата", КонецДня(ОтборДатаКон)); УниверсальныйЗапрос.УстановитьПараметр("Контр", Контрагент); РезультатУЗ = УниверсальныйЗапрос.Выполнить().Выбрать(); |
|||
10
Escander
27.01.12
✎
08:00
|
ну так вместо
УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + "| И "+Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр"; воткни УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + " И "+ " +Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр"; |
|||
11
Азат
27.01.12
✎
08:01
|
(8) ну в цикле генери текст запроса...
Типа так: Текст = ""; Для К = 1 По 100 Цикл Имя = СокрЛП(Список[К].Значение.Имя); Текст = Текст + " ОБЪЕДИНИТЬ ВСЕ |ВЫБРАТЬ | Док.Ссылка, | Док.Номер, | Док.Дата |ИЗ | Документ." + Имя + " КАК Док |ГДЕ | Док.Дата МЕЖДУ &НачДата И &КонДата "; КонецЦикла; Текст = Сред(Текст, 16) |
|||
12
Escander
27.01.12
✎
08:01
|
(9) у него не
Док.Контрагент=&Контр а Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр" |
|||
13
Азат
27.01.12
✎
08:03
|
(12) мммм, точно уверен, что не ошибаешься?
|
|||
14
Explorer1c
27.01.12
✎
08:04
|
(11)1Хорошай
|
|||
15
Азат
27.01.12
✎
08:04
|
(14) чо?
|
|||
16
LivingStar
27.01.12
✎
08:07
|
(9) не в этом причина
так выполняется УниверсальныйЗапрос.Текст = " |ВЫБРАТЬ | "+Строка(ЭлементСписка.Значение.Имя)+".Ссылка, | "+Строка(ЭлементСписка.Значение.Имя)+".Номер, | "+Строка(ЭлементСписка.Значение.Имя)+".Дата |ИЗ | Документ."+Строка(ЭлементСписка.Значение.Имя)+" КАК "+Строка(ЭлементСписка.Значение.Имя)+" |ГДЕ | "+Строка(ЭлементСписка.Значение.Имя)+".Дата >= &НачДата | И "+Строка(ЭлементСписка.Значение.Имя)+".Дата <= &КонДата | И "+Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр"; так нет, - УниверсальныйЗапрос.Текст = " |ВЫБРАТЬ | "+Строка(ЭлементСписка.Значение.Имя)+".Ссылка, | "+Строка(ЭлементСписка.Значение.Имя)+".Номер, | "+Строка(ЭлементСписка.Значение.Имя)+".Дата |ИЗ | Документ."+Строка(ЭлементСписка.Значение.Имя)+" КАК "+Строка(ЭлементСписка.Значение.Имя)+" |ГДЕ | "+Строка(ЭлементСписка.Значение.Имя)+".Дата >= &НачДата | И "+Строка(ЭлементСписка.Значение.Имя)+".Дата <= &КонДата | И "+Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр"; //Если ЗначениеЗаполнено(Контрагент) Тогда УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + "| И "+Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр"; //Иначе // УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + "|"; //КонецЕсли; |
|||
17
Escander
27.01.12
✎
08:08
|
(13) первая строка не по глазам
|
|||
18
LivingStar
27.01.12
✎
08:09
|
(16+) то есть так не выполняется
УниверсальныйЗапрос = Новый Запрос; УниверсальныйЗапрос.Текст = " |ВЫБРАТЬ | "+Строка(ЭлементСписка.Значение.Имя)+".Ссылка, | "+Строка(ЭлементСписка.Значение.Имя)+".Номер, | "+Строка(ЭлементСписка.Значение.Имя)+".Дата |ИЗ | Документ."+Строка(ЭлементСписка.Значение.Имя)+" КАК "+Строка(ЭлементСписка.Значение.Имя)+" |ГДЕ | "+Строка(ЭлементСписка.Значение.Имя)+".Дата >= &НачДата | И "+Строка(ЭлементСписка.Значение.Имя)+".Дата <= &КонДата"; //| И "+Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр"; //Если ЗначениеЗаполнено(Контрагент) Тогда УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + "| И "+Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр"; //Иначе // УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + "|"; //КонецЕсли; |
|||
19
Азат
27.01.12
✎
08:10
|
(16) причина в том, что кто-то даж на старости лет не понял, нафига нужна | в тексте запроса...
убери их и станет выполняться, а потом сделай, как я написал, и получишь нормальный читабельный текст запроса... если же ты гнилофранч, которому надо запутать все, в тч и себя самого, то, наоборот, усложняй код |
|||
20
Escander
27.01.12
✎
08:10
|
(16) текст итогового запроса приведите
|
|||
21
LivingStar
27.01.12
✎
08:11
|
(9) ты чо знаком со мной что ли? суждения высказываешь ...
(19) фильтруй то что пишешь ?!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|||
22
Explorer1c
27.01.12
✎
08:11
|
(20)а вот этого не надо
|
|||
23
Explorer1c
27.01.12
✎
08:12
|
(21)Нехорошай
|
|||
24
LivingStar
27.01.12
✎
08:12
|
(20) он в 0
|
|||
25
Escander
27.01.12
✎
08:12
|
(22) пусть сам посмотрит - может самому станет очивидно
|
|||
26
LivingStar
27.01.12
✎
08:12
|
(22) ок, понял исправлюсь!!!
|
|||
27
Escander
27.01.12
✎
08:13
|
(24) в (0) - ваш код, а текст запроса в УниверсальныйЗапрос.Текст
|
|||
28
LivingStar
27.01.12
✎
08:17
|
(27) вот текст до
УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + "| И "+Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр"; УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + "| И "+Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр"; ВЫБРАТЬ СчетФактураВыданный.Ссылка, СчетФактураВыданный.Номер, СчетФактураВыданный.Дата ИЗ Документ.СчетФактураВыданный КАК СчетФактураВыданный ГДЕ СчетФактураВыданный.Дата >= &НачДата И СчетФактураВыданный.Дата <= &КонДата |
|||
29
LivingStar
27.01.12
✎
08:20
|
проблема была, как сказал уважаемый (19) в |
УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + "| И "+Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр"; так сработало УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + " И "+Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр"; |
|||
30
Escander
27.01.12
✎
08:43
|
(29) ну конечно прочитать (10) было не судьба...
|
|||
31
napagokc
27.01.12
✎
09:01
|
(29) Вроде, нельзя начинать строку с "|". Вот если бы ты написал так:
УниверсальныйЗапрос.Текст = УниверсальныйЗапрос.Текст + " | И "+Строка(ЭлементСписка.Значение.Имя)+".Контрагент = &Контр"; тогда должно было сработать, по идее. Такие вещи даже я знаю :) |
|||
32
napagokc
27.01.12
✎
09:04
|
+(31) суть в том, что перед "|" стоит невидимый символ переноса строки. Тогда все нормально работает.
|
|||
33
LivingStar
27.01.12
✎
11:50
|
(30) извиняюсь, пролетело ваше сообщение не заметил во время!!!
|
|||
34
LivingStar
27.01.12
✎
11:52
|
(31) я посмотрел текст сгенерированного запроса как мне советовали в (27) и увидел эту ошибку!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |