Учебник 1С Как оповестить форму о событиях в другой форме
Для примера рассмотрим справочник "Страны Мира".
У этого справочника есть несколько форм, в том числе ФормаСписка и Классификатор. Грубо говоря в форме классификатора содержаться сведения о всех странах.
Из формы классификатора мы можем выбрать интересующую нас страну
и поместить её в ФормуСписка.
Как же одна форма узнает о том, что происходит в другой?
Рассмотрим обе формы. В Классификаторе нас будет интересовать событие "Выбор". Обратите внимание - это событие относится не к форме, а к основному реквизиту формы - таблице значений Классификатор.
А в ФормеСписка событие так же основного реквизита Список (тип ДинамическийСписок) "ОбработкаВыбора"
Процедура которая срабатывает при выборе из Классификатора называется КлассификаторВыбор.
Процедура КлассификаторВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
ВсеДанныеСтроки = Классификатор.НайтиПоИдентификатору(ВыбраннаяСтрока);
Если ВсеДанныеСтроки<>Неопределено Тогда
ДанныеСтроки = Новый Структура(ПоляКлассификатора);
ЗаполнитьЗначенияСвойств(ДанныеСтроки, ВсеДанныеСтроки);
ДанныеВыбора =ДанныеВыбораЭлементаКлассификатора(ДанныеСтроки);
ОповеститьОВыборе(ДанныеВыбора.Ссылка);
КонецЕсли;
КонецПроцедуры
Сообственно здесь нас интересует событие
ОповеститьОВыборе
Именно это событие закроет форму Классификатора и "сообщит" ФормеСписка, что выбор произведен.
В ФормеСписка же отработает событие ОбработкаВыбора с процедурой СписокОбработкаВыбора. Которая просто обновит список.
Процедура СписокОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Элементы.Список.Обновить();
КонецПроцедуры