ИМХО, если метод проверки наличия метода
будет - никому от этого хуже не станет. На сегодняшний момент "Попытка" является единственным гарантированным методом определения. К сожалению, введя обработку исключений, в 1С не озаботились определением типа возникшего исключения. Потому нельзя сказать, возникло ли исключение потому что метода нет, или в самом методе ошибка. Наверно, именно это имели в виду предыдущие ораторы, когда орали на попытку.
Чтоб реабилитировать попытку и утиные интерфейсы, приведу контр-пример (считаем, что 1С++/формэкс у нас нет): необходимо выполнять некие действия над справочником/документом, действия выбираются из меню, меню вызывается по кнопке на форме. При этом часть действий одинаковая для объектов разного типа, часть - различная (например, справочник провести нельзя). Кнопка может располагаться в формах: документа, элемента справочника; а также в списках(журналах) - в последнем случае должны вызываться действия над текущей записью.
Так вот, логично было бы все это дело оформить как процедуру в ГМ, а в формы повставлять кнопку с ее вызовом с передачей контекста. Однако тут встает проблема определения допустимых действий: по типу-низя (ТипЗначения переданного контекста - ГрупповойКонтекст). Можно конечно еще одним параметром передать "что это" (но чем меньше параметров, тем лучше), или вообще сделать разные процедуры для разных форм (но тогда дублируем код для общих действий). Вот-тут то и подойдет "Попытка" как средство определения типа:
Попытка
Конт.НачалоИнтервала();
Объект=Конт.ТекущийДокумент;
ЭтоДок=1;
ЭтоСписок=1;
Исключение
Попытка
Объект=Конт.ТекущийДокумент();
ЭтоДок=1;
Исключение
Попытка
Объект=Конт.ТекущийЭлемент();
ЭтоСпр=1;
Исключение
ЭтоКакаяТоФигня=1;
Возврат;
КонецПопытки;
Попытка
Конт.ПолучитьОтбор();
ЭтоСписок=1;
Исключение
КонецПопытки;
КонецПопытки;
КонецПопытки;
Вот такая вот лесенка. Если ходит как утка и крякает, как утка - то это утка и есть. И значит плавать должна тоже.