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

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

Надпись выглядит как ссылка, но открывает не сайт: её обработчик сообщает только собственное количество.

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

Полный модуль собственной обычной формы. Только толстый клиент с обычными формами; экспортные обработчики получают первым параметром инициирующий Элемент. Конструктор Действие выбирает процедуру, но не отменяет параметры события.

Подготовка

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

  2. Добавьте реквизит УчебноеКоличество (Число 9.0), обычную кнопку УчебнаяКнопка и элемент Надпись с именем УчебнаяНадпись. Реквизиты рабочих объектов не используются.

  3. В событии ПриОткрытии формы укажите процедуру ПриОткрытии из полного модуля. Кнопка и надпись получают действия через УстановитьДействие; вручную обработчики их Нажатие не назначайте.

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

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

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

Процедура ПоказатьКоличествоКниг(Элемент) Экспорт
    Сообщить("Проверка только собственной формы: " + Строка(УчебноеКоличество));
КонецПроцедуры

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

  1. Гиперссылка Истина включает подчёркивание и событие Нажатие у надписи.

  2. Новый Действие явно связывает событие с экспортной процедурой ПоказатьКоличествоКниг(Элемент). Параметр передаёт инициирующую надпись; количество читается из своего реквизита формы.

  3. Текст похож на ссылку, но URL в нём нет и браузер не запускается.

  4. Кнопка увеличивает количество, нажатие надписи только сообщает его.

  5. Гиперссылка без привязанного обработчика не выполняет эту проверку автоматически.

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

  1. На открытии два Истина.

  2. Нажмите надпись: сообщение 3. Нажмите кнопку, затем надпись: сообщение 4.

  3. После изменения текста кнопкой привязка Нажатие остаётся той же локальной процедурой.

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

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

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

  1. Подчёркивание само по себе не является разрешением открыть произвольный URL.

  2. В рабочем интерфейсе проверяйте права и контекст действия отдельно.

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

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

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

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

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