|
Логическая функция при поиске | ☑ | ||
---|---|---|---|---|
0
Pavel55555
01.11.16
✎
16:25
|
Доброго дня!
Платформа 8.3 Толстый клиент. УТ 10.3 Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ПЕРВЫЕ 1 | НоменклатураКонтрагентов.Номенклатура, | НоменклатураКонтрагентов.ХарактеристикаНоменклатуры |ИЗ | РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов |ГДЕ | (НоменклатураКонтрагентов.Контрагент = &Контрагент | И НоменклатураКонтрагентов.КодНоменклатурыКонтрагента = &Код | ИЛИ НоменклатураКонтрагентов.НаименованиеНоменклатурыКонтрагента ПОДОБНО &НаименованиеНоменклатурыКонтрагента)"; Запрос.УстановитьПараметр("Контрагент", Контрагент); Запрос.УстановитьПараметр("Код", Код); Запрос.УстановитьПараметр("НаименованиеНоменклатурыКонтрагента", НаименованиеНоменклатурыКонтрагента); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Если Выборка.Следующий() Тогда ЗаполнитьЗначенияСвойств(СтруктураВозврата, Выборка); Возврат СтруктураВозврата; КонецЕсли; Запрос выполняем поиск номенклатуры в справочнике по коду и наименованию номен контрагента. Не могу сообразить как сделать что бы был логический выбор, то есть если код = 0 (его нет) то ищем по наименованию или наоборот. |
|||
1
butterbean
01.11.16
✎
16:26
|
что сегодня за день-то такой?
|
|||
2
Timon1405
01.11.16
✎
16:28
|
(1) Международный день вегана
|
|||
3
h-sp
01.11.16
✎
16:29
|
(0) сделайте 2 запроса. сначала поиск по коду, потом по наименованию.
|
|||
4
butterbean
01.11.16
✎
16:35
|
(3) о, они объединяются в нейросеть
|
|||
5
Жан Пердежон
01.11.16
✎
16:47
|
||||
6
НеПридумалаНик
01.11.16
✎
16:51
|
(0)
" ... |ГДЕ (&Код = 0 И НоменклатураКонтрагентов.Контрагент = &Контрагент) | ИЛИ | (&Код <> 0 И НоменклатураКонтрагентов.НаименованиеНоменклатурыКонтрагента ПОДОБНО &НаименованиеНоменклатурыКонтрагента) |"; используй в связке И то, что если первое условие &Код = 0 (или же &Код <> 0 во втором случае) не выполняется, то вторая часть И по идее даже не анализируется |
|||
7
HardBall
01.11.16
✎
17:04
|
Выбор Когда &Код = 0 Тогда НоменклатураКонтрагентов.НаименованиеНоменклатурыКонтрагента ПОДОБНО &НаименованиеНоменклатурыКонтрагента
Иначе НоменклатураКонтрагентов.Контрагент = &Контрагент И НоменклатураКонтрагентов.КодНоменклатурыКонтрагента = &Код Конец |
|||
8
h-sp
01.11.16
✎
17:13
|
(7) лучше при поиске не писать таких выражений. Они очень сильно тормозят запрос.
|
|||
9
Pavel55555
01.11.16
✎
17:14
|
(6) Спасибо НеПридумалаНик Большое!
Отлично работает: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ПЕРВЫЕ 1 | НоменклатураКонтрагентов.Номенклатура, | НоменклатураКонтрагентов.ХарактеристикаНоменклатуры |ИЗ | РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов |ГДЕ (&Код = 0 И НоменклатураКонтрагентов.Контрагент = &Контрагент) | ИЛИ | (&Код <> 0 И НоменклатураКонтрагентов.НаименованиеНоменклатурыКонтрагента ПОДОБНО &НаименованиеНоменклатурыКонтрагента) |"; |
|||
10
Pavel55555
01.11.16
✎
17:14
|
Всем спасибо вопрос закрыт!
:) |
|||
11
HardBall
01.11.16
✎
17:32
|
(8) Не верю.
ПОДОБНО это вообще алес. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |