У каждого события должна быть назначена своя процедура-обработчик. Если одинаковые действия должны выполняться при возникновении событий в разных элементах формы следует:
- создать отдельную процедуру (функцию), выполняющую необходимые действия
- для каждого элемента формы создать отдельный обработчик с именем, назначаемым по умолчанию
- из каждого обработчика вызвать требуемую процедуру (функцию).
&НаКлиенте
Процедура ПоИсполнителюПриИзменении(Элемент)
ПараметрыОтбора = Новый Соответствие();
ПараметрыОтбора.Вставить("ПоАвтору", ПоАвтору);
ПараметрыОтбора.Вставить("ПоИсполнителю", ПоИсполнителю);
УстановитьОтборСписка(Список, ПараметрыОтбора);
КонецПроцедуры
&НаКлиенте
Процедура ПоАвторуПриИзменении(Элемент)
ПоИсполнителюПриИзменении(Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ПоИсполнителюПриИзменении(Элемент)
УстановитьОтбор();
КонецПроцедуры
&НаКлиенте
Процедура ПоАвторуПриИзменении(Элемент)
УстановитьОтбор();
КонецПроцедуры
&НаСервере
Процедура УстановитьОтбор()
ПараметрыОтбора = Новый Соответствие();
ПараметрыОтбора.Вставить("ПоАвтору", ПоАвтору);
ПараметрыОтбора.Вставить("ПоИсполнителю", ПоИсполнителю);
УстановитьОтборСписка(Список, ПараметрыОтбора);
КонецПроцедуры
Это требование обусловлено тем, что логически процедуры-обработчики событий не предназначены для использования в коде модуля, а вызываются непосредственно платформой. Смешение же этих двух сценариев в одной процедуре неоправданно усложняет ее логику и снижает ее устойчивость (вместо одного предусмотренного сценария вызова - по событию из платформы - код процедуры должен рассчитывать и на другие "прямые" вызовы из кода).