Перем ТаблицаКонтекстов; //_____________________________________________________________________________ Функция Событие_ПриЗакрытии(Конт) Экспорт Перем ТипВидСписком, Объект; ТипВид = гл.ТипВид(Конт, ТипВидСписком); ТипОбъекта = ТипВидСписком.ПолучитьЗначение(1); Если ТипОбъекта = "Справочник" Тогда Если ТипВидСписком.ПолучитьЗначение(3) = "ФормаСписка" Тогда Объект = Конт.ТекущийЭлемент(); КонецЕсли; ИначеЕсли ТипОбъекта = "Журнал" Тогда Объект = Конт.ТекущийДокумент; КонецЕсли; Если ПустоеЗначение(Объект) = 0 Тогда СохранитьЗначение("Объект"+ТипВид, Объект); КонецЕсли; КонецФункции //Событие_ПриОткрытии //_____________________________________________________________________________ Функция Событие_ПриОткрытии(Конт) Экспорт Перем ТипВидСписком, Объект; ТипВид = гл.ТипВид(Конт, ТипВидСписком); ТипОбъекта = ТипВидСписком.ПолучитьЗначение(1); Если ТипОбъекта = "Справочник" Тогда Если ТипВидСписком.ПолучитьЗначение(3) = "ФормаСписка" Тогда Объект = Конт.ТекущийЭлемент(); КонецЕсли; ИначеЕсли ТипОбъекта = "Журнал" Тогда Объект = Конт.ТекущийДокумент; КонецЕсли; Если ПустоеЗначение(Объект) = 1 Тогда ТаблицаКонтекстов.НоваяСтрока(); ТаблицаКонтекстов.Контекст = Конт; ТаблицаКонтекстов.Объект = ВосстановитьЗначение("Объект"+ТипВид); КонецЕсли; КонецФункции //Событие_ПриОткрытии //_____________________________________________________________________________ Функция Событие_ПослеСозданияФормы(Конт) Экспорт Для нсТК = -ТаблицаКонтекстов.КоличествоСтрок() по -1 Цикл ТаблицаКонтекстов.ПолучитьСтрокуПоНомеру(-нсТК); Если ТипЗначения(ТаблицаКонтекстов.Контекст) <> 100 Тогда ТаблицаКонтекстов.УдалитьСтроку(-нсТК); Продолжить; ИначеЕсли ТаблицаКонтекстов.Контекст = Конт Тогда Конт.АктивизироватьОбъект(ТаблицаКонтекстов.Объект); ТаблицаКонтекстов.УдалитьСтроку(-нсТК); Прервать; КонецЕсли; КонецЦикла; КонецФункции //Событие_ПриОткрытии //_____________________________________________________________________________ Процедура Конструктор() ТаблицаКонтекстов = СоздатьОбъект("ТаблицаЗначений"); ТаблицаКонтекстов.НоваяКолонка("Контекст"); ТаблицаКонтекстов.НоваяКолонка("Объект"); гл.ДиспетчерСобытий.ДобавитьОбработчик(Контекст, "ПриОткрытии"); гл.ДиспетчерСобытий.ДобавитьОбработчик(Контекст, "ПослеСозданияФормы"); гл.ДиспетчерСобытий.ДобавитьОбработчик(Контекст, "ПриЗакрытии"); КонецПроцедуры