Поиск и подставление значений из справочника в текстовое поле общей формы

1. user1345957 02.03.20 15:58 Сейчас в теме
На общей форме Авторизация, есть поле ввода почта (можно и логин).
После регистрации у админа (или сервера) в базе данных (форма списка справочники Пользователи) остаются данные от зарегистрированного пользователя.
Пользователю во время авторизации нужно ввести первые несколько букв (цифр) логина, и тогда ему выведется в поле ввода все совпадения, из которых он выберёт нужное.
Это как аналог функции "запомнить" логин и пароль. Проблемка в том что я недоконца разобрался как сделать задуманное.

#Область ПоискаЛогинаАвтоподборомИзСправочникаПользователи
&НаКлиенте
Процедура ПочтаАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)

    Если Не ПустаяСтрока(Текст) Тогда
        СтандартнаяОбработка = Ложь;
        //СЗЛогинов = Справочники.Пользователи.ПолучитьДанныеВыбора(); //СписокЗначенийЛогинов
    КонецЕсли;
    
    ТекстАвтоПодбора = ""
    
КонецПроцедуры


&НаКлиенте
Процедура ПочтаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Истина;
    //ДанныеВыбора = ПолучитьСписокДоступныхЭлементов();
    
КонецПроцедуры
#КонецОбласти
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1345957 02.03.20 19:14 Сейчас в теме
Набросал код, возможно с чем-то лишним. В справочнике пользователи зарегистрирован пользователь с почтой mujic@mail.ru

#Область ПоискаЛогинаАвтоподборомИзСправочникаПользователи
&НаКлиенте
Процедура ПочтаАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)

    Если Ожидание <> 0 И Не ПустаяСтрока(Текст) Тогда
        СтандартнаяОбработка = Ложь;
        ДанныеВыбора = ПолучитьСписокВыбораЛогинов(Текст);
    КонецЕсли;
        
КонецПроцедуры


&НаКлиенте
Процедура ПочтаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
        ПараметрыФормы = Новый Структура;
    Если ТипЗнч(Элементы.Почта) = Тип("СправочникСсылка.Пользователи") И ЗначениеЗаполнено(Элементы.Почта) Тогда
        
        ПараметрыФормы.Вставить("ТекущаяСтрока", Элементы.Почта);
    КонецЕсли;

    
КонецПроцедуры

&НаСервереБезКонтекста
функция ПолучитьСписокВыбораЛогинов(знач СтрокаПоиска)
    
СписокВыбораЛогинов = Новый СписокЗначений;

    ПараметрыВыбора = Новый Структура;
    ПараметрыВыбора.Вставить("Отбор", Новый Структура("ПометкаУдаления", Ложь));
    ПараметрыВыбора.Вставить("СтрокаПоиска", СтрокаПоиска);
    ПараметрыВыбора.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.Элементы);
    
ДанныеВыбораЛогина = Справочники.Пользователи.ПолучитьДанныеВыбора(ПараметрыВыбора);

Для Каждого ЭлементСписка Из ДанныеВыбораЛогина Цикл

    СписокВыбораЛогинов.Добавить(ЭлементСписка.Значение, Новый ФорматированнаяСтрока (ЭлементСписка.Представление, "(логин)"));    
    
КонецЦикла;

Возврат СписокВыбораЛогинов;
    
КонецФункции

#КонецОбласти
Показать
Прикрепленные файлы:
3. user1345957 03.03.20 00:50 Сейчас в теме
Я пробую более простой способ: поле ввода по строке. Но подставляется в поле ввода Почта, не то значение, которое мне нужно.
Ошибка в том что подставляется значения из реквизита Наименование справочника Пользователи.
У Иванова И.И. пока та же почта mujic@mail.ru
Как можно решить эту проблему и по возможности упростить код ?
Прикрепленные файлы:
4. пользователь 03.03.20 21:32
Сообщение было скрыто модератором.
...
5. user1345957 04.03.20 07:00 Сейчас в теме
Ошибка в том что подставляется значения из реквизита Наименование справочника Пользователи.
Я пробовал настроить ВводПоСтроке, в архиве пояснительные картинки. И хоть теперь поиск происходит правильно, но значение всё равно пока что подставляется автоматически из реквизита Наименование.
Возможно тогда нужна дополнительная обработка (событие) ? Какая?
https://cloud.mail.ru/public/eXqw/qMuLTGRaj
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот