Имя: Пароль:
1C
1С v8
Почему не работает ОбновитьОтображениеДанных() на УФ?
0 ШангриЛа
 
08.06.13
23:03
В обработке в форме написан код:

Реквизит1 - поле выбора элемента справочника. Меняется наименование элемента, в форме в поле выбора остается прежнее наименование.

&НаКлиенте
Процедура ЗаписатьПроверивБлокировку(Команда)
   ЗаписатьПроверивБлокировкуНаСерере();
   Элементы.Реквизит1.ОбновитьТекстРедактирования();
   ЭтаФорма.ОбновитьОтображениеДанных();
КонецПроцедуры

Процедура ЗаписатьПроверивБлокировкуНаСерере()
   ОтчетОбъект = РеквизитФормыВЗначение("Объект");
   ОтчетОбъект.ИзменитьПроверка(Объект.Реквизит1);
   ЗначениеВРеквизитФормы(ОтчетОбъект,"Объект");
КонецПроцедуры

В модуле объекта:
Процедура ИзменитьПроверка(Ссылка) Экспорт
   Элементбъект = Ссылка.ПолучитьОбъект();
   Если Элементбъект.Заблокирован() Тогда
       Сообщение = Новый СообщениеПользователю;
       Сообщение.Поле = "Реквизит1";
       Сообщение.УстановитьДанные(ЭтотОбъект);
       Сообщение.Сообщить();
   Иначе
       Элементбъект.Наименование = НовоеНаименование;
       Элементбъект.Записать();
   КонецЕсли;
КонецПроцедуры
1 ШангриЛа
 
08.06.13
23:04
УправляемаяФорма.ОбновитьОтображениеДанных (ManagedForm.RefreshDataRepresentation)
УправляемаяФорма (ManagedForm)
ОбновитьОтображениеДанных (RefreshDataRepresentation)
Синтаксис:

ОбновитьОтображениеДанных()
Описание:

В принудительном порядке обновляет содержание элементов управления.
Полезен при изменении значений реквизитов формы вне формы, в тот момент, когда форма отображается на экране.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.
Примечание:

В веб-клиенте обновление элементов управления происходит не сразу, а после окончания выполнения кода на встроенном языке.
2 ШангриЛа
 
08.06.13
23:08
Вот так надо

&НаКлиенте
Процедура ЗаписатьПроверивБлокировку(Команда)
   ЗаписатьПроверивБлокировкуНаСерере();
   ОтобразитьИзменениеДанных(Объект.Реквизит1,ВидИзмененияДанных.Изменение);
КонецПроцедуры
3 Dethmont
 
09.06.13
00:08
Или

&НаКлиенте
Процедура ЗаписатьПроверивБлокировку(Команда)
   ЗаписатьПроверивБлокировкуНаСерере();
   ЭтаФорма.Прочитать();
КонецПроцедуры

Процедура ЗаписатьПроверивБлокировкуНаСерере()
   ОтчетОбъект = РеквизитФормыВЗначение("Объект");
   ОтчетОбъект.ИзменитьПроверка(Объект.Реквизит1);
   ЗначениеВРеквизитФормы(ОтчетОбъект,"Объект");
КонецПроцедуры
4 Мимохожий Однако
 
09.06.13
09:12
Попробуй не использовать в названии реквизита "Объект"