|
программно открыть форму | ☑ | ||
---|---|---|---|---|
0
Prog_man
08.06.24
✎
09:41
|
Добрый день
вроде простой вопрос, но затупил нужно программно открыть форму, поменять значение и при закрытии оповестить основную форму. делаю так ПараметрыФормы = Новый Структура("Ключ", Объект.Ссылка); ОткрытьФорму("Документ.ПеремещениеТоваров.Форма.ФормаДокументаКомментарий", ПараметрыФормы, ЭтотОбъект); |
|||
1
Prog_man
08.06.24
✎
08:58
|
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы) Оповестить("ИзмененКомментарий"); КонецПроцедуры |
|||
2
Prog_man
08.06.24
✎
08:58
|
в отладчике в обработку оповещения не попадает, подскажите как поправить код?
|
|||
3
rphosts
08.06.24
✎
09:39
|
в процедуру где открываешь форму дабавь в вызов ОткрытьФорму "Новый Оповещение(....), ну и процедуру соответствующую разумеется
|
|||
4
Prog_man
08.06.24
✎
09:39
|
(3) процедура типовая,
|
|||
5
Prog_man
08.06.24
✎
09:39
|
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) //Вставка Если ИмяСобытия = "ИзмененКомментарий" Тогда КонецЕсли; //КонецВставки Если ИмяСобытия = "ОбработанаТабличнаяЧастьТовары" И ТипЗнч(Параметр) = Тип("Структура") И Параметр.Свойство("ИдентификаторВызывающейФормы") И Параметр.ИдентификаторВызывающейФормы = УникальныйИдентификатор Тогда ОбработкаОповещенияОбработкиТабличнойЧастиТоварыНаСервере(Параметр); ИначеЕсли ИмяСобытия = "ДанныеСкопированыВБуферОбмена" Тогда УстановитьДоступностьКомандыВставки(ЭтотОбъект, Истина); Иначе ОбщегоНазначенияБПКлиент.ОбработкаОповещенияФормыДокумента(ЭтаФорма, Объект.Ссылка, ИмяСобытия, Параметр, Источник); КонецЕсли; // Подсистема "ОбменСКонтрагентами". ПараметрыОповещения = ОбменСКонтрагентамиКлиент.ПараметрыОповещенияЭДО_ФормаДокумента(); ПараметрыОповещения.Форма = ЭтотОбъект; ПараметрыОповещения.ДокументСсылка = Объект.Ссылка; ПараметрыОповещения.КонтроллерСостояниеЭДО = Элементы.СостояниеЭДО; ПараметрыОповещения.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО; ОбменСКонтрагентамиКлиент.ОбработкаОповещения_ФормаДокумента(ИмяСобытия, Параметр, Источник, ПараметрыОповещения); // Конец подсистема "ОбменСКонтрагентами". СобытияФормИСКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник, Неопределено); КонецПроцедуры |
|||
6
Prog_man
08.06.24
✎
09:42
|
и для списка документов, при закрытии документа, этот код работает
//Вставка Если ИмяСобытия = "ИзмененКомментарий" Тогда Элементы.Список.Обновить(); КонецЕсли; //КонецВставки |
|||
7
Prog_man
08.06.24
✎
10:45
|
вот так получилось
&НаКлиенте Процедура мДобавитьКомментарий(Команда) ПараметрыФормы = Новый Структура("Ключ", Объект.Ссылка); Оповещение = Новый ОписаниеОповещения("мОбновитьФорму", ЭтотОбъект); ОткрытьФорму("Документ.ПеремещениеТоваров.Форма.ФормаДокументаКомментарий", ПараметрыФормы, ЭтотОбъект,,,,Оповещение,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); КонецПроцедуры &НаКлиенте Процедура мОбновитьФорму(Результат, ДополнительныеПараметры) Экспорт ЭтаФорма.Прочитать(); КонецПроцедуры |
|||
8
Chameleon1980
09.06.24
✎
17:16
|
(7) так в (3) еще сказали - читайте внимательней.
и откройте для себя рефакторинг в конфигураторе, который сделает все за вас, в данном случае. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |