|
8,2 Работа с реквизитом типа ХранилищеЗначения | ☑ | ||
---|---|---|---|---|
0
Кукалёв Анатолий
13.03.12
✎
10:29
|
Есть справочник ФотоНоменклатуры.
У него есть реквизит ХранилищеКартинки - тип ХранилищеЗначения. На форме есть кнопка "ПрикрепитьКартинку". &НаКлиенте Процедура ПрикрепитьКартинку(Команда) Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.ПолноеИмяФайла = ""; Диалог.Фильтр = "(*.jpg)|*.jpg"; Диалог.МножественныйВыбор = Ложь; Диалог.Заголовок = "Выберите файл"; Если Диалог.Выбрать() Тогда МассивФайлов = Диалог.ВыбранныеФайлы; Для Каждого ИмяФайла Из МассивФайлов Цикл ВыбранныйФайл = Новый Файл(ИмяФайла); ПутьКФайлу = ВыбранныйФайл.ПолноеИмя; МояКартинка = Новый Картинка(ПутьКФайлу, Истина); //ПроцедураПомещенияВХранилищеКартинки КонецЦикла; КонецЕсли; КонецПроцедуры Вопрос в том, как должна выглядеть ПроцедураПомещенияВХранилищеКартинки ? Эта процедура должна поместить переменную МояКартинка в реквизит ХранилищеКартинки справочника ФотоНоменклатуры. |
|||
1
Cube
13.03.12
✎
10:30
|
(0) Посмотреть, как это сделано в типовых не предлагать?
|
|||
2
Рэйв
13.03.12
✎
10:31
|
ВыбранноеФото = Новый Картинка(Диалог.ПолноеИмяФайла,Ложь);
НовоеФото = Новый ХранилищеЗначения(ВыбранноеФото,Новый СжатиеДанных(1)); СхемаПроезда=НовоеФото; ЭлементыФормы.ПолеКартинки1.Картинка = СхемаПроезда.Получить(); |
|||
3
Cube
13.03.12
✎
10:33
|
(2) Это так просто было в обычных формах, а у него, походу, управляемые... :)
|
|||
4
Рэйв
13.03.12
✎
10:34
|
(2)Разберется поди:-)
|
|||
5
Кукалёв Анатолий
13.03.12
✎
10:41
|
Да управляемые и (2) не прокатывает.
|
|||
6
Кукалёв Анатолий
13.03.12
✎
10:43
|
Как обратиться к реквизиту ХранилищеКартинки, т.к. его даже нет в перечне реквизитов ?
|
|||
7
Cube
13.03.12
✎
10:46
|
(6) Смотри (1).
|
|||
8
Кукалёв Анатолий
13.03.12
✎
10:48
|
Смотрел, но чето простого ничего не увидел.
|
|||
9
Cube
13.03.12
✎
10:53
|
(8) Значит правильно смотрел :)
Там ничего простого нет) |
|||
10
Smallrat
13.03.12
✎
10:57
|
примерный кусок кода:
|
|||
11
Smallrat
13.03.12
✎
11:00
|
|
|||
12
Smallrat
13.03.12
✎
11:00
|
ой не то
|
|||
13
Кукалёв Анатолий
13.03.12
✎
17:47
|
Сделал так
&НаКлиенте Процедура ЗагрузитьКартинку(Команда) Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.ПолноеИмяФайла = ""; Диалог.Фильтр = "(*.jpg)|*.jpg"; Диалог.МножественныйВыбор = Ложь; Диалог.Заголовок = "Выберите файл"; Если Диалог.Выбрать() Тогда МассивФайлов = Диалог.ВыбранныеФайлы; Для Каждого ИмяФайла Из МассивФайлов Цикл ВыбранныйФайл = Новый Файл(ИмяФайла); Объект.ПутьКФайлу = ВыбранныйФайл.ПолноеИмя; Если Не ЗначениеЗаполнено(Объект.Наименование) Тогда Объект.Наименование = ВыбранныйФайл.ИмяБезРасширения КонецЕсли; НоваяКартинка = Новый Картинка(Объект.ПутьКФайлу, Истина); АдресКартинки = ПоместитьВоВременноеХранилище(НоваяКартинка); КонецЦикла; КонецЕсли; КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Если Не ЗначениеЗаполнено(АдресКартинки) Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Загрузите картинку"; Сообщение.Сообщить(); Отказ = Истина; Возврат КонецЕсли; КонецПроцедуры &НаСервере Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) ДанныеКартинки = ПолучитьИзВременногоХранилища(АдресКартинки); ТекущийОбъект.ХранилищеКартинки = Новый ХранилищеЗначения(ДанныеКартинки, Новый СжатиеДанных(9)); ТекущийОбъект.Записать(); УдалитьИзВременногоХранилища(АдресКартинки); КонецПроцедуры &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда Возврат КонецЕсли; ТекущаяКартинка = Объект.Ссылка.ХранилищеКартинки.Получить(); АдресКартинки = ПоместитьВоВременноеХранилище(ТекущаяКартинка); КонецПроцедуры &НаКлиенте Процедура ПриЗакрытии() УдалитьИзВременногоХранилища(АдресКартинки); КонецПроцедуры Прошу указать на недочеты. Smallrat спасибо за код. |
|||
14
Кукалёв Анатолий
13.03.12
✎
17:48
|
АдресКартинки - реквизит формы, тип строка(0)
|
|||
15
Smallrat
14.03.12
✎
08:47
|
(14) на быстрый взгляд ничего криминального нет. Работает ? Вот и хорошо :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |