Главная страница
Навигация по странице:

  • Тема

  • Время выполнения задания

  • Ход выполнения задания

  • Программная работа на управляемой форме с изображением


    Скачать 0.91 Mb.
    НазваниеПрограммная работа на управляемой форме с изображением
    Дата29.03.2022
    Размер0.91 Mb.
    Формат файлаdocx
    Имя файлаDen_8 (1).docx
    ТипДокументы
    #423956

    Инструкционно-технологическая карта №8

    ЗАНЯТИЯ УЧЕБНОЙ ПРАКТИКИ

    ПМ.02  Участие в разработке информационных систем

    09.02.04 Информационные системы (по отраслям)

    Тема: программная работа на управляемой форме с изображением

    Цель: Научиться загружать изображения на форму, хранить в базе и выводить их при открытии формы.

    Время выполнения задания 6 часов

    Задание.

    В условной базе имеется справочник Номенклатура,  заказчик хочет, чтобы к каждой номенклатуре можно было привязать картинку этой номенклатуры. 

    Ход выполнения задания

    1. У справочника Номенклатура создайте реквизит  Картинка с типом ХранилищеЗначений.



    В учебной задаче хранение картинки будет организованно непосредственно в справочнике Номенклатура, в реальных же задачах для хранения картинок и других бинарных файлов необходимо создавать или подчиненный справочник, или регистр сведений.

    Сделайте управляемую форму элемента справочника, на которой реализуйте следующий функционал: на форме будет размещено поле с картинкой, если картинка не хранится в справочнике, то оно будет пустое, а иначе при открытии формы  в 1С необходимо будет получить картинку из базы автоматически, т.е. на форме нужно организовать вывод картинки.  Пользователь может загрузить в 1С файл картинки, для этого он должен кликнуть на поле картинки, после этого будет открыта форма выбора файла формата jpg, а после выбора нужного файла, картинка появится на форме. При сохранении элемента, картинка должна будет записаться в базу.

    Создайте управляемую форму элемента справочника, у этой формы создайте реквизит СсылкаНаКартинку с типом Строка.



    Поместите этот реквизит на форму в виде поля, а вид у данного поля установите «Поле картинки».



    Сделайте так, чтобы была возможность загружать картинку по клику мышки на это поле, для этого установите в свойство поле Гиперссылка.



    Создайте клиентский обработчик для события Нажатие этого поля.



    В этом обработчике напишите код, который будет вызывать диалог открытия файла с расширением jpg.



    Опишите процедуру ПослеЗагрузкиФайла, которую указали в описании оповещения, в этой процедуре, если пользователь выбрал файл, вы будете помещать его во временное хранилище при помощи метода НачатьПомещениеФайла.



    Следующим шагом, необходимо в процедуре ПослеПомещенияФайла, которая указана в описании оповещения процедуры ПослеЗагрузкиФайла, присвоить реквизиту формы «СсылкаНаКартинку» адрес временного хранилища.



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

    Для того, чтобы картинка хранилась в базе, необходимо сохранить картинку в реквизит объекта, делать это будем в событии формы ПередЗаписьюНаСервере. Создадим это событие.



    В обработчике события проверьте, что реквизит формы СсылкаНаКартинку является адресом временного хранилища, и если это так, то получим файл картинки из временного хранилища и запишем его в реквизит Картинка нашего объекта. В конце удалите картинку из временного хранилища, а поскольку у вас реквизиту формы присвоен адрес во временном хранилище, то нужно получить адрес с реквизита объекта, чтобы картинка никуда не исчезла после сохранения.



    И последнее: нужно сделать так, чтобы при открытии формы, картинка появлялась на форме, если она есть в базе (в хранилище).

    Для этого, создайте обработчик для события ПриСозданииНаСервере формы.



    И в этом обработчике будем получать навигационную ссылку на картинку.



     Задача выполнена. Теперь можете загружать картинку на форму с помощью диалога открытия файлов, сохранять картинку в базу, и выводить картинку на форму при открытии, если она имеется в базе



    написать администратору сайта