Имя: Пароль:
1C
1С v8
УФ. Работа с картинками в табличной части....
0 Rustik666
 
08.11.12
12:53
Управляемые формы
Есть документ....в табличной части у него хранятся Фото...
В табличной части реквизит Хранилище значения....

Надо при позиционировании на этой строке в шапке показывать фото....

По кнопочке вызывается внешняя библиотека, которая возвращает дфоичные данные

На Сервере делаю
Картинка = Новый Картинка(ДвоичнДан);                    
РеквизитТЧ = ПоместитьВоВременноеХранилище(Картинка);

РеквизитТЧ - это реквизит табличной части на форме...

В Шапке ПолеКартинки связал с этим реквизитом

при этом в момент фотографирования он показывает фото в Шапка, но стоит перейти в другую строчку и потом вернуться в эту же....то уже не показывает.....

не пойму, что я не так делаю...
1 RomaH
 
naïve
08.11.12
12:59
в картинку картинку передать не получится
навигационную ссылку передавай
2 Rustik666
 
08.11.12
13:02
это как?....
но пока на строчке находишься, он же показывает картинку....
3 RomaH
 
naïve
08.11.12
13:09
да, туплю
4 RomaH
 
naïve
08.11.12
13:09
но стоит перейти в другую строчку и потом вернуться в эту же....то уже не показывает.....

обработчики показывай
5 Rustik666
 
08.11.12
13:13
обработчик чего....
я просто поле картинки в шапке в качестве данных указал
Элементы.ТЧ.ТекущиеДанные.РеквизитТЧ

там где и есть Адрес временного Хранилища картинки....
6 RomaH
 
naïve
08.11.12
13:20
тода совсем ничего не понимаю
скрин формы в конфигураторе
и обработчик тот который "на сервере"
7 Rustik666
 
08.11.12
13:29
вот скрин формы
http://zalil.ru/33939114

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

Заготовка.ПолучитьФото("Касса",ТД.ФотоПиплНаФорме,Объект.Номер,Объект.Дата);

Процедура ПолучитьФото(ЧтоСнимаем,КудаПомещаем,Номер,Дата) Экспорт
   Фото = Новый COMОбъект("AddIn.VesCOM");Error="";
   Снимок = Фото.GetFrame(ПортВидео,ТекстСнимка,АдресВидео,Error);
   ДвоичнДан = Base64Значение(Снимок);
   Картинка = Новый Картинка(ДвоичнДан);                    
   Если Снимок <> Неопределено Тогда
       КудаПомещаем = ПоместитьВоВременноеХранилище(Картинка,Новый УникальныйИдентификатор);
КонецЕсли;
8 RomaH
 
naïve
08.11.12
13:46
(7) и это еще и работает?
9 Rustik666
 
08.11.12
13:47
работало бы - не обращался :-)))...
но в первый момент фотку показывает, пока с этой строчки не уйдешь....
10 RomaH
 
naïve
08.11.12
13:48
ТД.ФотоПиплНаФорме - тип какой?
11 Rustik666
 
08.11.12
13:48
строка
12 RomaH
 
naïve
08.11.12
14:06
отвяжите фото от текущей строки
привяжите к реквизиту формы
а реквизит меняйте при смене текущей  - более прозрачно
13 Rustik666
 
08.11.12
14:16
о....спасибо....так вроде получилось.....но это пока на форме...


теперь, насколько я понимаю при записи надо все эти фотки из временных хранилищ достать и записать в ХранилищеЗначения... а потом ПРиСозданиии на сервере - обратно....

Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
СтрокаТЧ.ФотоПипл = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(Объект.ТЧ[НомерСтроки].ФотоПиплНаФорме),Новый СжатиеДанных(9));

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СтрокаТЧ.ФотоПиплНаФорме = ПоместитьВоВременноеХранилище(Объект.Ссылка.ТЧ[НомерСТроки].ФотоПипл.Получить());

но вот здесь тоже где-то ошибка....потому как не работает....
14 Rustik666
 
08.11.12
14:22
а....блин допер получается надо при помещении в хранилище воттак делать (Уникальный иднетификатор)

СтрокаТЧ.ФотоПиплНаФорме = ПоместитьВоВременноеХранилище(Объект.Ссылка.ТЧ[НомерСТроки].ФотоПипл.Получить(),Новый УникальныйИдентификатор);

остался такой вопрос....все эти хранилища автоматом почистятся при закрытии формы или надо делать
УдалитьИзВременногоХранилища()
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn