Событие формы списка справочника при закрытии формы диалога элемента.
20.06.2008
15:18
#1
Платформа 7.7
Как поймать событие закрытия формы редактирования элемента справочника в контексте формы списка этого же спрвочника? Формы немодальные.
Смысл: пусть имеется справочник, например Контрагенты. Прямо в его форме списка я вставляю таблицу договоров, которая заполняется динамически. Открываем форму редактирования элемента (редактирование в форме диалога). Там есть аналогичная таблица (и не одна), в которой можно поредактировать договоры, поменять их названия, поудалять элементы, новые создить и т.п. Когда форма диалога закрывается, мы видим, что в форме списка табличка осталась неперезаполненной и актуализируется она после первого движения по списку элементов. Как ее обновить после закрытия фирмы диалога?
Как поймать событие закрытия формы редактирования элемента справочника в контексте формы списка этого же спрвочника? Формы немодальные.
Смысл: пусть имеется справочник, например Контрагенты. Прямо в его форме списка я вставляю таблицу договоров, которая заполняется динамически. Открываем форму редактирования элемента (редактирование в форме диалога). Там есть аналогичная таблица (и не одна), в которой можно поредактировать договоры, поменять их названия, поудалять элементы, новые создить и т.п. Когда форма диалога закрывается, мы видим, что в форме списка табличка осталась неперезаполненной и актуализируется она после первого движения по списку элементов. Как ее обновить после закрытия фирмы диалога?
24.06.2008
11:49
#2
"В общем, пока сделал через FormEx, если у кого мысли будут по реализации стандартным функционалом, пишите. Вот как оно на сегодняшний момент:
В форме списка:
Функция ЗаполнитьТаблицуДоговоров(ПринудительноОбновить=0)
...
КонецФункции
Процедура ПриОткрытии()
Форма.ОбработкаВыбораСтроки(1);
КонецПроцедуры
Процедура ПриВыбореСтроки()
ТекЭлемент=ТекущийЭлемент();
Если ПустоеЗначение(ТекЭлемент)=0 Тогда
СписокПараметров=СоздатьОбъект("СписокЗначений");
СписокПараметров.Установить("Контекст",Контекст);
ОткрытьФорму(ТекЭлемент,СписокПараметров,0);
КонецЕсли;
КонецПроцедуры
В форме элемента:
Процедура ПриЗакрытии()
Парам=Форма.Параметр;
Если ПустоеЗначение(Парам)=0 Тогда
Если ТипЗначенияСтр(Парам)="СписокЗначений" Тогда
Конт=Парам.Получить("Контекст");
Сервис=СоздатьОбъект("Сервис");
СписокАргументов=СоздатьОбъект("СписокЗначений");
СписокАргументов.ДобавитьЗначение(1);
Результат="""";
Сервис.ВыполнитьФункцию(Конт, "ЗаполнитьТаблицуДоговоров", СписокАргументов, Результат);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ключевое место - Сервис.ВыполнитьФункцию(...)"
В форме списка:
Функция ЗаполнитьТаблицуДоговоров(ПринудительноОбновить=0)
...
КонецФункции
Процедура ПриОткрытии()
Форма.ОбработкаВыбораСтроки(1);
КонецПроцедуры
Процедура ПриВыбореСтроки()
ТекЭлемент=ТекущийЭлемент();
Если ПустоеЗначение(ТекЭлемент)=0 Тогда
СписокПараметров=СоздатьОбъект("СписокЗначений");
СписокПараметров.Установить("Контекст",Контекст);
ОткрытьФорму(ТекЭлемент,СписокПараметров,0);
КонецЕсли;
КонецПроцедуры
В форме элемента:
Процедура ПриЗакрытии()
Парам=Форма.Параметр;
Если ПустоеЗначение(Парам)=0 Тогда
Если ТипЗначенияСтр(Парам)="СписокЗначений" Тогда
Конт=Парам.Получить("Контекст");
Сервис=СоздатьОбъект("Сервис");
СписокАргументов=СоздатьОбъект("СписокЗначений");
СписокАргументов.ДобавитьЗначение(1);
Результат="""";
Сервис.ВыполнитьФункцию(Конт, "ЗаполнитьТаблицуДоговоров", СписокАргументов, Результат);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ключевое место - Сервис.ВыполнитьФункцию(...)"
Читают тему
(гостей: 1)