| 
    
        
     
     | 
    
    
  | 
Поиск вводом по строке и подстановка в поле нужного значения. | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Reraru    
     03.03.20 
            ✎
    10:32 
 | 
         
        Ошибка в том что подставляется значения из реквизита Наименование справочника Пользователи.
 
        У Иванова И.И. пока та же почта mujic@mail.ru Как можно решить эту проблему и по возможности упростить код ? На общей форме Авторизация, есть поле ввода почта (можно и логин). После регистрации у админа (или сервера) в базе данных (форма списка справочники Пользователи) остаются данные от зарегистрированного пользователя. Пользователю во время авторизации нужно ввести первые несколько букв (цифр) логина, и тогда ему выведется в поле ввода все совпадения, из которых он выберёт нужное. Это как аналог функции "запомнить" логин и пароль. Проблемка в том что я недоконца разобрался как сделать задуманное. [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 
 | 
         
        Я в тупике вместе со своей ошибкой. Пробую запросом в событии ОбработкаВыбора (поле почта на общей форме), а он не определяется:
 
        СтандартнаяОбработка = Ложь; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Пользователи.Почта КАК Почта |ИЗ | Справочник.Пользователи КАК Пользователи | |СГРУППИРОВАТЬ ПО | Пользователи.Почта";  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |