![]() |
![]() |
|
поиск данных при наборе текста в поле | ☑ | ||
---|---|---|---|---|
0
falselight
15.01.17
✎
17:25
|
Подскажите пожалуйста по такому вопросу.
У меня в нем вообще нет ясности. Есть поле у табличной части документа, типа справочник номенклатура. В это поле начинают вводить данные с клавиатуры. Срабатывает автопоиск наверное по всему справочнику, по первым буквам. Так ли это? И как в этот поиск можно передавать что бы он происходил не по всему справочнику, а только в определенном каталоге справочника? |
|||
1
Неверный Параметр И
15.01.17
✎
17:37
|
Красная кнопочка "Я" даст ответ тебе, ливингстар
|
|||
2
falselight
16.01.17
✎
06:29
|
есть примеры
Процедура ПолеВвода1АвтоПодборТекста (Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка) // Примерный текст обработчика Если Текст = "п" Тогда ТекстАвтоПодбора = "пункт"; СтандартнаяОбработка = Ложь; КонецЕсли; КонецПроцедуры Процедура ПолеВвода1ОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) Если Элемент = ЭлементыФормы.ПолеВвода1 Тогда Если Текст = "одежда" Тогда Значение = Новый СписокЗначений(); Значение.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Рубашка")); Значение.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Брюки")); СтандартнаяОбработка = Ложь; КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
3
falselight
16.01.17
✎
06:31
|
(2+) Но у меня задача производить поиск в справочнике
сотрудники организаций. Например есть выборка сделанная запросом, где имеются только сотрудники у которых вид занятости = основное рабочее место. Как можно производить поиск в этой выборке по первым введенным символам? |
|||
4
falselight
16.01.17
✎
06:39
|
К примеру, -
В выборке запроса отобраны записи среди которых есть "фитнес". Я набираю в поле с клавиатуры фит, нажимаю enter открывается и фитнес и ещё 4 записи с началом фит. Как сделать что бы открывалась только запись фитнес? Так как только она есть в выборке! |
|||
5
Неверный Параметр И
16.01.17
✎
07:20
|
В найденных тобой примерах и СП есть все, что тебе нужно, Ливингстар.
|
|||
6
falselight
16.01.17
✎
07:45
|
(5) понял! делаю!!!!
|
|||
7
falselight
16.01.17
✎
10:29
|
Сделал эту подстановку по вводимым первым символам
по примеру, для обычных форм Процедура ПолеВвода1ОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) Если Элемент = ЭлементыФормы.ПолеВвода1 Тогда Если Текст = "одежда" Тогда Значение = Новый СписокЗначений(); Значение.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Рубашка")); Значение.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Брюки")); СтандартнаяОбработка = Ложь; КонецЕсли; КонецЕсли; КонецПроцедуры но теперь это не работает для управляемой формы, пишет что нет в списке, красным текстом. Как можно сделать аналогично для управляемой формы? |
|||
8
falselight
16.01.17
✎
10:34
|
(7+) Там в этой процедуре, другие параметры в скобках, -
(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка) Как тут сделать аналог (7) ? |
|||
9
Fedor-1971
16.01.17
✎
10:35
|
(7) в функции НаСервере сформируй список и присвой его в Значение
|
|||
10
Fedor-1971
16.01.17
✎
10:36
|
(8) конфигуратором посмотри типы данных и почитай в СП что ожидают в каждом из параметров
|
|||
11
falselight
16.01.17
✎
10:41
|
(9) В управляемом приложении нет Значения!
Там есть, - Текст, ДанныеВыбора, ПараметрыПолученияДанных Что из этого нужно сделать списком? На сервере в смысле эту процедуру вообще выполнять? |
|||
12
falselight
16.01.17
✎
10:44
|
(10) Че то с СП вообще другая процедура ОкончаниеВводаТекста, с другими параметрами ((((
Там есть Значение |
|||
13
Fedor-1971
16.01.17
✎
10:45
|
(11) сгоняй НаСерверБезКонтекста и из функции верни сформированный список значений (прямо так, как сделано).
Потом читаем СП на предмет узнать что именно надо заполнить СпискомЗначений (12) Значит как-то не правильно смотришь в СП |
|||
14
falselight
16.01.17
✎
10:48
|
(13)
Там есть /Поле Формы/Расширение поля ввода/ - это что у меня. и /Элементы управления/Поле ввода/ - вот тут есть и текст и значение. |
|||
15
falselight
16.01.17
✎
10:53
|
(13) Но список в управляемой форме я и так получаю, не нужно на сервер идти за этим. Важно как что бы его высвечивать в поле как в обычной форме?
В процедуре этой нет Значения, там есть, - Текст, ДанныеВыбора, ПараметрыПолученияДанных . |
|||
16
falselight
16.01.17
✎
10:54
|
Я Значение меняю на ДанныеВыбора и его заполняю как список, н очт ото не то пока
|
|||
17
falselight
16.01.17
✎
10:57
|
Если я набираю того чего нет в списке, то вываливается куча значения из тех что не те что я передал в список (
|
|||
18
Fedor-1971
16.01.17
✎
11:00
|
(17) СтандартнаяОбработка=ложь - выключи стандартный механизм
|
|||
19
falselight
16.01.17
✎
11:08
|
(18) Он у меня первой строкой идет в процедуре. Но все по прежнему(((( Начинаешь вводить, пишет нет в списке.
https://cloud.mail.ru/public/GKSd/73bPLWXkG |
|||
20
falselight
16.01.17
✎
11:14
|
(19) СтандартнаяОбработка = Ложь
отключил добавляю нужные значения в ДанныеВыбора ну и все должно работать как в обычном приложении по идее почему не работает? |
|||
21
Fedor-1971
16.01.17
✎
11:18
|
(19) сними галку у поля "РежимВыбораИзСписка" - она ограничивает выбор только списком из "СписокВыбора", а он пустой, соответственно тебе об этом и сообщают
|
|||
22
Fedor-1971
16.01.17
✎
11:21
|
(19) мощно, запрос НаКлиенте (НаКлиенте - общаемся с клиентом, НаСервере - выбираем и корректируем данные). Почитай что нить по УФ, там так с наскока не прорубить
|
|||
23
falselight
16.01.17
✎
11:23
|
(22) ошибки же не выдало, хотя да, нужно на сервере получать и возвращать как вы говорили да? Но тут не ругается я вот и делаю далее.
|
|||
24
falselight
16.01.17
✎
11:24
|
(21) РежимВыбораИзСписка нет галки
есть галка ВыбратьТип и РедактированиеТекста Как с этим быть тогда? Если галка РежимВыбораИзСписка и так не установлена? |
|||
25
Fedor-1971
16.01.17
✎
11:28
|
(23) лучше привыкай сразу, потом будет сложнее (возможно, запущен толстый клиент или включена совместимость. Тонкий сразу ругается)
(24) если ругается на список, значит он пустой и с ним система пытается нечто сверить. (возможно типы не совпадают поля и того где выбираешь, например поле - текст, а выборка из справочника - сравнение по строкам пролетает) Тут у меня уже закончились предположения, дальше помочь нечем. |
|||
26
falselight
16.01.17
✎
11:31
|
(25) Это все понятно, пока затык что не работает выбор по первым вводимым символам, как в обычном приложении, не пойму что придумать.
|
|||
27
falselight
16.01.17
✎
11:31
|
(25) ну так пример же в (19)
подобный аналог работает в обычном приложении |
|||
28
Fedor-1971
16.01.17
✎
11:51
|
(27) в обычном да, но для УФ надо менять логику и смотреть на имеющиеся параметры обработчика, может что-нить изменилось
|
|||
29
falselight
16.01.17
✎
11:51
|
сообщение что бы не выводилось "Нет в списке"
в процедуре ИзменениеТекстаРедактирования поставил СтандартнаяОбработка = Ложь; галки РежимВыбораИзСписка нет если значение есть то оно проставляется, если нет пишет что его нет буду сейчас искать примеры где в списке несколько позиций на одну букву |
|||
30
falselight
16.01.17
✎
11:59
|
Если в списке 2 значения к примеру на букву Ф.
Вываливается список с одним элементом ((( Но если нажать на тч, на свободное место, то открывается список с двумя этими элементами. Пока не понял как разобрать это все... |
|||
31
falselight
16.01.17
✎
12:15
|
Короче в управляемой форме, нужно в этих процедурах
ставить стандартную обработку в ложь, тоже АвтоПодбор ИзменениеТекстаРедактирования |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |