Скрывать только поясняющую надпись

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

Видимость надписи не влияет на поле названия и значение реквизита.

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

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

Подготовка

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

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

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

  4. Откройте сохранённую учебную EPF в настольном тонком/толстом или веб-клиенте. Данные принадлежат только этой форме; справочники, документы и регистры не используются.

  5. Внешняя кнопка находится вне учебной группы и остаётся доступной для обратного переключения. Код не обходит ограничения на внешние обработки.

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

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

&НаКлиенте
Процедура УчебноеДействие(Команда)
    Надпись = Элементы.УчебнаяНадпись;
    Надпись.Видимость = Не Надпись.Видимость;
    Сообщить("Значение осталось: " + ЭтаФорма.УчебноеНазвание);
КонецПроцедуры

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

  1. Создаём надпись и поле как разные дочерние элементы одной группы.

  2. Внешняя кнопка меняет только Видимость декорации.

  3. УчебноеНазвание читается независимо от скрытого пояснения.

  4. Повторное нажатие возвращает тот же элемент, не создавая дубликата.

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

  1. Надпись скрывается/появляется, поле Название остаётся видимым.

  2. Введите Ручка, переключите надпись: значение остаётся Ручка, не восстанавливается исходная Книга.

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

Показано локальное скрытие отдельного элемента без потери данных.

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

  1. Скрытие не является защитой значения от чтения.

  2. Не путайте видимость родительской группы и отдельного ребёнка.

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

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

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

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

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