Имя: Пароль:
1C
1С v8
Основное изображение
0 asder117
 
23.10.13
15:49
Уважаемые доброго времени суток. Работаю с конфигурацией бит Аренда, написанной на базе 1с бух 2.0. Делаю документ для медицинских анализов. Как мне сделать так чтобы после выбора изображения оно показалось на форме. в Регистр бит_Хранилище дополнительной информации пишется спокойно но на форме не появляется
код:
бит_хран:
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ
//

// Процедура итображает картинку, которая в данный момент находится в хранилище
// Параметры
//  Нет
// Возвращаемые значения
//  Нет
Процедура ОтображениеИзображения()

    Если Хранилище.Получить() = Неопределено Тогда
        ЭлементыФормы.ПолеИзображения.Картинка = Новый Картинка();
        Возврат;
    КонецЕсли;

    Если ВидДанных = Перечисления.бит_ВидыДополнительнойИнформацииОбъектов.Изображение Тогда
        ЭлементыФормы.ПолеИзображения.Картинка = Хранилище.Получить();
    Иначе
        ЭлементыФормы.ПолеИзображения.Картинка = Новый Картинка();
    КонецЕсли;
    
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ
//

// Процедура - вызывается при открытии формы
Процедура ПриОткрытии()

    Если Объект = Неопределено ИЛИ Объект.Пустая() Тогда
        ТекущийЭлемент = ЭлементыФормы.Объект;
    Иначе
        ТекущийЭлемент = ЭлементыФормы.Наименование;
    КонецЕсли;
    
    ОтображениеИзображения();

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

// Процедура - вызывается перед записью элемента
Процедура ПередЗаписью(Отказ)

    Если ВидДанных = Перечисления.бит_ВидыДополнительнойИнформацииОбъектов.Изображение Тогда
        Если Хранилище.Получить() = Неопределено
         ИЛИ Хранилище.Получить().Вид = ВидКартинки.Пустая Тогда
            Предупреждение("Выберите изображение.");
            Отказ = Истина;
            Возврат;
        КонецЕсли;
    КонецЕсли;

    Если Объект = Неопределено ИЛИ Объект.Пустая() Тогда
        Предупреждение("Укажите владельца изображения.");
        Отказ = Истина;
        Возврат;
    КонецЕсли;

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

// Процедура - вызывается после записи элемента
Процедура ПослеЗаписи()

    Если ЭтаФорма.РежимВыбора Тогда
        ОповеститьОВыборе(Ссылка);
    КонецЕсли;

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

// Процедура - вызывается перед открытием формы
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    
    // бит_DMarkin добавление кода. Начало:
    // вызов системы лицензирования
    бит_ЗакрытыйСлужебныйСервер.ПроверитьВозможностьРаботы(,"Справочник.бит_ХранилищеДополнительнойИнформации",Отказ);
    // бит_DMarkin добавление кода конец
    
    ЭлементыФормы.НадписьОбъекта.Значение = ?(Объект = Неопределено, "Объект: ", Объект.Метаданные().Синоним + ":");
    
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ ДЕЙСТВИЙ КОМАНДНЫХ ПАНЕЛЕЙ ФОРМЫ
//

// Процедура изменяет текущее изображение на выбираемое из диалога выбора файлов
// Параметры
//  Кнопка - кнопка формы
// Возвращаемые значения
//  Нет
Процедура ДействияФормыИзменитьИзображение(Кнопка)

    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогОткрытияФайла.ПредварительныйПросмотр = Истина;
    ДиалогОткрытияФайла.Заголовок = "Выберите файл с фотографией";
    ДиалогОткрытияФайла.ПолноеИмяФайла = "";
    ДиалогОткрытияФайла.Фильтр =
        "Все картинки (*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf)|*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf|"
        + "Все файлы (*.*)|*.*|"
        + "Формат bmp (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|"
        + "Формат JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|"
        + "Формат TIFF (*.tif)|*.tif|"
        + "Формат GIF (*.gif)|*.gif|"
        + "Формат PNG (*.png)|*.png|"
        + "Формат icon (*.ico)|*.ico|"
        + "Формат метафайл (*.wmf;*.emf)|*.wmf;*.emf|"; // картинки

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

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

// Процедура сохраняет текущее изображение в файл на диск
// Параметры
//  Кнопка - кнопка формы
// Возвращаемые значения
//  Нет
Процедура ДействияФормыСохранитьИзображение(Кнопка)

    ЗаписываемаяКартинка = ЭлементыФормы.ПолеИзображения.Картинка;
    Если ЗаписываемаяКартинка.Вид <> ВидКартинки.Пустая Тогда

        ДиалогЗаписиФайла                             = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
        ДиалогЗаписиФайла.Заголовок                   = "Укажите имя файла";
        ДиалогЗаписиФайла.ПолноеИмяФайла              = "";
        ДиалогЗаписиФайла.Фильтр                      = ЗаписываемаяКартинка.ФильтрИменФайлов(); // картинки
        ДиалогЗаписиФайла.ПроверятьСуществованиеФайла = Истина;

        Если Не ДиалогЗаписиФайла.Выбрать() Тогда
            Возврат;
        КонецЕсли;

        Попытка
            ЗаписываемаяКартинка.Записать(ДиалогЗаписиФайла.ПолноеИмяФайла);
        Исключение
            Предупреждение("Ошибка при записи файла: " + ДиалогЗаписиФайла.ПолноеИмяФайла + Символы.ПС
                          + ОписаниеОшибки() + Символы.ПС + "Файл не записан.");
        КонецПопытки;

    КонецЕсли;

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

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


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

Процедура ПриОткрытии()
    
    //~~~~~~~~~ЖАВ 16.05.2013~~~~~~~~~//
    Если не ПустаяСтрока(ЭтаФорма.ОсновноеИзображение)
         и
         ПустаяСтрока(мТекущееОсновноеИзображение)
        тогда
        мТекущееОсновноеИзображение = Справочники.бит_ХранилищеДополнительнойИнформации.НайтиПоНаименованию(ЭтаФорма.ОсновноеИзображение.Наименование).Хранилище.Получить();
        ЭтаФорма.ЭлементыФормы.ОсновноеИзображение.Картинка = мТекущееОсновноеИзображение;
    КонецЕсли;
    //_________ЖАВ 16.05.2013_________//
            
    
КонецПроцедуры

Заранее благодарен