Изменить пароль черновика, не выдавая его за записанный

Учебные задачи

Создаём случайный учебный пароль в памяти, читаем признаки и показываем документированное отличие записываемой даты от локального снимка ДатаУстановкиПароля.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используйте отдельную учебную базу с именем конфигурации Учебная85. Работайте под учебным администратором, которому доступно чтение и создание описаний пользователей.

  2. Создайте серверный общий модуль УчебныеЗадачи. Фрагмент вставьте в тело своей экспортной процедуры и запустите учебной командой.

  3. СоздатьПользователя создаёт описание, не запись списка пользователей. В коде намеренно отсутствуют Записать и Удалить: права, пароли и аутентификация существующих людей не меняются.

  4. Не добавляйте Записать к этим черновикам: для реального создания учётной записи нужны отдельная проверка ролей, способов входа и действующих политик.

УчебноеИмя = "Черновик_" + Строка(Новый УникальныйИдентификатор);
Если ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) <> Неопределено Тогда
    ВызватьИсключение "Учебное имя уже занято: черновик не создаётся";
КонецЕсли;
Черновик = ПользователиИнформационнойБазы.СоздатьПользователя();
Черновик.Имя = УчебноеИмя;
Черновик.ПолноеИмя = "Учебный незаписанный пользователь";
Черновик.ПоказыватьВСпискеВыбора = Ложь;
Черновик.АутентификацияСтандартная = Ложь;
Черновик.АутентификацияОС = Ложь;
ПрежняяДата = Черновик.ДатаУстановкиПароля;
Черновик.Пароль = Строка(Новый УникальныйИдентификатор) + "_Aa8!";
Черновик.ЗаписываемаяДатаУстановкиПароля = Дата(2026, 10, 4, 12, 0, 0);
Черновик.ЗапрещеноИзменятьПароль = Истина;
Черновик.ЗапрещеноВосстанавливатьПароль = Истина;
Черновик.ИмяПолитикиПаролей = "";
Сообщить(Черновик.ДатаУстановкиПароля = ПрежняяДата);
Сообщить(Черновик.ЗапрещеноИзменятьПароль);
Сообщить(Черновик.ЗапрещеноВосстанавливатьПароль);
Сообщить(Черновик.ИмяПолитикиПаролей = "");
Сообщить("Признак ПарольУстановлен в локальном описании: " + Строка(Черновик.ПарольУстановлен));
Сообщить("Признак несоответствия требованиям: " + Строка(Черновик.ПарольНеСоответствуетТребованиям));
Сообщить("Алгоритм хранения в локальном описании: " + Строка(Черновик.ТипАлгоритмаХешированияПароля));
Сообщить("Длина хранимого представления в локальном описании: " + Строка(СтрДлина(Черновик.СохраняемоеЗначениеПароля)));
Сообщить(ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) = Неопределено);
Сообщить(Черновик.УникальныйИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"));

Разбор по шагам

  1. Пароль генерируется из собственного UUID и не выводится. Это только демонстрация setter, не инструкция по созданию парольной политики.

  2. ДатаУстановкиПароля — локальный снимок; по справке он не обновляется после установки Пароль или ЗаписываемаяДатаУстановкиПароля.

  3. ЗаписываемаяДата дана как учебное UTC-значение. Пользователь не записывается, поэтому ни пароль, ни дата фактически не применены.

  4. Пустое ИмяПолитикиПаролей означает применение параметров ИБ при реальной работе, а не отсутствие требований.

  5. Остальные признаки выводятся диагностически из локального описания. Читаем только длину хранимого представления, не его содержимое.

Как проверить результат

  1. Четыре проверки Истина; значение локального снимка даты осталось прежним.

  2. Пароль и его хранимое представление не должны появиться в сообщениях.

  3. Две последние проверки Истина: имя не появилось в списке, UUID черновика остался нулевым.

Ожидаемый результат

Показаны setter пароля, ограничения пользователя и границы локального снимка без изменения учётной записи.

На что обратить внимание

  1. Не устанавливайте одному пользователю одновременно Пароль и СохраняемоеЗначениеПароля: по справке первое имеет приоритет.

  2. Диагностические признаки черновика не заменяют повторное получение записанного пользователя и проверку входа.

  3. Случайный пароль этого упражнения не сохранён и не нужен для входа.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.