Имя: Пароль:
1C
1С v8
Вывод картинки на УФ
,
0 vladimir80
 
28.03.17
18:32
Всем привет. Недавно начал работать с УФ, возможно вопрос глупый, но гугл подробно не рассказывает о решении...

Конфигурация УНФ 1,6. Расширение, форма списка справочника номенклатура. Хочу при активизации строки отображать основное изображение номенклатуры. На форме добавляю два реквизита - КартинкаХранилище - тип справочникссылка номенклатура
КартинкаРеквизит - строка


Код:
&НаКлиенте
Процедура Интерфейс_СписокЗапасыПриАктивизацииСтрокиПосле(Элемент)    
        Если КартинкаХранилище <> Элемент.ТекущиеДанные.Номенклатура Тогда
        КартинкаХранилище = Элемент.ТекущиеДанные.Номенклатура;
        ПодключитьОбработчикОжидания("ОбработчикНаКлиенте", 0.1, Истина);
        КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ОбработчикНаКлиенте()
          СписокПриАктивизацииСтрокиНаСервере();
КонецПроцедуры

&НаСервере
Процедура СписокПриАктивизацииСтрокиНаСервере()    
КартинкаПерем = КартинкаХранилище.ФайлКартинки;
КартинкаРеквизит = ПолучитьНавигационнуюСсылку(КартинкаПерем, "ФайлХранилище");
КонецПроцедуры

Все отрабатывает, картинка не отображается... ЧЯДНТ?
1 vladimir80
 
28.03.17
18:32
Ну и поле картинки на форме с данными из картинкареквизит
2 Fragster
 
гуру
28.03.17
18:34
картинка должна быть типа строка, и туда надо класть адрес временного хранилища на сервере. а во временное хранилище уже помещать картинку
3 Fragster
 
гуру
28.03.17
18:34
картинкареквизит должна быть....
4 vladimir80
 
28.03.17
18:39
(3) Так она и есть строка

&НаСервере
Процедура СписокПриАктивизацииСтрокиНаСервере()    
КартинкаПерем = КартинкаХранилище.ФайлКартинки;
//КартинкаРеквизит = ПолучитьНавигационнуюСсылку(КартинкаПерем, "ФайлХранилище");
КартинкаРеквизит = ПоместитьВоВременноеХранилище(КартинкаПерем.ФайлХранилище.Получить(), Новый УникальныйИдентификатор);
КонецПроцедуры


Те же яйца, только в профиль...
5 vladimir80
 
28.03.17
18:43
Честно просто не понимаю... ссылка возвращается, непустая, но картинки нет... В нижеприведенном примере картинка появляется в виде серого креста

&НаСервере
Процедура СписокПриАктивизацииСтрокиНаСервере()    
КартинкаПерем = КартинкаХранилище.ФайлКартинки;
//КартинкаРеквизит = ПолучитьНавигационнуюСсылку(КартинкаПерем, "ФайлХранилище");
КартинкаРеквизит = ПоместитьВоВременноеХранилище(Новый Картинка(КартинкаПерем.ФайлХранилище.Получить()), Новый УникальныйИдентификатор);
КонецПроцедуры
6 vladimir80
 
28.03.17
18:58
На всякий случай:
http://savepic.su/7645346.png
7 vladimir80
 
28.03.17
20:11
&НаСервере
Процедура СписокПриАктивизацииСтрокиНаСервере()    
КартинкаПерем = КартинкаХранилище.ФайлКартинки;

Если КартинкаПерем <> Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка() Тогда
КартинкаРеквизит = ПрисоединенныеФайлы.ПолучитьДанныеФайла(КартинкаПерем , ЭтаФорма).СсылкаНаДвоичныеДанныеФайла;
Иначе
КартинкаРеквизит = ПоместитьВоВременноеХранилище(Новый Картинка, УникальныйИдентификатор);
КонецЕсли;

КонецПроцедуры
8 vladimir80
 
28.03.17
20:11
Как всегда. Понятно и доступно. Всем спасибо :)
9 vladimir80
 
28.03.17
21:02
То есть, в УНФ (скорее всего и в УТ 11), при хранении файла в инф.базе он хранится не в реквизите ФайлХранилище справочника НоменклатураПрисоединенныеФайлы, а в РС ПрисоединенныеФайлы... Как по мне бред какой-то.
10 Мимохожий Однако
 
28.03.17
21:08
(9) С регистром работать легче, чем со справочником. Меньше последствий
11 vladimir80
 
28.03.17
21:17
(10) В "умелых" руках последствий как раз больше при работе с регистром... Холиварный вопрос, но сам пару раз при записи в регистр чистил его :)

Сейчас все же прочел, реквизит справочника ФайлХранилище имеет следующий коммент:

Служебное поле для обмена файлами в РИБ

Вот уж где РС использовать, так в обменах с РИБ =)
2 + 2 = 3.9999999999999999999999999999999...