|
Как подправить запрос на условие ЗначениеЗаполнено | ☑ | ||
---|---|---|---|---|
0
pro3ri
15.10.15
✎
09:09
|
Добрый день!
Есть код: Запрос.Текст = "ВЫБРАТЬ | ОтгрузкиОплаты.Регистратор |ИЗ | РегистрНакопления.ОтгрузкиОплаты КАК ОтгрузкиОплаты |ГДЕ | ОтгрузкиОплаты.Организация = &Организация | И ОтгрузкиОплаты.ДоговорКонтрагента = &ДоговорКонтрагента | И ОтгрузкиОплаты.КредитныйДокумент = &КредитныйДокумент | |УПОРЯДОЧИТЬ ПО | ОтгрузкиОплаты.Период"; Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("ДоговорКонтрагента", Договор); Запрос.УстановитьПараметр("КредитныйДокумент", КредитныйДокумент); Как подправить запрос так, чтобы если поле КредитныйДокумент не заполнено, он выбирал все, а не пустую ссылку? |
|||
1
pro3ri
15.10.15
✎
09:11
|
неужели проще нельзя Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОтгрузкиОплаты.Регистратор |ИЗ | РегистрНакопления.ОтгрузкиОплаты КАК ОтгрузкиОплаты |ГДЕ | ОтгрузкиОплаты.Организация = &Организация | И ОтгрузкиОплаты.ДоговорКонтрагента = &ДоговорКонтрагента | И ОтгрузкиОплаты.КредитныйДокумент = &КредитныйДокумент | |УПОРЯДОЧИТЬ ПО | ОтгрузкиОплаты.Период"; Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("ДоговорКонтрагента", Договор); Если Не ЗначениеЗаполнено(КредитныйДокумент) Тогда Запрос.Текст = "ВЫБРАТЬ | ОтгрузкиОплаты.Регистратор |ИЗ | РегистрНакопления.ОтгрузкиОплаты КАК ОтгрузкиОплаты |ГДЕ | ОтгрузкиОплаты.Организация = &Организация | И ОтгрузкиОплаты.ДоговорКонтрагента = &ДоговорКонтрагента | |УПОРЯДОЧИТЬ ПО | ОтгрузкиОплаты.Период"; КонецЕсли; Запрос.УстановитьПараметр("КредитныйДокумент", КредитныйДокумент); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Попытка Док = Выборка.Регистратор.ПолучитьОбъект(); Док.Записать(РежимЗаписиДокумента.Проведение); Сообщить("Документ " + Док + " записан!"); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЦикла; Сообщить("__________________ ЗАВЕРШЕНО ____________________"); КонецПроцедуры |
|||
2
Nuobu
15.10.15
✎
09:15
|
||||
3
pro3ri
15.10.15
✎
09:18
|
(2) благодарю
|
|||
4
pro3ri
15.10.15
✎
09:32
|
пока остановился на таком варианте:
Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОтгрузкиОплаты.Регистратор |ИЗ | РегистрНакопления.ОтгрузкиОплаты КАК ОтгрузкиОплаты |ГДЕ | ОтгрузкиОплаты.Организация = &Организация | И ОтгрузкиОплаты.ДоговорКонтрагента = &ДоговорКонтрагента | И ОтгрузкиОплаты.КредитныйДокумент = &КредитныйДокумент | |УПОРЯДОЧИТЬ ПО | ОтгрузкиОплаты.Период"; Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("ДоговорКонтрагента", Договор); Если Не ЗначениеЗаполнено(КредитныйДокумент) Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст,"И ОтгрузкиОплаты.КредитныйДокумент = &КредитныйДокумент", ""); Иначе Запрос.УстановитьПараметр("КредитныйДокумент", КредитныйДокумент); КонецЕсли; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Попытка Док = Выборка.Регистратор.ПолучитьОбъект(); Док.Записать(РежимЗаписиДокумента.Проведение); Сообщить("Документ " + Док + " записан!"); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЦикла; Сообщить("__________________ ЗАВЕРШЕНО ____________________"); КонецПроцедуры |
|||
5
DexterMorgan
15.10.15
✎
09:37
|
"ВЫБРАТЬ
| ОтгрузкиОплаты.Регистратор |ИЗ | РегистрНакопления.ОтгрузкиОплаты КАК ОтгрузкиОплаты |ГДЕ | ОтгрузкиОплаты.Организация = &Организация | И ОтгрузкиОплаты.ДоговорКонтрагента = &ДоговорКонтрагента | И | ВЫБОР КОГДА &КредитныйДокументЗаполнен ТОГДА | ОтгрузкиОплаты.КредитныйДокумент = &КредитныйДокумент | ИНАЧЕ ИСТИНА | КОНЕЦ | |УПОРЯДОЧИТЬ ПО | ОтгрузкиОплаты.Период"; Запрос.УстановитьПараметр("КредитныйДокументЗаполнен", ЗначениеЗаполнено(КредитныйДокумент)); |
|||
6
DexterMorgan
15.10.15
✎
09:47
|
Кста, можно заменить
ВЫБОР КОГДА &КредитныйДокументЗаполнен ТОГДА ОтгрузкиОплаты.КредитныйДокумент = &КредитныйДокумент ИНАЧЕ ИСТИНА КОНЕЦ на (&КредитныйДокументЗаполнен И ОтгрузкиОплаты.КредитныйДокумент = &КредитныйДокумент) =) |
|||
7
Лефмихалыч
15.10.15
✎
09:51
|
(0) построитель используй, Люк
|
|||
8
pro3ri
15.10.15
✎
10:29
|
(7)так?:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОтгрузкиОплаты.Регистратор |ИЗ | РегистрНакопления.ОтгрузкиОплаты КАК ОтгрузкиОплаты |ГДЕ | ОтгрузкиОплаты.Организация = &Организация | И ОтгрузкиОплаты.ДоговорКонтрагента = &ДоговорКонтрагента |{ГДЕ | (ОтгрузкиОплаты.КредитныйДокумент = &КредитныйДокумент) КАК Поле2} | |УПОРЯДОЧИТЬ ПО | ОтгрузкиОплаты.Период"; Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("ДоговорКонтрагента", Договор); //Если Не ЗначениеЗаполнено(КредитныйДокумент) Тогда // // Запрос.Текст = СтрЗаменить(Запрос.Текст,"И ОтгрузкиОплаты.КредитныйДокумент = &КредитныйДокумент", ""); // //Иначе Запрос.УстановитьПараметр("КредитныйДокумент", КредитныйДокумент); //КонецЕсли; РезультатЗапроса = Запрос.Выполнить(); |
|||
9
DexterMorgan
15.10.15
✎
10:38
|
(8) бггг
|
|||
10
DexterMorgan
15.10.15
✎
10:39
|
(8) а чем тебе (5) не нравится?
|
|||
11
pro3ri
16.10.15
✎
09:28
|
(10) писать меньше, производительность выше
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |