Почему не работает ОбновитьОтображениеДанных() на УФ?
☑
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
Попробуй не использовать в названии реквизита "Объект"
Основная теорема систематики: Новые системы плодят новые проблемы.