Имя: Пароль:
1C
1С v8
Управляемая форма
0 ElKov
 
26.10.12
12:08
Здравствуйте
проблема такая :

Объект.Владелец1 - объект формы (справочник)

&НаСервере
Процедура ЗаписатьДанныеНаСервере(СтруктураПараметров)
//меняеются реквизиты Объект.Владелец1,
// в тч наименование, записывается справочник объект

//был Петя стал Вася

СтруктураПараметров.Вставить("Владелец", Объект.Владелец1);//вася
КонецПроцедуры

&НаКлиенте
Процедура ЗаписатьДанные(Команда)

   СтруктураПараметров = Новый Структура;
   СтруктураПараметров.Вставить("Владелец",Объект.Владелец1);//Петя

   ЗаписатьДанныеНаСервере(СтруктураПараметров);    

   Объект.Владелец1=СтруктураПараметров.Владелец;//Петя

КонецПроцедуры    


Вопрос : почему &НаСервере стал Вася а &НаКлиенте опять Петя
1 Ololoshka
 
26.10.12
12:22
Может попробовать перечитать форму?
2 ElKov
 
26.10.12
12:25
Это как?
3 Ololoshka
 
26.10.12
12:28
ЭтаФорма.Прочитать();

что бы она прочитала себя с сервера. т.к. обновляется только после того как "уйдет"-"придет", автоматически не обновляется на клиенте.
4 Ololoshka
 
26.10.12
12:30
если что то меняешь в форме на сервере, после этого надо обновить форму что бы изменения вступили на ней в силу. попробуй. если я правильно тебя поняла тебе нужно что бы в форме стал Вася.
5 ElKov
 
26.10.12
12:30
это я попробовала , ошибка метод объекта не обнаружен
6 Ololoshka
 
26.10.12
12:31
(3) после ЗаписатьДанныеНаСервере(СтруктураПараметров);
7 acsent
 
26.10.12
12:32
представление ссылки не обновилось просто
8 ElKov
 
26.10.12
12:33
Метод объекта не обнаружен (Прочитать)
   ЭтаФорма.Прочитать();
9 Ololoshka
 
26.10.12
12:35
попробуй через оповещение
&НаКлиенте
Процедура ЗаписатьДанные(Команда)

   СтруктураПараметров = Новый Структура;
   СтруктураПараметров.Вставить("Владелец",Объект.Владелец1);//Петя


   ЗаписатьДанныеНаСервере(СтруктураПараметров);    
   Оповестить("ОбновлениеНаименования");//или засунь его куда нужно это оповещение
   Объект.Владелец1=СтруктураПараметров.Владелец;//Петя


КонецПроцедуры


&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
   
   Если ИмяСобытия = "ОбновлениеНаименования" Тогда
           ЭтаФорма.Прочитать();
   КонецЕсли;
       
КонецПроцедуры // ОбработкаОповещения()
10 ElKov
 
26.10.12
12:44
попробовала , не помогает
на ЭтаФорма.Прочитать() так же ошибка
на ЭтаФорма.ОбновитьОтображениеДанных() ничего не происходит
11 Ololoshka
 
26.10.12
12:56
передай с сервера ЗначениеВРеквизитФормы

ЗначениеВРеквизитФормы(<Значение>, <ИмяРеквизита>)
Параметры:

<Значение> (обязательный)

Тип: Произвольный.
Значение прикладного типа, которое необходимо преобразовать в реквизит формы и для которого определено преобразование в данные формы.
<ИмяРеквизита> (обязательный)

Тип: Строка.
Имя реквизита формы, в который необходимо поместить преобразованное значение.
12 Ololoshka
 
26.10.12
12:56
тебе просто нужно обновить форму
13 ElKov
 
26.10.12
13:20
вот я так сделала (насервере)
   Обработка    = ДанныеФормыВЗначение(Объект, Тип("ОбработкаОбъект.Работа"));
   АдресВозврата= ПоместитьВоВременноеХранилище(Обработка, УникальныйИдентификатор);
   Обработка    = ПолучитьИзВременногоХранилища(АдресВозврата);
   ЗначениеВДанныеФормы(Обработка, Объект);

все работает насервере, как только возвращается наклиента - на форме остается "Петя"
Я понимаю, что надо обновить форму , не могу понять как это сделать
Этот реквизит на форме запрещен к редактированию непосредственно, надо через кнопку чтоб работало
14 ElKov
 
26.10.12
13:49
ЭтаФорма.ОтобразитьИзменениеДанных(Объект.Владелец1, ВидИзмененияДанных.Изменение );

помогло!
Спасибо всем