|
Как в УФ обновить форму?
|
Я
|
|
megabax 12.09.16 - 12:47 | Добрый день.
Выполняю вот такой код:
&НаКлиенте
Процедура ПозицииПослеУдаления(Элемент)
РассчитатьСкидку();
ЭтаФорма.ОбновитьОтображениеДанных();
КонецПроцедуры
Данные, отображаемые на форме меняются, но сама форма почему то не обновляется, оно обновляется только по кнопочке"Записать". Подскажите пожалуйста, как правильно принудительно обновить форму программно? |
Nuobu 1 - 12.09.16 - 12:50 | Прочитать()
ЭтаФорма.Обновить() |
megabax 2 - 12.09.16 - 12:58 | ( 1) Попробовал сделать так:
&НаКлиенте
Процедура ПозицииПослеУдаления(Элемент)
РассчитатьСкидку();
ЭтаФорма.Прочитать();
КонецПроцедуры
И форма просто восстанавливает первоначальное состояние. То есть, при удалении строки у меня пересчитываться данные, а потом хлобысь, и удаленная строка восстанавливается.
А вот такой функции как Обновить() у ЭтаФорма почему то нету.... |
Fragster 3 - 12.09.16 - 13:01 | а какие поля меняются в РассчитатьСкидку()?
|
ИС-2 4 - 12.09.16 - 13:06 | расчет выполняется в модуле объекта?
Может надо ЗначениеВДанныеФормы сделать?
|
megabax 5 - 12.09.16 - 13:07 | ( 3) Сначала запускается вот это:
&НаСервере
Процедура РассчитатьСкидку()
ВнешнийОбъект = ЭтаФорма.РеквизитФормыВЗначение("Объект");
ВнешнийОбъект.РассчитатьСкидку();
КонецПроцедуры
где ВнешнийОбъект.РассчитатьСкидку()
реализовано так:
Процедура РассчитатьСкидку() экспорт
СуммаСкидки=Позиции.Итог("Всего")*ПроцентСкидки/100;
СуммаСкидкиЗамена=Позиции.Итог("ВсегоЗамена")*ПроцентСкидки/100;
СуммаПослеСкидки=Позиции.Итог("Всего")-СуммаСкидки;
СуммаПослеСкидкиЗамена=Позиции.Итог("ВсегоЗамена")-СуммаСкидкиЗамена;
КонецПроцедуры
где все эти поля реквизиты объекта |
Cyberhawk 6 - 12.09.16 - 13:07 | @Данные, отображаемые на форме меняются, но сама форма почему то не обновляется@ // А по-русски?
|
megabax 7 - 12.09.16 - 13:07 | |
Cyberhawk 8 - 12.09.16 - 13:07 | Что для тебя есть обновление формы, если не обновление данных?
|
Cyberhawk 9 - 12.09.16 - 13:07 | *отображаемых данных
|
megabax 10 - 12.09.16 - 13:08 | ( 6) Реквизиты объекта выведены на форму в виде полей. Значение реквизитов меняется, а форма отображает старые данные |
megabax 11 - 12.09.16 - 13:15 | Спасибо всем, помогло вот это:
&НаСервере
Процедура РассчитатьСкидку()
ВнешнийОбъект = ЭтаФорма.РеквизитФормыВЗначение("Объект");
ВнешнийОбъект.РассчитатьСкидку();
ЭтаФорма.ЗначениеВРеквизитФормы(ВнешнийОбъект,"Объект");
КонецПроцедуры |
Cyberhawk 12 - 12.09.16 - 13:17 | |
megabax 13 - 12.09.16 - 13:19 | ( 12) А что тут такого наркоманского? |
DrZombi 14 - 12.09.16 - 13:20 | ( 11) Пожалуйста...
( 13) Лучше расчет скидки вынести в модуль. Или в общий модуль. |
megabax 15 - 12.09.16 - 13:22 | ( 14) Да, вот я сейчас об этом же подумал. Вынести в общий модуль, вместо того, чтобы любиться вызовом процедуры модуля документа из формы документа. Не подозревал, что в УФ для этого придется так извратиться... |
ildary 16 - 12.09.16 - 13:25 | ( 14) простите, что вмешиваюсь, а если УФ вынуждают выносить доп функции в отдельный общий модуль - зачем тогда модуль объекта? |
DrZombi 17 - 12.09.16 - 13:34 | ( 16) Что бы можно было рассчитать скидку и без обращения к объекту :) |
Cyberhawk 18 - 12.09.16 - 14:00 | ( 13) Ну Я реально не пойму, как это "Данные, отображаемые на форме меняются, но сама форма почему то не обновляется". Что еще можно подразумевать под обновлением формы, как не обновление отображаемых на ней данных? |
megabax 19 - 12.09.16 - 14:05 | ( 18) "Данные, отображаемые на форме" - возможно, не так выразился. Правильнее было сказать: "Данные, предназначенные для отображения на форме" |
Cyberhawk 20 - 12.09.16 - 15:10 | ( 19) Вот теперь Я спокоен, спс |