Показать и скрыть учебную строку в поле пароля без вывода секрета

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

Используем только известную строку demo-123. Переключаем отображение звёздочками и объясняем, что режим поля не шифрует хранимое значение.

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

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. Создайте отдельную учебную внешнюю обработку с пустой управляемой основной формой. Каждую задачу запускайте в своей копии формы.

  2. Не добавляйте вручную реквизит ЗначениеПримера, поле ПолеПримера и команду УчебноеДействие: их создаст код.

  3. В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Вставьте весь модуль, включая клиентские и серверные процедуры.

  4. Сохраните учебную EPF и откройте через Файл → Открыть в тонком или толстом клиенте Windows. Рабочие данные не читаются и не записываются.

  5. Не вводите настоящий пароль, токен или ключ API. Для урока всегда используйте demo-123.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Новые = Новый Массив;
    ТипРеквизита = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(64));
    Новые.Добавить(Новый РеквизитФормы("ЗначениеПримера", ТипРеквизита));
    ЭтаФорма.ИзменитьРеквизиты(Новые);
    ЭтаФорма.ЗначениеПримера = "demo-123";
    Поле = Элементы.Добавить("ПолеПримера", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеВвода;
    Поле.ПутьКДанным = "ЗначениеПримера";
    Поле.Заголовок = "Только учебная строка";
    Поле.РежимПароля = Истина;
    Поле.КнопкаОчистки = Истина;
    Поле.Ширина = 24;

    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Показать / скрыть учебную строку";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры

&НаКлиенте
Процедура УчебноеДействие(Команда)
    Поле = Элементы.ПолеПримера;
    Поле.РежимПароля = Не Поле.РежимПароля;
    Если Поле.РежимПароля Тогда
        Сообщить("Включено скрытое отображение. Значение не выведено в сообщения.");
    Иначе
        Сообщить("Показана только строка demo-123. Не вводите настоящий пароль в этот урок.");
    КонецЕсли;
КонецПроцедуры

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

  1. Строковый реквизит получает заранее известное демонстрационное значение.

  2. РежимПароля Истина меняет отображение на звёздочки, не значение реквизита.

  3. Команда переключает тот же режим поля. ЗначениеПримера не передаётся в Сообщить, журнал или файл.

  4. КнопкаОчистки позволяет удалить строку из собственной формы.

  5. Для реальной аутентификации нужны согласованные механизмы хранения, передачи и защиты секретов; поле ввода их не предоставляет.

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

  1. При открытии строка скрыта; кнопка показывает demo-123 и следующим нажатием снова скрывает.

  2. В сообщениях нет содержимого реквизита, только пояснение режима.

  3. После очистки строка пустая и не восстанавливается автоматически при переключении видимости.

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

Поведение поля пароля показано безопасно на известной учебной строке с явной границей между отображением и защитой данных.

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

  1. РежимПароля не обеспечивает шифрование, безопасное хранение или защищённый сетевой канал.

  2. Скрытое поле может присутствовать в памяти, отладчике или снимке экрана после раскрытия.

  3. Изменение свойства на клиенте может потребовать обращения к серверу; это не серверный вызов проверки пароля.

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

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

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

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

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