Поиск и подставление значений из справочника в текстовое поле общей формы
На общей форме Авторизация, есть поле ввода почта (можно и логин).
После регистрации у админа (или сервера) в базе данных (форма списка справочники Пользователи) остаются данные от зарегистрированного пользователя.
Пользователю во время авторизации нужно ввести первые несколько букв (цифр) логина, и тогда ему выведется в поле ввода все совпадения, из которых он выберёт нужное.
Это как аналог функции "запомнить" логин и пароль. Проблемка в том что я недоконца разобрался как сделать задуманное.
После регистрации у админа (или сервера) в базе данных (форма списка справочники Пользователи) остаются данные от зарегистрированного пользователя.
Пользователю во время авторизации нужно ввести первые несколько букв (цифр) логина, и тогда ему выведется в поле ввода все совпадения, из которых он выберёт нужное.
Это как аналог функции "запомнить" логин и пароль. Проблемка в том что я недоконца разобрался как сделать задуманное.
#Область ПоискаЛогинаАвтоподборомИзСправочникаПользователи
&НаКлиенте
Процедура ПочтаАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
Если Не ПустаяСтрока(Текст) Тогда
СтандартнаяОбработка = Ложь;
//СЗЛогинов = Справочники.Пользователи.ПолучитьДанныеВыбора(); //СписокЗначенийЛогинов
КонецЕсли;
ТекстАвтоПодбора = ""
КонецПроцедуры
&НаКлиенте
Процедура ПочтаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Истина;
//ДанныеВыбора = ПолучитьСписокДоступныхЭлементов();
КонецПроцедуры
#КонецОбласти
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Набросал код, возможно с чем-то лишним. В справочнике пользователи зарегистрирован пользователь с почтой mujic@mail.ru
#Область ПоискаЛогинаАвтоподборомИзСправочникаПользователи
&НаКлиенте
Процедура ПочтаАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
Если Ожидание <> 0 И Не ПустаяСтрока(Текст) Тогда
СтандартнаяОбработка = Ложь;
ДанныеВыбора = ПолучитьСписокВыбораЛогинов(Текст);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПочтаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
Если ТипЗнч(Элементы.Почта) = Тип("СправочникСсылка.Пользователи") И ЗначениеЗаполнено(Элементы.Почта) Тогда
ПараметрыФормы.Вставить("ТекущаяСтрока", Элементы.Почта);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
функция ПолучитьСписокВыбораЛогинов(знач СтрокаПоиска)
СписокВыбораЛогинов = Новый СписокЗначений;
ПараметрыВыбора = Новый Структура;
ПараметрыВыбора.Вставить("Отбор", Новый Структура("ПометкаУдаления", Ложь));
ПараметрыВыбора.Вставить("СтрокаПоиска", СтрокаПоиска);
ПараметрыВыбора.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.Элементы);
ДанныеВыбораЛогина = Справочники.Пользователи.ПолучитьДанныеВыбора(ПараметрыВыбора);
Для Каждого ЭлементСписка Из ДанныеВыбораЛогина Цикл
СписокВыбораЛогинов.Добавить(ЭлементСписка.Значение, Новый ФорматированнаяСтрока (ЭлементСписка.Представление, "(логин)"));
КонецЦикла;
Возврат СписокВыбораЛогинов;
КонецФункции
#КонецОбласти
ПоказатьПрикрепленные файлы:

Я пробую более простой способ: поле ввода по строке. Но подставляется в поле ввода Почта, не то значение, которое мне нужно.
Ошибка в том что подставляется значения из реквизита Наименование справочника Пользователи.
У Иванова И.И. пока та же почта mujic@mail.ru
Как можно решить эту проблему и по возможности упростить код ?
Ошибка в том что подставляется значения из реквизита Наименование справочника Пользователи.
У Иванова И.И. пока та же почта mujic@mail.ru
Как можно решить эту проблему и по возможности упростить код ?
Прикрепленные файлы:



Ошибка в том что подставляется значения из реквизита Наименование справочника Пользователи.
Я пробовал настроить ВводПоСтроке, в архиве пояснительные картинки. И хоть теперь поиск происходит правильно, но значение всё равно пока что подставляется автоматически из реквизита Наименование.
Возможно тогда нужна дополнительная обработка (событие) ? Какая?
https://cloud.mail.ru/public/eXqw/qMuLTGRaj
Я пробовал настроить ВводПоСтроке, в архиве пояснительные картинки. И хоть теперь поиск происходит правильно, но значение всё равно пока что подставляется автоматически из реквизита Наименование.
Возможно тогда нужна дополнительная обработка (событие) ? Какая?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот