Добрый вечер.
Вопрос такой, есть форма авторизации (1 фото). Введя IdNumber и Password и нажав на кнопку вход, я должна перейти в профиль этого пользователя,который уже зарегистрирован в система.
Как это осуществить?
---
IdNumber и Password - реквизиты формы, у справочника Пользователи соответствеено тоже есть такие реквизиты

```1c
    &НаСервере
    Функция ПолучитьПользователя()
    Запрос = Новый Запрос;
    Запрос.Текст = "Выбрать Первые 1 Пользователи.Ссылка Из Справочник.Пользователи КАК Пользователи Где Пользователи.IdNumber = &IdNumber и Пользователи.Password = &Password";
    Запрос.УстановитьПараметр("IdNumber", IdNumber);
    Запрос.УстановитьПараметр("Password", Password);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    Возврат Выборка.Ссылка;
    Иначе
    Возврат Неопределено;
    КонецЕсли;
    КонецФункции

    &НаКлиенте
    Процедура Вход(Команда)
    Пользователь = ПолучитьПользователя();
    Если ЗначениеЗаполнено(Пользователь) Тогда
    П = Новый Структура("Ключ", Пользователь);
    ОткрытьФорму("Справочник.Пользователи.Форма.ФормаЭлемента", П);
    ЭтотОбъект.Закрыть();
    Иначе
    ПоказатьОповещениеПользователя("Авторизация не пройдена");
    КонецЕсли
    КонецПроцедуры
```
---
А, ну да. Только не имя пользователя, а ссылка на существующего.
---
для команды кнопки вход написать поиск карточки пользователя системы и открытие формы этой карточки
---
Я это и так понимаю, но как именно это сделать?
---
IdNumber и Password - реквизиты формы, у справочника Пользователи соответствеено тоже есть такие реквизиты

```1c
    &НаСервере
    Функция ПолучитьПользователя()
    Запрос = Новый Запрос;
    Запрос.Текст = "Выбрать Первые 1 Пользователи.Ссылка Из Справочник.Пользователи КАК Пользователи Где Пользователи.IdNumber = &IdNumber и Пользователи.Password = &Password";
    Запрос.УстановитьПараметр("IdNumber", IdNumber);
    Запрос.УстановитьПараметр("Password", Password);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    Возврат Выборка.Ссылка;
    Иначе
    Возврат Неопределено;
    КонецЕсли;
    КонецФункции

    &НаКлиенте
    Процедура Вход(Команда)
    Пользователь = ПолучитьПользователя();
    Если ЗначениеЗаполнено(Пользователь) Тогда
    П = Новый Структура("Ключ", Пользователь);
    ОткрытьФорму("Справочник.Пользователи.Форма.ФормаЭлемента", П);
    ЭтотОбъект.Закрыть();
    Иначе
    ПоказатьОповещениеПользователя("Авторизация не пройдена");
    КонецЕсли
    КонецПроцедуры
```
---
Запрос.УстановитьПараметр("Password", Password); не знал, что так работает. Думаю, что пароль в базе на хранится. Там же только хэш есть. Или я чего-то упустил?
---
-то упустил?
а где условие задачи?
---
Пользователь = ПолучитьПользователя();
    Если ЗначениеЗаполнено(Пользователь) Тогда
        П = Новый Структура("Ключ", Пользователь);
        ОткрытьФорму("Справочник.Пользователи.Форма.ФормаЭлемента", П);
        ЭтотОбъект.Закрыть();
    Иначе
        ПоказатьОповещениеПользователя("Авторизация не пройдена");
    КонецЕсли
(4)

Спасибо огромное!
Можно только вопрос, что такое Ключ в данном случае?
---
что такое Ключ в данном случае? Если "Ключ" не пустой (в данном случае - Существующий Пользователь) - указание форме на то, что нужно не создавать новый элемент справочника, а открыть существующий. В ОФ аналог ЭтоНовый().
---
то есть "Ключ" будет как название для пользователя в структуре?
---
то есть "Ключ" будет как название для пользователя в структуре? Нет, если значение параметра "Ключ" заполнено, то это указание форме объекта не создавать новый объект, а открыть существующий. Или я не понял вопроса :)
---
```1c
    НужныйПользователь = Справочники.Пользователи.НАйтиПоКоду(IdNumber);
```
---
А, ну да. Только не имя пользователя, а ссылка на существующего.