|
УФ. Как обновить открытую форму документа после внешней обработки заполнения | ☑ | ||
---|---|---|---|---|
0
LevelUP
16.09.21
✎
12:05
|
Здравствуйте!
Пишу обработку заполнения документа. Вариант запуска "ОткрытьФорму" клиентский (надо взаимодействовать с пользователем). В коде обработки изменяю объект и записываю его. При закрытии обработки открытая форма документа без изменений. ОповеститьОбИзменении(ссылка); не помогло Вопрос: можно автоматически обновить форму документа? Было бы лучше вообще, конечно, не записывать объект, а изменения передать в открытую форму, а там пользователь уже, если захочет, запишет его. Но это, наверное, недостижимо в рамках внешних обработок заполнения. |
|||
1
assasu
16.09.21
✎
12:07
|
надо курить "КопироватьДанныеФормы"
|
|||
2
runoff_runoff
16.09.21
✎
12:56
|
(0) достижимо в рамках обработок заполнения в расширении..
|
|||
3
runoff_runoff
16.09.21
✎
12:57
|
(0) не верю.. если я пишу в обработке заполнения Объект.Контрагент = Вася.. то в исходной форме появляется Вася без всякого дополнительного обновления..
|
|||
4
DimaDmitriy
16.09.21
✎
16:15
|
Передавай при открытии обработки форму документа, как владельца формы.
А в обработке на клиенте напиши: ВладелецФормы.ОбновитьИнтерфейс(); |
|||
5
1Сергей
16.09.21
✎
16:16
|
Что за конфа-то?
|
|||
6
LevelUP
16.09.21
✎
18:54
|
(1) Можно примерчик в контексте темы?
|
|||
7
LevelUP
16.09.21
✎
18:55
|
(2) Да, если бы делал расширением, то подобных вопросов бы не возникло. Но в данном случае, почему-то, решил пойти именно через механизм дополнительных обработок.
|
|||
8
LevelUP
16.09.21
✎
18:57
|
(4) Там не передашь..
Сама конфа все передает, кроме ссылок ни о чем речи нет Вот с сайта ИТС: "для назначаемых отчетов и обработок – в форме обработки добавить параметр ОбъектыНазначения типа Произвольный. В этот параметр передается массив ссылок на объекты, для которых выполняется дополнительная обработка." |
|||
9
LevelUP
16.09.21
✎
18:59
|
(5) ЗУП КОРП 3
|
|||
10
LevelUP
16.09.21
✎
19:02
|
Так-то можно извратиться через ПолучитьОкна() например, и вызвать у найденной формы ххх.Обновить()
Думал, может там как-то проще можно, через какие-нибудь оповещения (не силен в них). |
|||
11
DimaDmitriy
16.09.21
✎
19:59
|
(10) Как вариант, только через: ПолучитьФорму().
Да и не такой уж это большой изврат - пару строк кода) |
|||
12
Гений 1С
гуру
16.09.21
✎
20:28
|
(0) недостижимо, у меня была тема
|
|||
13
rozer76
16.09.21
✎
21:49
|
В обработке оповещения
управляемой формы Расширение управляемой формы для справочника (Managed form extension for catalogs) - Прочитать (Read) Синтаксис: Прочитать() Описание: Обновляет объект управляемой формы. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент. |
|||
14
LevelUP
17.09.21
✎
09:35
|
(13) В этом случае все равно придется менять конфу или делать расширение.
|
|||
15
DimaDmitriy
17.09.21
✎
09:37
|
Есть решение, но, к сожалению, только для записанного объекта.
Простое ПолучитьФорму() - как оказалось, всегда возвращает новую форму, а не уже открытую. Для того, чтобы получить открытую форму придётся идти через ПолучитьОкна() и найти по заголовку нужный элемент. ОткрытыеОкна = ПолучитьОкна(); Для каждого Окно из ОткрытыеОкна Цикл Если НЕ СтрНайти(Окно.Заголовок,НаименованиеДокумента) = 0 Тогда ФормаЭлемента = Элемент.Содержимое[0]; КонецЕсли; КонецЦикла; В теории, можно отфильтровать по содержимому, найти там ссылку на документ. А потом просто вызываем метод формы: ФормаЭлемента.Прочитать(); Все это выполняется на клиенте. Только что проверил в ERP-шке, из внешней обработки - всё робит. |
|||
16
LevelUP
17.09.21
✎
09:45
|
(15) Да-да.
Я в (10) писал про ПолучитьОкна(), тоже был опыт фильтрования форм по заголовкам и по идентификаторам. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |