|
v7: Формирование внутренней переменной запроса по условию |
☑ |
0
mpbakunov
30.10.11
✎
19:02
|
Доброго дня!
Делаю запрос по одному документу. В дальнейшем в запросе будет условие по внутренней переменной запроса (Маршрут). В переменной должно сохранятся значение поля Маршрут из документа если оно заполнено или поле Маршрут из элемента спр Контрагенты которое есть в документе. примерно так
|Маршрут=?(Пустоезначение(Документ.Т_РасходнаяНакладнаяПрод_MG.Маршрут_MG)=1,Документ.Т_РасходнаяНакладнаяПрод_MG.Контрагент.Маршрут_MG,Документ.Т_РасходнаяНакладнаяПрод_MG.Маршрут_MG);
но такая конструкция не работает в запросах. Может есть какой нить другой способ реализовать задачу чтобы в запросе была только одна переменная Маршрут. Не хочется формировать 2 ю переменную, потому что надо будет переделовать логику отчета в котором раньше маршрут брался только из контрагента документа. жду советов!
|
|
1
Темный Эльф
30.10.11
✎
19:05
|
Напиши два текста запроса и сделай обычное Если
|
|
2
mpbakunov
30.10.11
✎
19:09
|
(1) не пойдет. потому что в одних документах маршрут должен браться из поля документа а в других через контрагента документа!
|
|
3
Ёпрст
гуру
30.10.11
✎
19:13
|
(0) в чорном такую переменную не слепишь, только в условии или в вычислении функции.
|
|
4
ДенисЧ
30.10.11
✎
19:13
|
Забей на эту с**ную 1с. Всё равно ничего толкового не выйдет
|
|
5
Злопчинский
30.10.11
✎
19:14
|
|Маршрут=Документ.Т_РасходнаяНакладнаяПрод_MG.Контрагент.Маршрут_MG,Документ.Т_РасходнаяНакладнаяПрод_MG.Маршрут_MG
|
|
6
Кукуев
30.10.11
✎
19:17
|
Можно, наверное, попробовать через тот же Если...
что-то типа
формируем ТекстЗапроса до определения переменной Маршрут, затем
Если Пустоезначение(Документ.Т_РасходнаяНакладнаяПрод_MG.Маршрут_MG)=1 Тогда
ТекстЗапроса = ТекстЗапроса + |Маршрут = Документ.Т_РасходнаяНакладнаяПрод_MG.Контрагент.Маршрут_MG;";
Иначе
ТекстЗапроса = ТекстЗапроса + |Маршрут =
Документ.Т_РасходнаяНакладнаяПрод_MG.Маршрут_MG";"
КонецЕсли
|
|
7
Кукуев
30.10.11
✎
19:19
|
+6 Ага, и синтаксис правильно выставить!!! (кавычки и т.д.) :)
|
|
8
Ёпрст
гуру
30.10.11
✎
19:22
|
(6) п..ц
|
|
9
mpbakunov
30.10.11
✎
19:23
|
(6) да тоже так пробовал , но тянет только первое выражение! :(
|
|
10
mpbakunov
30.10.11
✎
19:23
|
сорри последний ответ касается (5)
|
|
11
Ёпрст
гуру
30.10.11
✎
19:23
|
(5) это не верно, если маршрут не пустой и отличный от маршрута контрагента.
|
|
12
Кукуев
30.10.11
✎
19:24
|
(8) сам уже понял, невнимательно прочитал условие...
|
|
13
SnarkHunter
30.10.11
✎
19:25
|
(0)Используй прямой запрос и функцию Coalesce...
|
|
14
Ёпрст
гуру
30.10.11
✎
19:31
|
+13 или тупо case
|
|
15
mpbakunov
30.10.11
✎
19:32
|
(13) поподробнее плиз
|
|
16
Ёпрст
гуру
30.10.11
✎
19:39
|
(15)
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший