Имя: Пароль:
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
а....блин допер получается надо при помещении в хранилище воттак делать (Уникальный иднетификатор)

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

остался такой вопрос....все эти хранилища автоматом почистятся при закрытии формы или надо делать
УдалитьИзВременногоХранилища()
Независимо от того, куда вы едете — это в гору и против ветра!