|
Как обновить ТЧ документа после события в ТЧ? (Управляемые формы) |
☑ |
0
Alexandr Novicov
23.10.19
✎
13:53
|
Имеем два объекта ОбъектДокумент1 и ОбъектДокумент2
У ОбъектДокумент1 есть ТабличнаяЧасть(ТЧ) с единственным реквизитом СсылкаДокумент2
Разместил ТЧ на форме и добавил поля
1. Поле ОбъектДокумент2
2. Поле ОбъектДокумент2.Реквизит1 (булево)
3. Поле ОбъектДокумент2.Реквизит2 (Строка)
4. Поле ОбъектДокумент2.Реквизит3 (Число)
двойным кликом по строке в ТЧ открывается эта самая СсылкаДокумент2(Объект)
Вносим изменения СсылкаДокумент2(Объект), закрываем документ СсылкаДокумент2(Объект) и вот тут вопрос:
Что сделать что бы событие закрытия документы СсылкаДокумент2(Объект) открытого через ТЧ документа ОбъектДокумент1 обновила ТЧ согласно внесённым изменениям.
&НаКлиенте
Процедура ТЧВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Док = Элементы.ТЧ.ТекущиеДанные.СсылкаДокумент2(Объект);
ОткрытьЗначение(Док);
КонецПроцедуры
|
|
1
Cyberhawk
23.10.19
✎
13:54
|
Прочитать()
|
|
2
Cyberhawk
23.10.19
✎
13:54
|
Но перед этим ОповеститьОбИзменении, чтобы кэш представлений ссылок сбросился
|
|
3
Alexandr Novicov
23.10.19
✎
13:58
|
(1) Это понятно, но в какой момент запустить? ОповеститьОбИзмении откуда и кого? получается что через ОткрытьЗначение(Док); Объекты друг о друге не знают
|
|
4
Жан Пердежон
23.10.19
✎
13:59
|
ПоказатьЗначение() - смотри первый параметр;
|
|
5
Cyberhawk
23.10.19
✎
14:00
|
(3) Можно открывать форму с передачей таблицы или поля ввода в качестве владельца
|
|
6
Alexandr Novicov
23.10.19
✎
15:05
|
Получилось, спасибо
1. В ОбъектДокумент1 процедура формы ОбработкаОповещения()
&НаКлиенте
Процедура ТЧВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ПоказатьЗначение(,Элементы.ТЧ.ТекущиеДанные.СсылкаДокумент2)
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "ОбъектИзменён" тогда
ЭтаФорма.Прочитать();
КонецЕсли;
КонецПроцедуры
2. В ОбъектДокумент2 процедура формы ПослеЗаписи(). Если ничего не меняли значит и не записываем, а значит и выполнять нету смысла.
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
Оповестить("ОбъектИзменён",ЭтаФорма);
КонецПроцедуры
|
|
7
Alexandr Novicov
23.10.19
✎
15:12
|
Попробовал оставил открытым документ2 и открыл документ1 из списка документов (Не из ТЧ объекта документ2), изменил Документ1, записал, перехожу в открытый ранее документ2 вижу что ТЧ обновлена. Получается оповещение выполняется всегда, без объявления владельца.
|
|
8
Жан Пердежон
23.10.19
✎
15:45
|
(6) всё неправильно
|
|
9
Alexandr Novicov
23.10.19
✎
16:57
|
(8) Всё работает, что не правильно?
|
|