|
КД 2.1 ПКО, Обработчик события "Поля поиска". Как настроить количество попыток поиска? | ☑ | ||
---|---|---|---|---|
0
Тенепопятам
31.03.22
✎
20:25
|
В событии есть переменная "НомерВариантаПоиска", которая по описанию может принимать значения от 1 до 10, но на практике после двух попыток поиска (макс. НомерВариантаПоиска=2) поиск завершается и создается новый элемент.
Вопрос: почему так? Может быть количество попыток поиска где-то указывается? |
|||
1
Aleksey
31.03.22
✎
20:35
|
какой смысл? если он нашел или закончились варианты поиска
|
|||
2
Тенепопятам
31.03.22
✎
21:19
|
(1) Вариантов поиска более двух, а он после второго поиск прекращает
|
|||
3
Aleksey
31.03.22
✎
21:56
|
он может и 10 раз искать
|
|||
4
Aleksey
31.03.22
✎
21:58
|
есть СтрокаИменСвойствПоиска, если она не меняется какой смысл еще раз искать?
|
|||
5
SnowBarsCloud
31.03.22
✎
22:30
|
Если правильно понимаю, то сначала поиск идет по ГУИДУ, второй поиск идет по всем твоим полям сразу. Указывается в "СтрокаИменСвойствПоиска". По ГУИДУ не найдено, по другим полям не найдено, создается новый. Могу ошибаться, не пользовался обработчиком "Поля поиска". Смотрю методички
|
|||
6
Ёпрст
31.03.22
✎
23:33
|
(0) больше кода.
Возможно описано ПрекратитьПоиск А так, до 5 точно работает, больше условий не лепил |
|||
7
hhhh
01.04.22
✎
01:53
|
а вот если пустой инн задан в поиске, он по нему ищет? Или переходит к следующему шагу? То есть пропускает этот вариант?
|
|||
8
Aleksey
01.04.22
✎
02:16
|
В поиски нельзя задать пустой Инн там задаётся поле поиска. Т. Е. Поля для поиска Инн или Инн, кпп.
|
|||
9
Aleksey
01.04.22
✎
02:18
|
А значение уже прилетает при конвертации. И вот значение для конкретного элемента может быть пустым. И да он будет искать по пустому значению
|
|||
10
Aleksey
01.04.22
✎
02:29
|
если конечно не прописать
Если НомерВариантаПоиска =1 тогда если ЗначениеЗаполнено(СвойстваПоиска.Инн) тогда СтрокаИменСвойствПоиска ="ИНН" иначе СтрокаИменСвойствПоиска ="Наименование" КонецЕсли; ИначеЕсли НомерВариантаПоиска = 2 тогда СтрокаИменСвойствПоиска ="КодВИсточнике"; ИначеЕсли НомерВариантаПоиска = 3 тогда //Поиск в регистре соответствия, причем поля для поиска берем из Дополнительных параметрах тут типа запрос к регистру с передачей (ПараметрыОбъекта.КодДляПоиска) для поиска если нашли то СсылкаНаОбъект = РезультатЗапроса.Ссылка;//ссылка на результирующий объект. Если в обработчике установить данную ссылку (не пустую) то программа ее запомнит и поиск на этом будет считать успешно завершенным Т.е. если ИНН пустой, то ищем по наименованию, а если не нашли то ищем по реквизиту КодВИсточнике, и если и там пусто, то по регистру соответствия ну и т.д. до 10 вариантов |
|||
11
DiMel_77
01.04.22
✎
10:29
|
Вообще, проще посмотреть в модуль объекта обработки "УниверсальныйОбменВФорматеXML" в процедуру "НайтиОбъектПоСсылке". Типовой подход подразумевает использование переменной "СтрокаИменСвойствПоиска", смена которой инициирует поиск при смене полей поиска. Но никто вам не мешает искать не по свойствам поиска с использованием функции "НайтиЭлементПоСвойствамПоиска", а организовать свой собственный алгоритм, в котором предусмотреть хоть 100 вариантов поиска, который в итоге должен заполнить СсылкуНаОбъект. У меня таким образом происходит поиск в правилах по переданным параметрам. Но на практике больше 5 свойств не разу не встречалось.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |