Как обновить форму документа после изменения данных

1. luda33 02.10.13 09:20 Сейчас в теме
Есть документ
После записи меняется документ - который реквизит документа
На форме он есть - но отображается старый пока не закроешь и не откроешь новый
как форму обновить?

ЭтаФорма.Обновить();

не работает

 	
	П = Новый Структура("Ключ", ЭтотОбъект.Ссылка);
	Форма = ПолучитьФорму("Документ._ЗаказПокупателя.ФормаЭлемента", П);
	Форма.Прочитать(); 	


тоже не работает

хотела обновить реквизит измененный

элементыформы.мойэлемент.обновить(); 


тоже нет
EvgeniyOlxovskiy; +1 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
31. user1998302 06.10.23 11:16 Сейчас в теме
ОповеститьОбИзменении(Тип("СправочникСсылка.ТоЧтоНужноОбновлять"));
ivv1970; FeliceYa; +2 Ответить
2. Pistolierro 86 02.10.13 09:38 Сейчас в теме
Используйте событие ОбработкаОповещения на той форме которую хотите обновить. Этот событие возникает в результате работы метода Оповестить().
Например: Вам нужно ПослеЗаписи изменяемого документа вызвать процедуру Оповестить(). И ловить это оповещение в той форме которую хотите обновить в событии ОбработкаОповещения
nysysimara; user1373562; user1194634; Apolonov-Erik; user987690; +5 Ответить
3. kanalya 109 02.10.13 10:14 Сейчас в теме
Судя по всему, этот реквизит обновляется не через ОбновлениеОтображения(), а где-то в ПриОткрытии() и/или при изменении связанного с ним поля. Смотрите в коде как это происходит и добавляйте в ПослеЗаписи().
AllexSoft; +1 Ответить
4. MaximKor 20 24.11.17 18:27 Сейчас в теме
ну отписались бы хоть по результатам! Всячески пробовал уже, не выходит обновить форму программно.
8. MVK80 13.01.18 16:18 Сейчас в теме
(4) ЭтотОбъект.Прочитать().
Вызываете в форме в нужном месте, можно на клиенте, можно на сервере.
А уже потом обновляете форму.
triton_tver; cheshirshik; kabantus; Santa1; +4 1 Ответить
5. accounting_cons 757 24.11.17 18:55 Сейчас в теме
ЗначениеВРеквизитФормы(ДокОбъект, "Объект");

- не поможет?
advanter; Vida; kabantus; +3 Ответить
6. user589984_vetaliy47 29.11.17 18:54 Сейчас в теме
(5) Нет, обновятся только реквизиты. А хотелось бы чтобы на форме пропала * у наименования, что там данные актуальны теперь.
7. lefthander 29.11.17 20:38 Сейчас в теме
(6)Не факт отсутствия звездочки = актуальность данных. Отсутствие звездочки = документ записан. Если на форме есть данные из другого объекта, которые изменились в другом сеансе, то о них можно узнать только получив оповещение открытым формам. Так как то.
11. evseevoleg 16.01.19 11:14 Сейчас в теме
(7)
Отсутствие звездочки = документ записан

И опять нет!))
Отсутствие "*" означает, что ЭтаФорма.Модифицированность = Ложь
Документ (справочник) может быть и не актуальным и не записанным при этом. Все зависит от рук разработчика.
9. eashabalin 27.06.18 19:36 Сейчас в теме
Форма.ОбновитьОтображениеДанных();


УправляемаяФорма (ManagedForm)
ОбновитьОтображениеДанных (RefreshDataRepresentation)
Синтаксис:

ОбновитьОтображениеДанных(<ОбновлятьЭлементы>)
Параметры:

<ОбновлятьЭлементы> (необязательный)

Тип: ГруппаФормы; ТаблицаФормы; ПолеФормы; Массив.
Если параметр задан, то установка значений (и обновление) будет выполняться только для тех элементов, которые заданы в параметре. Если в качестве значения передан пустой массив, то ни для каких элементов формы установка значений выполнена не будет.
После вызова метода признак необходимости установки значений и обновления для элементов формы сбрасывается: если после вызова метода никакие данные формы не меняются, то ни для никаких элементов, кроме указанных, текст обновлен не будет.
Если параметр имеет значение типа Массив, то элементами массива могут быть только значения типа ГруппаФормы, ТаблицаФормы, ПолеФормы.
Если массив содержит значение другого типа, то будет выдано исключение о неверном типе параметра.
Вызов метода ОбновитьОтображениеДанных с параметром <ОбновлятьЭлементы> имеет смысл только внутри обработчика ВнешнееСобытие, обработчиков ожидания формы и обработчика ОбработкаОповещения.
В обработчиках других событий вызов этого метода с параметром аналогичен вызову без параметра (при необходимости данные будут установлены всем элементам управления).
Описание:

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

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

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

