|
Хранилище значения | ☑ | ||
---|---|---|---|---|
0
Sun125
01.08.10
✎
19:40
|
Управляемое приложение. Пытаюсь записать в реквизит справочника (Тип Хранилище значения) файл:
ФайлХранилища = Новый ХранилищеЗначения(ТекФайл);(на сервере) Не записывается..подскажите,пожалуйста, в чем дело? Считываю: ДанныеХранилища = Объект.Ссылка.ФайлХранилища.Получить(); // неопределено |
|||
1
EvgeniuXP
01.08.10
✎
19:44
|
Установить
|
|||
2
Sun125
01.08.10
✎
19:51
|
(1) не очень понял, что установить?
|
|||
3
Sun125
01.08.10
✎
19:52
|
хотя бы пример какой-нибудь киньте..где используется Установить
|
|||
4
Sun125
01.08.10
✎
19:54
|
Объект.Ссылка.ДанныеХранилища = Новый ХранилищеЗначения(ТекФайл);
// ошибка: Поле объекта недоступно для записи |
|||
5
Aleksey_3
01.08.10
✎
19:57
|
||||
6
Sun125
01.08.10
✎
20:03
|
(5) я так и делаю...
|
|||
7
Sun125
01.08.10
✎
20:04
|
на обычной форме все хорошо...а вот на управляемой не получается
|
|||
8
Sun125
01.08.10
✎
21:45
|
upну...
|
|||
9
Bober
01.08.10
✎
21:48
|
в каком контексте?
|
|||
10
Sun125
01.08.10
✎
21:59
|
(9) ФайлХранилища - это реквизит объекта, тип - Хранилище значения, на форме его нет. В модуле управляемой формы:
&НаСервере ФайлХранилища = Новый ХранилищеЗначения(ТекФайл); И не записывается значение реквизита...не могу понять почему. |
|||
11
Всеяд
01.08.10
✎
22:18
|
(4) "Объект.Ссылка.ДанныеХранилища = ..."
Много думать. |
|||
12
Sun125
01.08.10
✎
22:45
|
(11) Как тогда обратиться к реквизиту?
|
|||
13
H A D G E H O G s
01.08.10
✎
23:33
|
На Волге, на Волге, на том бережочке, мыла Маруся бледные ножки...
ЭтотОбъект=РеквизитФормыВЗначение("Объект"); ЭтотОбъект.ДанныеХранилища=Новый ХранилищеЗначения(ТекФайл); ЗначениеВРеквизитФормы(ЭтотОбъект,"Объект"); |
|||
14
H A D G E H O G s
01.08.10
✎
23:34
|
Где, ТекФайл - ДвоичныеДанные, естественно.
|
|||
15
Sun125
02.08.10
✎
00:11
|
так странно...вроде сначала записывается...
смотрю в отладчике: ЭтотОбъект.ДанныеХранилища - табличный документ там а потом все равно куда-то пропадает значение. в итоге не записывается. |
|||
16
Sun125
02.08.10
✎
00:16
|
&НаКлиенте
УстановитьДанные() ПолучитьДанные() &НаСервере Процедура УстановитьДанные() ЭтотОбъект=РеквизитФормыВЗначение("Объект"); ЭтотОбъект.ДанныеХранилища=Новый ХранилищеЗначения(ТекФайл); ЗначениеВРеквизитФормы(ЭтотОбъект,"Объект"); КонецПроцедуры &НаСервере Процедура ПолучитьДанные() ЭтотОбъект=РеквизитФормыВЗначение("Объект"); ДанныеХранилища = ЭтотОбъект.ДанныеХранилища.Получить(); // тут уже пусто почему-то КонецПроцедуры |
|||
17
H A D G E H O G s
02.08.10
✎
00:24
|
(16) Объект после помещения не записан. Читается старая версия.
Хотишь работать на протяжении "сеанса" - Юзай ВременноеХранилище. Ну примерно так: &НаКлиенте Процедура ОткрытьИзФайла(Команда) Диалог=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Если Диалог.Выбрать() Тогда Двоичные=Новый ДвоичныеДанные(Диалог.ПолноеИмяФайла); АдресКартинки=ПоместитьВоВременноеХранилище(Двоичные,УникальныйИдентификатор); КартинкаИзменена=Истина; КонецЕсли; КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Если КартинкаИзменена Тогда КартинкаИзменена=Ложь; ТекущийОбъект.Картинка=Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(АдресКартинки)); КонецЕсли; КонецПроцедуры &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЭтотОбъект=РеквизитФормыВЗначение("Объект"); АдресКартинки=ПоместитьВоВременноеХранилище(ЭтотОбъект.Картинка.Получить(),УникальныйИдентификатор); КонецПроцедуры |
|||
18
Sun125
02.08.10
✎
01:11
|
(17) Спасибо! Вы мне очень помогли!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |