|   |   | 
| 
 | программно открыть форму | ☑ | ||
|---|---|---|---|---|
| 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) еще сказали - читайте внимательней.
 и откройте для себя рефакторинг в конфигураторе, который сделает все за вас, в данном случае. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |