С началом работы пользователей в веб-клиенте появилась нужда изменять пароль пользователя на текущем клиенте, но стандаратных средств нет. Собственно изменить пароль не так и сложно - сложнее идентифицировать пользователя перед выполнением операции. Расшифровывать текущий хеш пароля (sha завернутое в base64) или шифровать его (у меня не получилось) тоже будет не самым оптимальным решением по соотношению затраченное время/полученный результат.
Предлагаю свой вариант алгоритма изменения пароля.
// Если хеш подтверждения пароля совпадает со старым хешем тогда изменяем пароль
ПользовательИнформационнойБазы = ПользователиИнформационнойБазы.ТекущийПользователь();
ХешАвторизации = ПользовательИнформационнойБазы.СохраняемоеЗначениеПароля;
ПользовательИнформационнойБазы.Пароль = Пароль;
ПользовательИнформационнойБазы.Записать();
ХешНовогоПароля = ПользовательИнформационнойБазы.СохраняемоеЗначениеПароля;
Если ХешНовогоПароля = ХешАвторизации Тогда
ПользовательИнформационнойБазы.Пароль = НовыйПароль;
ПользовательИнформационнойБазы.Записать();
Иначе
ПользовательИнформационнойБазы.СохраняемоеЗначениеПароля = ХешАвторизации;
ПользовательИнформационнойБазы.Записать();
КонецЕсли;
Файлы обработки:
- Izmenenie_parolya_pod_tonkim_i_veb-klientom.epf Для скачивания нужна регистрация
В этой группе 1С
- Отключение активных сеансов пользователей в серверных базах данных 1С 8.2
- Редактирование набора прав в Универсальном конструкторе отчетов (Новейший отчет) для 1C 7.7
- Удаление ролей пользователей
- Настройка доступа к контрагентам для УТ упрощенная
- Обработка для копирования прав и настроек пользователей (8.1)
- Добавление пользователя в несколько информационных баз
- Шифратор и дешифратор текста и файлов для 1С
- Установка даты запрета изменения данных без монопольного режима