Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Как в УФ обновить форму?

Как в УФ обновить форму?
Я
   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
(4) Спасибо, попробую
   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
(10) Ты наркоман?
   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) Вот теперь Я спокоен, спс

Список тем форума
Рекламное место пустует  Рекламное место пустует
Основная теорема систематики: Новые системы плодят новые проблемы.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует