Снять и вернуть библиотечную картинку обычной формы

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

У поля есть своя библиотечная картинка. Кнопка поочерёдно заменяет её допустимой пустой картинкой и восстанавливает ресурс.

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

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

Подготовка

  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;
    Картинка = ЭтаФорма.ЭлементыФормы.УчебноеИзображение;
    Картинка.Картинка = БиблиотекаКартинок.УчебныйМаркер;
    Картинка.Гиперссылка = Ложь;
    Картинка.РазрешитьНачалоПеретаскивания = Ложь;
    Картинка.РазрешитьПеретаскивание = Ложь;
    Кнопка = ЭтаФорма.ЭлементыФормы.УчебнаяКоманда;
    Кнопка.УстановитьДействие("Нажатие", Новый Действие("ВыполнитьУчебноеДействие"));
    Картинка.ТекстНевыбраннойКартинки = "Своё изображение временно скрыто";
    Картинка.Подсказка = "Учебная отметка, не файл рабочего товара";

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

Процедура ВыполнитьУчебноеДействие(Элемент) Экспорт
    Картинка = ЭтаФорма.ЭлементыФормы.УчебноеИзображение;
    УчебнаяПоказана = НЕ УчебнаяПоказана;
    Если УчебнаяПоказана Тогда
        Картинка.Картинка = БиблиотекаКартинок.УчебныйМаркер;
        Сообщить(Картинка.Картинка.Ширина() = 32 И Картинка.Картинка.Высота() = 32);
    Иначе
        Картинка.Картинка = Новый Картинка;
        Сообщить("Картинка снята, ожидается текст пустого поля");
    КонецЕсли;
    Сообщить(УчебныеНажатия = 0);
КонецПроцедуры

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

  1. Ресурс сначала импортирован в собственную общую картинку. БиблиотекаКартинок не создаёт его по одному имени автоматически.

  2. Обычное поле картинки программно допускает Пустая и ИзБиблиотеки. Обе ветки используют эти допустимые виды.

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

  4. Размеры проверяются только в ветке непустой картинки. Счётчик нажатий в этом уроке не изменяется.

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

  1. Первое нажатие: сообщение о снятии и Истина. Второе: два Истина, картинка снова 32×32.

  2. Чередование можно повторять; содержимое библиотеки не меняется.

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

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

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

  1. Без импорта общей картинки пример не готов к запуску; эту подготовку нельзя пропускать.

  2. Это не удаление PNG или общей картинки конфигурации.

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

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

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

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

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