Имя: Пароль:
1C
1С v8
ЗначениеВРеквизит в управляемой форме
0 puasson
 
08.04.13
10:32
На сервере делаю такой код

1....ЭтотОбъект = РеквизитФормыВЗначение("Объект");
2....ЭтотОбъект.ИмяТЧ[НомерСтроки].ХранилищеОС = новый ХранилищеЗначения(ТаблицаЗначений);
3....ЗначениеВРеквизитФормы(ЭтотОбъект, "Объект");

собстно строка 2... отрабатывает как положено. Но после строки 3 поле Хранилище значения пустое. Почему оно сбрасывается и как нужно писать чтобы оно сохранялось??
1 zladenuw
 
08.04.13
10:40
(0) на сколько я помню. хранилище нужно помещать во временные файлы и получать на клиенте.
2 puasson
 
08.04.13
10:40
или я написать банальную чушь, толи на мисте не осталось мастеров
3 puasson
 
08.04.13
10:42
у тч есть реквизит, хранилищзе хначения как раз, но на форму я его не помещаю, и обратиться к нему можно только так, разве нет?
4 andreymongol82
 
08.04.13
10:44
(3) Так всю ТЧ в хранилище или строку ТЧ в хранилище надо положить?
5 Defender aka LINN
 
08.04.13
10:44
(0) Да, это так ©
ПередЗаписьюНаСервере это делать надо
6 zladenuw
 
08.04.13
10:44
&НаСервере
Процедура ПоместитьФайлОбъекта(АдресВременногоХранилища)
   ЭлементСправочника = РеквизитФормыВЗначение("Объект");
   ДвоичныеДанные =  ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
   Строка = ЭлементСправочника.Опись.Добавить();
   Строка.Файл = Новый ХранилищеЗначения(ДвоичныеДанные);
   Строка.ПриложенЛиФайл = Истина;
   Модифицированность = Ложь;
   УдалитьИзВременногоХранилища(АдресВременногоХранилища);
   ЗначениеВРеквизитФормы(ЭлементСправочника, "Объект");
КонецПроцедуры

&НаКлиенте
Процедура ОписьВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
   НомерСтроки=Элементы.Опись.ТекущаяСтрока;
   Адрес=ПолучитьИзХранилища(НомерСтроки);
   Хранилище=ПолучитьИзвременногоХранилища(Адрес);
КонецПроцедуры

   

&НаСервере
Функция ПолучитьИзХранилища(НомерСтроки)
   ЭтотОбъект=РеквизитФормыВЗначение("Объект");
   Хранилище=ЭтотОбъект.Опись[НомерСтроки].Файл;

   АдресХранилища=ПоместитьВоВременноеХранилище(Хранилище,ЭтаФорма.УникальныйИдентификатор);
   Возврат АдресХранилища;
КонецФункции
7 Defender aka LINN
 
08.04.13
10:47
(6) ППЦ
8 puasson
 
08.04.13
10:49
(6) и *уйли?
9 puasson
 
08.04.13
10:51
(5) я не согласен ибо не понимаю почему
10 Defender aka LINN
 
08.04.13
10:51
(9) С чем ты не согласен?
11 puasson
 
08.04.13
10:53
ПередЗаписьюНаСервере - ты предлагаешь каждый раз при изменении значения на сервере вызывать запись? Это не хорошо же
12 puasson
 
08.04.13
10:55
как иначе можно обратиться к реквизиту табличной части, которого нет на форме??  
Форма управляемая
13 puasson
 
08.04.13
11:01
то потому что на форме нет реквизита. потому и сбрасывает??
14 Defender aka LINN
 
08.04.13
11:03
(11) Это ты предлагаешь, не я.
15 puasson
 
08.04.13
11:04
(0) Да, это так ©
ПередЗаписьюНаСервере это делать надо


Ты же написал.

То напиши как надо если знаешь
16 puasson
 
08.04.13
11:11
не прокатит такая конструкция. походу нельзя менять реквизит Тч, которого нет на форме. Не вызывая сохранение есстественно.
17 Defender aka LINN
 
08.04.13
11:23
(15) Это событие, которое вызывается перед записью. Вот в этот момент и работай с объектом
18 puasson
 
08.04.13
11:29
нет. у меня для каждой строчки юзер создает свою ТЧ, которая и вгоняется в хранилище значения. а ты предлагаешь мне запись использовать, так не по уму. В общем долго объяснять что мне нужно, проще сказать что ты не верно понял мою задачу
19 Defender aka LINN
 
08.04.13
11:31
(18) Проще сказать, что это ты нихрена не понял.
Я отсюда вижу только потуги запихать ХЗ в объект, которые не получаются. Зачем ты хочешь вызывать запись каждый раз - вне моего понимания.
20 puasson
 
08.04.13
11:49
твой вариант прокатил бы, будь это просто реквизит. но у меня то реквизит табличной части! допустим 100 строчек, да, будет не просто сохранить 100 хранилищь до события ПередЗаписьюНаСервере. А хотя не я понял кажеца. Только скажи мне как изменить этот реквизит? в управляемой форме просто так  к нему подберешься если нет его на форме и нету ссылки на объект
21 Defender aka LINN
 
08.04.13
12:50
(20) Ну вот так и говори. Выше же написали - во временное хранилище складывай
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.