|
Объединение запросов или запрос с условием | ☑ | ||
---|---|---|---|---|
0
ya1snik
12.12.15
✎
18:45
|
На форме есть два флажка с выбором типа документа. В случае если выбран какой-то тип документа или оба типа, происходит их выборка и действия над ними. Но возникла необходимость добавить еще несколько типов документов. Приходится делать отдельно запрос для каждого варианта выбора - для док 1, для док 2, для док 3, для док 1 и 2, для док 2 и 3 и т.д. Подскажите пожалуйста, каким образом можно это реализовать проще? Можно ли создать текст запроса отдельно для каждого документа и в случае множественного выбора документов объединять запросы?
|
|||
1
Nuobu
12.12.15
✎
19:35
|
(0) А что в запросах указываешь, выбираешь?
|
|||
2
Лефмихалыч
12.12.15
✎
21:23
|
(0) версия платформы какая?
|
|||
3
ya1snik
12.12.15
✎
21:59
|
8.1 УТ 10.3
Если Заказы ИЛИ Реализации Тогда Если Заказы И НЕ Реализации Тогда Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ |""Заказ покупателя"" КАК ВидДокумента, |ЗаказПокупателя.Ссылка КАК Ссылка |ИЗ |Документ.ЗаказПокупателя КАК ЗаказПокупателя |ГДЕ |ЗаказПокупателя.Дата МЕЖДУ &ДатаН И &ДатаК |"; КонецЕсли; Если НЕ Заказы И Реализации Тогда Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ |""Реализация товаров и услуг"" КАК ВидДокумента, |РеализацияТоваровУслуг.Ссылка КАК Ссылка |ИЗ |Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ |РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаН И &ДатаК |"; КонецЕсли; Если Заказы И Реализации Тогда Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ |""Заказ покупателя"" КАК ВидДокумента, |ЗаказПокупателя.Ссылка КАК Ссылка |ИЗ |Документ.ЗаказПокупателя КАК ЗаказПокупателя |ГДЕ |ЗаказПокупателя.Дата МЕЖДУ &ДатаН И &ДатаК |ОБЪЕДИНИТЬ ВСЕ |ВЫБРАТЬ |""Реализация товаров и услуг"" КАК ВидДокумента, |РеализацияТоваровУслуг.Ссылка КАК Ссылка |ИЗ |Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ |РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаН И &ДатаК |"; КонецЕсли; Запрос.УстановитьПараметр("ДатаН", началоПериода); Запрос.УстановитьПараметр("ДатаК", конецПериода); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Док = Выборка.Ссылка.ПолучитьОбъект(); Док.УстановитьПометкуУдаления(Истина); КонецЦикла; Иначе Сообщить("ВЫБЕРИТЕ ТИП ДОКУМЕНТА!!!"); КонецЕсли; |
|||
4
Мэс33
12.12.15
✎
22:07
|
Запрос - по сути текст.
Поэтому формируй текст запроса на лету, не зашивая в него типы документов. Запрос.Текст = "ВЫБРАТЬ |"+ВидДокументаТекст+" КАК ВидДокумента, |"+ВидДокумента+".Ссылка КАК Ссылка |ИЗ и так далее. |
|||
5
Necessitudo
12.12.15
✎
23:02
|
(4) Гори в аду и гугли "СхемаЗапроса"
|
|||
6
ya1snik
13.12.15
✎
01:57
|
(4) Спасибо за помощь, все ок.
|
|||
7
b_ru
13.12.15
✎
02:38
|
(5) Сам гори. Объектную модель для работы с реляционными запросами придумали лузера. Единственно зачем она нужна - это как раз для работы с нереляционными данными. Не тот случай.
|
|||
8
Мэс33
13.12.15
✎
09:15
|
(5) я не крутой 1сник, можно узнать подробнее, что ты имел ввиду?
|
|||
9
Мэс33
13.12.15
✎
09:25
|
(5) погуглил, да уж.
В данном случае применение схемы запроса не оправдано. Так что сами горите в аду. |
|||
10
MishaD
13.12.15
✎
09:43
|
(5) у человека 8.1, а схема запроса появилась в 8.3.5.
|
|||
11
Мэс33
13.12.15
✎
09:43
|
(10) тем более.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |