Имя: Пароль:
1C
1С v8
Программное отображение картинки
,
0 zippygrill
 
23.11.17
16:13
И снова здравствуйте!
Какой тип должен быть у программно созданного элемента формы чтобы оно понимало Новый Картина(из ДвоичныхДанных)?
Сейчас у меня стоит тип - ДекорацияФормы. Если я указываю ПолеФормы.Картинка = БиблиотекаКартинок.Руководитель - то все норм - картина отображается.
Если же указываю для ПолеФормы.Картина - Новый Картинка(ПолучитьИзВременногоХранилища... - то получаю ошибку "Недопустимое значение".

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


        ПолеФормы = ЭтаФорма.Элементы.Добавить("Поле_Фото_" + Формат(инд, "ЧГ=0"), Тип("ДекорацияФормы"), ГруппаФормы);
        ПолеФормы.Вид = ВидДекорацииФормы.Картинка;
        //Если ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.ФайлСсылка) Тогда
        //    Картинка = Новый Картинка(ПолучитьИзВременногоХранилища(ПрисоединенныеФайлы.ПолучитьДанныеФайла(ВыборкаДетальныеЗаписи.ФайлСсылка).СсылкаНаДвоичныеДанныеФайла));
        //    ПолеФормы.Картинка = Картинка;                    
        //Иначе
        //    Попытка
                ПолеФормы.Картинка = БиблиотекаКартинок.Руководитель;
            //Исключение
            //    ВызватьИсключение;    
            //КонецПопытки;
            
        //КонецЕсли;
1 Fragster
 
гуру
23.11.17
16:22
чтобы "понимало Новый Картина(из ДвоичныхДанных)" никакой.
а вообще - реквизит типа строка(неогр.), в неё суешь адрес, по которому поместил свою картинку во временное хралилище. ну а на форму добавляешь этот реквизит с типом "поле картинки"
2 zippygrill
 
23.11.17
16:49
ПолеФормы = ЭтаФорма.Элементы.Добавить("Поле_Фото_" + Формат(инд, "ЧГ=0"), Тип("Строка"), ГруппаФормы);
3 zippygrill
 
23.11.17
17:02
Выше у меня идет программное добавление реквизита

        Реквизит_Фото = Новый РеквизитФормы("Реквизит_Фото" + Строка(инд)
                                        ,Новый ОписаниеТипов("Строка")
                                        ,
                                        ,"Фото");

......

и потому уже элементы формы
4 Fragster
 
гуру
23.11.17
17:05
вторым параметром не тип значения а тип элемента, например Тип("ПолеКартинки")
5 Fragster
 
гуру
23.11.17
17:05
(4)->(2)
6 Fragster
 
гуру
23.11.17
17:07
вообще хорошее задание для проверки компетенции человека в УФ - сделать форму элемента справочника с ТЧ с ХЗ, в которых должны быть картинки с добавлением драг дромпом, и чтобы в клиентсервере работало
7 Fragster
 
гуру
23.11.17
17:07
а на форме как поля картинок отображались
8 zippygrill
 
23.11.17
17:11
(4) Говорит тип не определен
(6) ну это извращение..
9 zippygrill
 
23.11.17
17:12
(6) Если кандидат не понравился и цель уже завалить собеседование то конечно можно иметь под рукой такую задачку))
10 Numerus Mikhail
 
23.11.17
17:51
(6) а еще заставить писать этот код на листочке
11 zippygrill
 
24.11.17
08:47
Апну Тип("ПолеКартинки") - говорит тип неопределен
12 zippygrill
 
24.11.17
16:06
Вот так короче надо

            АдресФотографии = КадровыйУчетРасширенный.АдресФотографииФизическогоЛица(ВыборкаДетальныеЗаписи.Значение);

                ЭтаФорма[Реквизит_Фото.Имя] = АдресФотографии;
                ПолеФормы = ЭтаФорма.Элементы.Добавить("Поле_Фото_" + Формат(инд, "ЧГ=0"), Тип("ПолеФормы"), ГруппаФормы);
                ПолеФормы.Вид = ВидПоляФормы.ПолеКартинки;
                ПолеФормы.ПутьКДанным = Реквизит_Фото.Имя;
13 zippygrill
 
24.11.17
16:10
У поле с картинкой стоит свойство "Гиперссылка". Также определил

        ПолеФормы.УстановитьДействие("Нажатие", "Подключаемый_ПриНажатиеНаГиперссылку_Фото_ФИО");

Но при нажатии на фото - выскакивает адрес временного хранилища + действие которое описано в процедуре "Подключаемый_..."
Как избавиться от вывода адреса временного хранилища на экране?

Где-то должна быть переменная СтандартнаяОбработка..
14 zippygrill
 
24.11.17
17:04
Короче второй параметр у процедуры "Подключаемый_ПриНажатиеНаГиперссылку_Фото_ФИО"
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.