Имя: Пароль:
1C
1С v8
Добавить изображение на форму элемента справочника УФ 8.2
0 Kaban
 
11.06.13
14:59
Посмотрел, как сделано в типовых, везде через дополнительный справочник, допустим "НоменклатураПрисоединенныеФайлы" и т.д.
Нельзя ли проще?
К примеру добавить реквизит справочника, тип ХранилищеЗначения, в него сохранять изображение, а в поле формы (Строка), получать его навигационную ссылку и показывать картинку?
1 Kaban
 
11.06.13
15:00
Кто-нибудь делал подобное?
2 Рыцарь
 
11.06.13
15:05
Можно так, проблем нет
3 Kaban
 
11.06.13
15:07
Столкнулся с тем, что получая изображение он отказывается записывать его в реквизит
4 Kaban
 
11.06.13
15:09
МояКартинка = Новый ДвоичныеДанные(ДиалогОткрытияФайла.ПолноеИмяФайла);
   ХранилищеКартинки = Новый ХранилищеЗначения(МояКартинка);
   Объект.ОсновноеИзображение = ХранилищеКартинки;


Поле объекта не обнаружено((
у ОсновногоИзображения тип ХранилищеЗначения
5 Mitriy
 
11.06.13
15:10
делай справочник для хранилища картинок, а в номенклатуру вставляй ссылку на него...
6 Mitriy
 
11.06.13
15:12
(4) нету в форме представления хранилища... не фиг ему там делать...
7 Kaban
 
11.06.13
15:16
(5) это и так было понятно)))
единственный способ?))
8 RomaH
 
naïve
11.06.13
15:19
перед записью на сервере в параметр обработки
9 Рыцарь
 
11.06.13
15:25
При получении изображения помещай во временное хранилище, а перед записью на сервере помещай в реквизит.
10 Kaban
 
11.06.13
15:40
(9) Так а какая разница? Откуда реквизит появится перед записью на сервере?
11 Рыцарь
 
11.06.13
15:45
(10)Реквизит справочника будет везде. Адрес хранилища будет перед записью на сервере на форме, если создать соответствующий реквизит на форме строковый. Картинку можно отображать, если указать у элемента формы путь к данным к реквизиту формы с видом Поле Картинки.
12 Wobland
 
11.06.13
15:51
(0) вот загрузил ты в справочник картинку размером в десяток мегабайт. я на тонком канале в веб-клиенте полез в базу реквизит шапки в десятке документов менять. вопрос: почему у меня весь канал будет занят?
13 Wobland
 
11.06.13
15:52
(12) оговорился. групповую пометку удаления делать, допустим ;)
14 Рыцарь
 
11.06.13
15:54
(13) У нескольких документов поставить пометку удаления, правильно понял?:)
15 Wobland
 
11.06.13
15:56
16 Kaban
 
11.06.13
15:56
(12) справочник маленький, изображения меленькие
(11) ну и попадет в ту строку его адрес, он картинку тогда не отображает
17 Wobland
 
11.06.13
15:57
(16) не принципиально
18 Рыцарь
 
11.06.13
15:59
(16) отображает
19 Kaban
 
11.06.13
15:59
(17) в общем то, что я думал будет проще, оказалось хуже...
Итог - создавать отдельный справочник...
А я ещё думал, вот я умный, а в типовой не додумались)))
20 Wobland
 
11.06.13
15:59
(19) а я в своё время задумался, почему это они в типовой такие умные
21 Eugeneer
 
11.06.13
16:01
Если подумать извилинами то можно.
Как сделано по уму.
Добавлен интерфейс, который вызывается нажатием кнопки Свойства номенклатуры - содержит несколько закладок. На одной из них изобранжение.
Внимание - получение данных срабатывает только если включено и только для активной закладки.
Те если например выключить или будет другая закладка - то тормозить не будет. Если конечно все время висеть на активной закладке с картинкой - то перескок будет медленным.
http://subsystems.ru/upload/iblock/f5f/consol_saler_ut11_2.png

Код работы изображения:

При активации строки (клиент)
ИнформацияПолучитьКартинкуНоменклатуры(ТекущиеДанныеСтроки);

В свою очередь (внимание! на сервере):

&НаСервере
Процедура ИнформацияПолучитьКартинкуНоменклатуры(ТекущиеДанныеСтроки)
   
   ПодборКартинкаНоменклатуры = ПолучитьКартинкуНоменклатуры(ТекущиеДанныеСтроки.Номенклатура);        
   Если ЗначениеЗаполнено(ПодборКартинкаНоменклатуры) Тогда
       КартинкаНоменклатуры = ПолучитьНавигационнуюСсылкуКартинки(ПодборКартинкаНоменклатуры, УникальныйИдентификатор)
   Иначе
       КартинкаНоменклатуры = "";
   Конецесли;
   
КонецПроцедуры


&НаСервере
Функция ПолучитьКартинкуНоменклатуры(Номенклатура)
   
   //УстановитьПривилегированныйРежим(Истина);
   
   ФайлКартинкиНоменклатуры = Номенклатура.ФайлКартинки;
   
   Возврат ФайлКартинкиНоменклатуры;
   
КонецФункции
22 Eugeneer
 
11.06.13
16:03
Реквизит КартинкаНоменклатуры - просто РЕКВИЗИТ ФОРМЫ, а не объекта.

Внимание!! Тип СТРОКА!
Но на форме ВИД - ПОЛЕ КАРТИНКИ.
23 Kaban
 
11.06.13
16:08
(21) а что храниться в "Номенклатура.ФайлКартинки"?
24 Eugeneer
 
11.06.13
16:09
(23) слушай не задавай таких вопросов) зайди в УТ11 и глянь.
25 Eugeneer
 
11.06.13
16:09
Итак разжевал дальше некуда.
26 Kaban
 
11.06.13
16:13
(23) так я и имею ввиду, что это все равно второй справочник