В веб-клиенте обновление элементов управления происходит не сразу, а после окончания выполнения кода на встроенном языке.
Показать
Serg O.; Alef; +2 Ответить
10. neptunka 40 09.01.19 08:41 Сейчас в теме
В моем случае помогло только ЭтаФорма.Записать()
xantif_2000; user635667; +2 Ответить
12. user635667 139 20.04.19 11:48 Сейчас в теме
(10)
ЭтаФорма.Записать()

Еще есть ЭтаФорма.Прочитать();
izidakg; viplelik; smit1c; Gendelf; stoptime; romankoav; +6 Ответить
13. serko8547 110 25.09.19 11:19 Сейчас в теме
(12)
не получалось записать, Недостаточно фактических параметров.
решил проблему так:

а= Новый Структура;
ЭтаФорма.Записать(а);

А вообще, Благодарность Вам, за решение этой задачи. бьюсь с ней уже несколько часов!
33. RomanKod 13.10.23 17:51 Сейчас в теме
(12) У меня сработало ТОЛЬКО если ЭтаФорма.Прочитать() вызвать НА СЕРВЕРЕ.
При вызове на клиенте не работает как не бился (
14. lev6975 18.05.20 17:32 Сейчас в теме
Приветствую всех. А, скажите, плиз, как теперь обновить реквизит после изменения на управляемой форме в 8.3.16?
Везде написано
ЭтаФорма.Прочитать();

Но в 8.3.16 это не работает!
Метод не обнаружен
Синтакс тоже молчит
15. lefthander 18.05.20 17:45 Сейчас в теме
(14)а вы точно в контексте формы?

Скрытый текст
16. lev6975 18.05.20 18:42 Сейчас в теме
(15) Да, в контексте формы...
Но, я понял, кажись, в чем прикол - метод "Прочитать" работает только для форм справочников, документов, регистров и констант
Для форм внешних обработок этот метод недоступен...
Во внешних обработках нужно юзать "ОповеститьОбИзменении()"
ОповеститьОбИзменении(Тип("СправочникСсылка.Договоры"));

После внесения изменений на сервере когда вызов сервера вернулся на клиент
daho; bnik_n; +2 Ответить
17. user987690 04.06.20 19:03 Сейчас в теме
(16) Для форм справочников метод Прочитать() тоже недоступен (не найден). Сделал через оповещение и обновление элементов формы...
21. bnik_n 15.10.20 16:04 Сейчас в теме
(16)
ОповеститьОбИзменении(Тип("СправочникСсылка.Договоры"));

Не мог найти аналог ОбновитьИнтерфейс();.

Очень помогло. спасибо!

Причем в описании ОповеститьОбИзменении написано для динамический списков.
У меня была ТаблицаЗначений во внешней обработке. Т.е. и для таблицы значений работает..
Наверное и для других реквизитов формы внешней обработки будет справедливо.
18. adamst 3 05.08.20 22:21 Сейчас в теме
для будущих поколений, возможно поможет, суть свойство ЭтаФорма.Модифицированность = Истина, в назначаемых обработках в БСП помогло, код ниже:

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыКоманды) Экспорт
КонтекстФормыВызова = ПараметрыКоманды.ЭтаФорма;
ДанныеОбъекта = КонтекстФормыВызова.Объект;
....
КонтекстФормыВызова.Модифицированность = Истина;
......
19. Hawk_sib 29 13.08.20 15:11 Сейчас в теме
у меня всё взлетело вот так:
&НаКлиенте:

ОбновитьОтображениеДанных();
Прочитать();
user1619761; chng; Max0n57; EvgeniyOlxovskiy; EvgeTrofi; kaaasteeen; skillful; DiselDen; Dmitriy.b; SergeiMn; _1c_coder; denexy; +12 Ответить
24. Dmitry888 41 01.07.21 10:01 Сейчас в теме
(19)
Прочитать();

Странно что у тебя это получилось.
У меня ошибка вышла: "Процедура или функция с указанным именем не определена (Прочитать)"
34. RomanKod 13.10.23 17:57 Сейчас в теме
(19) В некоторых случаях (выведен на форму подчиненный реквизит измененного справочника) срабатывает только Прочитать() и ТОЛЬКО при вызове НА СЕРВЕРЕ. Я так и не понял почему. Прочитать() на клиенте не дал никакого эффекта. Прочитать() на сервере обновляет реквизит.
20. zinzillya 03.09.20 11:09 Сейчас в теме
Интересно, а как допустим обновить отображение строк документа после программного заполнения обработкой табчасти. я же код в обработке держу, доступа к форме документа нет, только ссыль. И имеено БСП.
(18) В БП 3.0 стандартный код модуля "ДополнительныеОтчетыИОбработкиКлиент" только для "ВызовСерверногоМетода" вызывает - Форма.Прочитать().
Переделал Заполняшку с "ВызовКлиентскогоМетода" и заработало нормально.
EvgeniyOlxovskiy; +1 Ответить
22. Xershi 1486 02.03.21 12:16 Сейчас в теме
Если делать через внешнюю обработку, то только КопироватьДанныеФормы(<Источник>, <Приемник>)()
EvgeniyOlxovskiy; +1 Ответить
23. Gendelf 06.06.21 11:33 Сейчас в теме
Если ФормаДок.Открыта() Тогда
	ФормаДок.Прочитать();
КонецЕсли;


работает на 8.3.18
EvgeniyOlxovskiy; +1 Ответить
25. aleksey.kubovtsov 117 29.09.21 17:54 Сейчас в теме
Ситуация:
В форме документа программно меняем реквизит зависимого реквизита формы

Например
На форме ТЧ товары
В ней программно выведен в ТЧ товары реквизит "Номер" по данным серии
Путь к данным Объект.Товары.Серия.Номер

Изменили номер программно, без явного открытия формы серии
Нужно, что бы на форме номер по данным серии так же изменился.

Помогло
ОповеститьОбИзменении()
Не помогло
ОбновитьОтображениеДанных();
Прочитать();
shima; kaaasteeen; data78; +3 Ответить
26. Naumov 24 09.02.22 17:31 Сейчас в теме
Если в документе конфигурации есть обработкаОповещения, например, как в БП 3.0, которая проверяет тип оповещения и тип источник и обновляет форму перезаписанного документа, то все будет работать с кодом типа:

ПараметрыОповещения = Новый Структура("ДокументСсылка",Объект.ЗаполняемыйДокумент); //здесь Объект.ЗаполняемыйДокумент это ссылка на обработанный документ
Оповестить("ВыполненаЗаписьДокумента",ПараметрыОповещения,Объект.ЗаполняемыйДокумент);
27. mrd_84 02.06.22 17:38 Сейчас в теме
А если в УФ мне нужно при нажатии Перечитать чтоб выполнилась моя логика. Можно так сделать?
28. ImHunter 315 03.06.22 09:52 Сейчас в теме
(27) Прямо интрига. Что за логика такая?
29. Bazill94 19.07.22 10:01 Сейчас в теме
//Отправляем

&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Оповестить("ОбновитьИзменяемыеРеквизитыАвто");
КонецПроцедуры

//Ловим

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "ОбновитьИзменяемыеРеквизитыАвто" Тогда
ЗаполнитьИзменяемыеРеквизитыФормы();
КонецЕсли;
КонецПроцедуры
30. iones 196 16.02.23 15:28 Сейчас в теме
Помогает функция ОповеститьОбИзменении(<Ссылка>)
uchenick; Nest2008; naumenko_alex@mail.ru; FeliceYa; WeterSoft; odinsmot; kaaasteeen; vers139; yura371; +9 Ответить
32. WeterSoft 111 10.10.23 12:39 Сейчас в теме
(30)
ОповеститьОбИзменении

Респект, в моем случае на клиенте работает:
	
ОповеститьОбИзменении(Тип("ДокументСсылка.ВыполнениеЗаявок")); 
ОповеститьОбИзменении(Тип("СправочникСсылка.СписокЗаявок"));
AlbinaAAA; +1 Ответить
35. kobayoshi 20 29.10.23 20:27 Сейчас в теме
Может кто знает, а как в УТ 11, в форме ЧекККМ после добавления строки программно, обновить колонку Характеристика? Там остаётся надпись <характеристики не используются> даже в случае, когда характеристика есть (Эта надпись задаётся в УсловномОформлении).
После записи чека всё отображается верно. Что-то ничего из вышепредложенного мне не помогло, или я что-то не так делал...
36. naumenko_alex@mail.ru 15.11.23 13:26 Сейчас в теме
В моём случае помог следующий алгоритм.
Имеем таблицу значений в реквизите формы. В элементы формы выведен реквизит "Справочник1.ФизЛицо" элемента справочника "Справочник1". После группового программного изменения элементов "ФизЛицо" в справочнике "Справочник1" элементы Справочник1.ФизЛицо на форме не перечитывались из базы.

Решение:
&НаКлиенте
ОповеститьОбИзменении(Тип("СправочникСсылка.Справочник1"));
Элементы."НазваниеТаблицыВЭлементахФормы".Обновить();
КонецПроцедуры

Без вызова оповещения об изменении данные на форме не перечитывались.
37. DBOdin_Lab 100 25.03.24 18:21 Сейчас в теме
Для обновления данных в форме и заголовка следует выполнить в форме на сервере:
ЗначениеВДанныеФормы(ПрикладнойОбъект, Объект); // копирует данные из прикладного объекта в универсальный объект, с которым связана форма (смотрите наименование основного реквизита формы)

ЭтаФорма.Прочитать(); // обновляет данные самой формы из универсального объекта
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот