|
Поиск вводом по строке и подстановка в поле нужного значения. | ☑ | ||
---|---|---|---|---|
0
Reraru
03.03.20
✎
10:32
|
Ошибка в том что подставляется значения из реквизита Наименование справочника Пользователи.
У Иванова И.И. пока та же почта [email protected] Как можно решить эту проблему и по возможности упростить код ? На общей форме Авторизация, есть поле ввода почта (можно и логин). После регистрации у админа (или сервера) в базе данных (форма списка справочники Пользователи) остаются данные от зарегистрированного пользователя. Пользователю во время авторизации нужно ввести первые несколько букв (цифр) логина, и тогда ему выведется в поле ввода все совпадения, из которых он выберёт нужное. Это как аналог функции "запомнить" логин и пароль. Проблемка в том что я недоконца разобрался как сделать задуманное. [CODE] &НаКлиенте Процедура ПочтаАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка) Если Ожидание <> 0 И Не ПустаяСтрока(Текст) Тогда СтандартнаяОбработка = Ложь; ДанныеВыбора = ПолучитьСписокВыбораЛогинов(Текст); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПочтаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ПараметрыФормы = Новый Структура; Если ТипЗнч(Элементы.Почта) = Тип("СправочникСсылка.Пользователи") И ЗначениеЗаполнено(Элементы.Почта) Тогда ПараметрыФормы.Вставить("ТекущаяСтрока", Элементы.Почта); КонецЕсли; КонецПроцедуры &НаСервереБезКонтекста функция ПолучитьСписокВыбораЛогинов(знач СтрокаПоиска) СписокВыбораЛогинов = Новый СписокЗначений; ПараметрыВыбора = Новый Структура; ПараметрыВыбора.Вставить("Отбор", Новый Структура("ПометкаУдаления", Ложь)); ПараметрыВыбора.Вставить("СтрокаПоиска", СтрокаПоиска); ПараметрыВыбора.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.Элементы); ДанныеВыбораЛогина = Справочники.Пользователи.ПолучитьДанныеВыбора(ПараметрыВыбора); Для Каждого ЭлементСписка Из ДанныеВыбораЛогина Цикл СписокВыбораЛогинов.Добавить(ЭлементСписка.Значение, Новый ФорматированнаяСтрока (ЭлементСписка.Представление, "(логин)")); КонецЦикла; Возврат СписокВыбораЛогинов; КонецФункции [/CODE] |
|||
1
catena
03.03.20
✎
10:41
|
(0)Если добавить этот реквизит в ВводПоСтроке, кодировать вообще ничего не придется.
|
|||
2
Reraru
03.03.20
✎
19:06
|
(1) Реквизит же на общей форме авторизация, отвечает за вход.
, и называется почта, но с типом строка. Так как зарегистрированному пользователю не нужно при входе заново задавать почту. Поэтому на общей форме у реквизита почта, не стоит тип ссылка на справочник пользователи. Вообще реквизит почта используется как аналог логина (пока что так). Я пробовал настроить ВводПоСтроке, в архиве пояснительные картинки. И хоть теперь поиск происходит правильно, но значение всё равно пока что подставляется автоматически из реквизита Наименование. Возможно тогда нужна дополнительная обработка (событие) ? Какая? https://cloud.mail.ru/public/eXqw/qMuLTGRaj |
|||
3
Reraru
03.03.20
✎
22:22
|
люди. хелп!
|
|||
4
Reraru
03.03.20
✎
23:03
|
Я в тупике вместе со своей ошибкой. Пробую запросом в событии ОбработкаВыбора (поле почта на общей форме), а он не определяется:
СтандартнаяОбработка = Ложь; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Пользователи.Почта КАК Почта |ИЗ | Справочник.Пользователи КАК Пользователи | |СГРУППИРОВАТЬ ПО | Пользователи.Почта"; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |