1с 8.3 Управляемая форма - как обновить содержимое другой формы?

1. Salavat 15 25.05.20 09:54 Сейчас в теме
Есть управляемое приложение.
Открыты 2 формы (одновременно).
При изменении данных в первой форме, нужно обновить и вторую форму.
Подскажите, пожалуйста - как?

Нашёл только -
ОкнаПриложения = ПолучитьОкна();
	
	Для каждого ОкноПриложения Из ОкнаПриложения Цикл
		
		//ОкноПриложения. - не нашёл метод,а для обновления содержимого
		
	КонецЦикла;


Но у ОкноПриложения, вижу,только 2 метода:
Активизировать (Activate)
ПолучитьНавигационнуюСсылку (GetURL)
По теме из базы знаний
Найденные решения
15. davealone 165 25.05.20 11:55 Сейчас в теме
(13) Вот так попробуйте:

ОповеститьОбИзменении(Тип("РегистрСведенийКлючЗаписи.ИмяРегистраСведений"));
Oleg_nsk; lavash67; Salavat; +3 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. davealone 165 25.05.20 10:19 Сейчас в теме
(1) Попробуйте через Оповестить/ОбработкаОповещения
ipoloskov; +1 Ответить
4. Salavat 15 25.05.20 10:32 Сейчас в теме
(2)
Оповестить/ОбработкаОповещения

попробовал так (своюже форму - пытаюсь обновить)) -
&НаКлиенте
Процедура ЗагрузитьФактическоеЗначениеЗавершение(ВыбранныйЭлемент, ДополнительныеПараметры) Экспорт
	
	ВыбранноеЗначениеСтр = Строка(ВыбранныйЭлемент); 
	
	Если ВыбранноеЗначениеСтр = "" Тогда
		
		Возврат
		
	ИначеЕсли ВыбранноеЗначениеСтр = "Уровень запасов по ХХХ" Тогда
		
		ЗагрузитьФактическоеЗначениеНаСервере(ВыбранныйЭлемент.Значение);
		
	КонецЕсли;
	
	//ОбновитьОтображениеДанных(); 
	//ОбщегоНазначения.ОбновитьФормы();
	Оповестить("Обновить")

КонецПроцедуры

&НаКлиенте 
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) 
 
      Если ИмяСобытия = "Обновить" Тогда 
      
		  ОбновитьОтображениеДанных();
		  
      КонецЕсли; 
 
КонецПроцедуры
Показать


Не работает.
3. Salavat 15 25.05.20 10:23 Сейчас в теме
И (добавление, к этомуже вопросу) - как вообще, обновить содержимое управляемой формы?
(даже одной - не получилось, у меня)
На форме есть Динамический список (Регистр сведений с отбором, показан) и Команда "Обновить запись Регистра" (ресурс один, меняется).
Процедура -
&НаКлиенте
Процедура ЗагрузитьФактическоеЗначениеЗавершение(ВыбранныйЭлемент, ДополнительныеПараметры) Экспорт
	
	ВыбранноеЗначениеСтр = Строка(ВыбранныйЭлемент); 
	
	Если ВыбранноеЗначениеСтр = "" Тогда
		
		Возврат
		
	ИначеЕсли ВыбранноеЗначениеСтр = "Уровень запасов по ХХХ" Тогда
		
		ЗагрузитьФактическоеЗначениеНаСервере(ВыбранныйЭлемент.Значение);
		
	КонецЕсли;
	
	ОбновитьОтображениеДанных();  // - Не обновляет

КонецПроцедуры
Показать


Только - или закрыть+открыть форму, или через стандартную команду "Обновить".

Вопрос - как обновить данные?
1. В этойже форме.
2. В других, открытых формах.
6. Kovekh 25.05.20 10:47 Сейчас в теме
(3)
так надо обновить форму или динамический список? Идти точно через оповещение надо, но в обработке оповещения уже копаться. Если надо обновить список, он не обновится через ОбновитьОтображениеДанных(). Это нужно Элементы.Список.Обновить().

А вообще это всё довольно легко гуглится)) А направление вам уже дали - Оповестить/ОбработкаОповещения
7. Salavat 15 25.05.20 11:09 Сейчас в теме
(6)Надо обновить Форму (её содержимое).
На форме, да - реквизит "ДинамическийСписок" именно, надо обновить.
(У реквизита Формы "ДинамическийСписок" - свойство "Динамическое считывание данных" установлено. Не обновляет, после команды/процедуры)
9. Max_Max 25.05.20 11:16 Сейчас в теме
(7)Попробуйте так:
Элементы.ЗдесьИмяДинСписка.Обновить();
11. alex-l19041 8 25.05.20 11:20 Сейчас в теме
(7)может поможет:
на управляемых формах у Элемента формы с типом динамический список есть два реквизита
АвтоОбновление = булево
ПериодАвтообновления - число
14. Salavat 15 25.05.20 11:44 Сейчас в теме
(11) за подсказку спасибо (проглядел я такое, да), но - оно не до конца решает, всёже.

Период, конечно можно установить в 1 сек, но - както это - не очень правильно получается.
(мне же ненадо, постоянно обновлять - надо, когда надо)
Хотя конечно да - решит задачу.

Похоже
ОповеститьОбИзменении(МойДокумент2.Ссылка);
- решение.

Только вот - как регистр сведений указать?
(какойто там - ключ записи... нужен)
5. VZyryanov 25.05.20 10:41 Сейчас в теме
В форме МойДокумент1

	ОповеститьОбИзменении(МойДокумент2.Ссылка);
	Оповестить("МойДокумент2Изменен",МойДокумент.Ссылка);


В форме МойДокумент2

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	Если ИмяСобытия="МойДокумент2" И Объект.Ссылка=Параметр Тогда
		ЭтаФорма.Прочитать();
	КонецЕсли;
	Если ИмяСобытия="МойДокумент2Удален" И Объект.Ссылка=Параметр Тогда
		ЭтаФорма.Закрыть();
	КонецЕсли;
КонецПроцедуры
Показать
8. Salavat 15 25.05.20 11:12 Сейчас в теме
(5)а если МойДокумент2 - не открыт?
Оповещение-то - не должно срабатывать.
(или - оно именно (в таком коде) - на открытые формы, срабатывает?)
10. VictorRGB2 14 25.05.20 11:19 Сейчас в теме
(8) обработка оповещения срабатывает только в открытых формах
12. VZyryanov 25.05.20 11:20 Сейчас в теме
(8) Код модуля формы работает, когда форма открыта. Если форма не открыта, то нечего обновлять.
Вызов ОповеститьОбИзменении это для обновления динамических списков.
13. Salavat 15 25.05.20 11:25 Сейчас в теме
(12)ок, а как в
 ОповеститьОбИзменении(МойДокумент2.Ссылка);
(похоже - всеголишь, это надо мне - сейчас) указать РегистрСведений?
В СинтаксПомошнике сказано "Имя Регистра" указать (на месте ссылки).

В каком виде?
(только имя - ошибку даёт)
15. davealone 165 25.05.20 11:55 Сейчас в теме
(13) Вот так попробуйте:

ОповеститьОбИзменении(Тип("РегистрСведенийКлючЗаписи.ИмяРегистраСведений"));
Oleg_nsk; lavash67; Salavat; +3 Ответить
16. Salavat 15 25.05.20 12:07 Сейчас в теме
(15)
ОповеститьОбИзменении(Тип("РегистрСведенийКлючЗаписи.ИмяРегистраСведений"));

Да - Спасибо!
(и остальные участники - тоже помогли!)
Это - именно то, что надо (без всяких выкрутасов)
17. slavik27 101 16.02.24 09:11 Сейчас в теме
Благодарю за вопрос и за ответ. Долго бился с проблемой тоже
Оставьте свое сообщение

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