|   |   | 
| 
 | Объединение запросов или запрос с условием | ☑ | ||
|---|---|---|---|---|
| 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) тем более.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |