Здравствуйте!

Самописная конфигурация, платформа 8.3.11

У менеджеров в АРМ есть закладка Оклад, в которой они будут видеть свои доходы за текущий и прошлые месяцы.
Есть задача при переходе в эту закладку повторно авторизовывать пользователя, что бы он явным образов ввел логин и пароль.

Возможно ли вывести пользователю окно авторизации 1С, как при входе в систему? И получить в процедуру открытия закладки результат этой авторизации?

Спасибо!
---
Если авторизация не будет пройдена то просто не открывать закладку с Окладом. Это хуже. В том плане - сложнее в реализации.

Если допустить вариант с блокировкой работы пользователя, то можно использовать встроенную функцию ЗаблокироватьРаботуПользователя - тогда выскочит родное окно авторизации 1С.

например через ПоказатьВводСтроки), что бы пароли входа в программу и пароль доступа к закладке были одинаковы Тогда можно попробовать разные варианты. Например, считывать введенный пароль, вычислять его хэш по тем же правилам, как это делает 1С и сравнивать с хэшем, прочитанным функцией ПользовательИнформационнойБазы.СохраняемоеЗначениеПароля - если совпадет, то позволяем перейти на закладку.

Но захотите ли возиться с шифрованием - не знаю. Вот тут предложен остроумный способ обхода необходимости возиться с вычислением хэша, последнее сообщение: http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=624865&threadtype=0&print=1
---
Возможно ли вывести пользователю окно авторизации 1С, как при входе в систему? И получить в процедуру открытия закладки результат этой авторизации? А если авторизация не будет пройдена? Выкидывать из программы? Или возвращать на ту закладку, где пользователь был до перехода?

В первом случае теоретически можно завершать работу 1С с повторным ее запуском и, в случае успешной авторизации, программного перехода на нужную закладку.

Только мутно все это, ИМХО, гораздо проще эмулировать окно авторизации, со вводом логина и пароля, тогда не придется ничего мудрить.

Плюсом, возможно, будет то, что пароли на вход и на доступ к "секретной" закладке могут быть разными.
---
я вижу тут только 2 варианта:
- блокировка;
- перезапуск 1С.

Остальное это уже не родное.
---
Спасибо! Этот вариант я тоже попробую если с хешем не получится.
---
зачем придумывать велосипед?
В БСП есть нормальный механизм:

```1c
    ВременныйПользовательИБ = ПользователиИнформационнойБазы.СоздатьПользователя();
    ВременныйПользовательИБ.АутентификацияСтандартная = Ложь;
    ВременныйПользовательИБ.Пароль = Пароль;

    ВременныйПользовательИБ.Имя = НСтр("ru = 'Временный пользователь'")
    + " (" + Строка(Новый УникальныйИдентификатор) + ")";

    ВременныйПользовательИБ.Записать();

    ВременныйПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(
    ВременныйПользовательИБ.УникальныйИдентификатор);

    СохраняемоеЗначениеПароля = ВременныйПользовательИБ.СохраняемоеЗначениеПароля;

    ВременныйПользовательИБ.Удалить();

    ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(ИдентификаторПользователяИБ);

    Если ТипЗнч(ПользовательИБ) = Тип("ПользовательИнформационнойБазы") Тогда
    Совпадает = (СохраняемоеЗначениеПароля = ПользовательИБ.СохраняемоеЗначениеПароля);
    КонецЕсли;
```
---
Если авторизация не будет пройдена то просто не открывать закладку с Окладом. Но это уже детали.

Мне бы как раз хотелось выводить именно родное окно авторизации 1С (пусть не родное, а например через ПоказатьВводСтроки), что бы пароли входа в программу и пароль доступа к закладке были одинаковы. Проблемы то сделать второй пароль и окно его ввода нет, но пользователям это будет неудобно.
---
Если авторизация не будет пройдена то просто не открывать закладку с Окладом. Это хуже. В том плане - сложнее в реализации.

Если допустить вариант с блокировкой работы пользователя, то можно использовать встроенную функцию ЗаблокироватьРаботуПользователя - тогда выскочит родное окно авторизации 1С.

например через ПоказатьВводСтроки), что бы пароли входа в программу и пароль доступа к закладке были одинаковы Тогда можно попробовать разные варианты. Например, считывать введенный пароль, вычислять его хэш по тем же правилам, как это делает 1С и сравнивать с хэшем, прочитанным функцией ПользовательИнформационнойБазы.СохраняемоеЗначениеПароля - если совпадет, то позволяем перейти на закладку.

Но захотите ли возиться с шифрованием - не знаю. Вот тут предложен остроумный способ обхода необходимости возиться с вычислением хэша, последнее сообщение: http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=624865&threadtype=0&print=1
---
Например, считывать введенный пароль, вычислять его хэш по тем же правилам, как это делает 1С и сравнивать с хэшем, прочитанным функцией ПользовательИнформационнойБазы.СохраняемоеЗначениеПароля

Спасибо, скорее всего это решение. Я почему то думал, что СохраняемоеЗначениеПароля доступно только для записи.

А есть ли примеры того, как 1С считает хеш паролей? Хотя по ссылке очень интересная мысль, думаю все получится. По результату отпишусь.
---
А есть ли примеры того, как 1С считает хеш паролей? Их не может не быть:
https://infostart.ru/public/99739/
https://infostart.ru/public/284214/

И в дополнение:
http://www.forum.mista.ru/topic.php?id=719498

(8) Это как раз реализация несколько модифицированного способа из ссылки в (4).
---
Это как раз реализация несколько модифицированного способа из ссылки в (4).
Это как раз принципиально другой подход. Не нужно самому вычислять хеш. Все делается стандартными механизмами 1С.
---
Это как раз принципиально другой подход. А вы прочтите последнее сообщение в http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=624865&threadtype=0&print=1

Единственное отличие - там предложено один раз создать служебного пользователя, под которым нельзя авторизоваться и которому постоянно перезаписывается пароль для получения хэша, а в вашем коде каждый раз временный пользователь создается программно.
---
по ссылке да, похоже. Но эту ссылку вы уже после добавили. Ее не было вначале.
---
Но эту ссылку вы уже после добавили. Ее не было вначале. Сообщение (4) создано в 21:42, редактирование допускается в течение 30 минут, т.е не позже 22:12. Вы свой способ предложили в 23:04 - я мог в это время что-то добавить?

Честно признаюсь: я ничего не менял ни в одном сообщении в этой ветке.

Хотя вряд ли вас это убедит, бдительный вы наш...