Сделать картинку локальной учебной командой

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

Нажатие на гиперссылочную картинку считает только собственные нажатия. Это не переход по URL, не открытие документа и не отправка данных.

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

Полный модуль собственной обычной формы в учебной базе с общей картинкой УчебныйМаркер; толстый клиент.

Подготовка

  1. Нужна отдельная учебная конфигурация без рабочих данных. В Конфигураторе создайте Общие → Общие картинки → УчебныйМаркер. Не изменяйте общие картинки КА2/УНФ/УТ.

  2. В картинку УчебныйМаркер импортируйте собственный PNG owned-book-marker-32.png из подпапки lesson-assets рядом с этим руководством. Если файла нет, в каталоге руководства запустите C:\Python314\python.exe make-lesson-picture-fixture.py. Это включённая учебная отметка 32×32, не скачивание из интернета.

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

  4. Создайте отдельную внешнюю обработку с обычной формой, реквизитами УчебнаяПоказана (Булево) и УчебныеНажатия (Число 6.0). Добавьте поле картинки УчебноеИзображение, обычную кнопку УчебнаяКоманда вне картинки.

  5. ПриОткрытии свяжите с процедурой модуля. Другие действия вручную не назначайте: код использует Действие и экспортные процедуры с первым параметром Элемент. ПриОткрытии самой обычной формы остаётся без параметров. Запускайте толстым клиентом с обычными формами.

  6. Каждый урок — полный модуль отдельной копии. Картинка, переключатели и счётчик принадлежат только учебной форме в памяти.

Процедура ПриОткрытии()
    УчебнаяПоказана = Истина;
    УчебныеНажатия = 0;
    Картинка = ЭтаФорма.ЭлементыФормы.УчебноеИзображение;
    Картинка.Картинка = БиблиотекаКартинок.УчебныйМаркер;
    Картинка.Гиперссылка = Ложь;
    Картинка.РазрешитьНачалоПеретаскивания = Ложь;
    Картинка.РазрешитьПеретаскивание = Ложь;
    Кнопка = ЭтаФорма.ЭлементыФормы.УчебнаяКоманда;
    Кнопка.УстановитьДействие("Нажатие", Новый Действие("ВыполнитьУчебноеДействие"));
    Картинка.Гиперссылка = Истина;
    Картинка.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.F8, Ложь, Истина, Истина);
    Картинка.Подсказка = "Нажмите или используйте Ctrl+Shift+F8; внешняя кнопка сбрасывает счётчик";
    Картинка.УстановитьДействие("Нажатие", Новый Действие("УчебнаяКартинкаНажата"));

КонецПроцедуры

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

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

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

  1. Гиперссылка включает событие Нажатие, а не сетевой адрес. Действие связывает его с экспортной процедурой УчебнаяКартинкаНажата(Элемент); параметр передаёт само поле картинки обычной формы.

  2. СочетаниеКлавиш применимо только в режиме гиперссылки. F8 с Ctrl и Shift вызывает ту же команду.

  3. Обработчик увеличивает только УчебныеНажатия в памяти. Внешняя кнопка отдельно возвращает счётчик к нулю.

  4. Подсказка объясняет оба способа взаимодействия новичку.

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

  1. Два щелчка картинки дают 1, затем 2. Ctrl+Shift+F8 — следующее число, если сочетание не перехвачено системой.

  2. Внешняя кнопка выводит 0. Файлы и данные базы не изменились.

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

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

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

  1. Сочетание может быть занято ОС или клиентом: проверьте щелчок отдельно.

  2. Не добавляйте сюда URL или операции рабочей базы при первом учебном запуске.

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

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

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

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

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