В очередной раз, на мой взгляд, возникает конфликт двух подходов. Ну или не конфликт, а различные варианты решения одних и тех же проблем.
В данном случае речь идет об обработке событий. Вот два варианта решения проблемы:
1. "Процедурный стиль", он же "Стиль 1С", он же, можно сказать, "стандартный подход". Все события валить в одно место, а там разберемся, что случилось. Вырожденный случай - одна процедура, которая принимает все виды событий.
2. "Объектно-ориентированный стиль", он же "Стиль ООП". У объекта есть набор методов, которые получают те или иные события. Обработку события ведет либо код объекта, либо код родительского класса. В некоторых языках слово "Метод" заменяют на "Событие", таким образом любое обращение к объекту для него является событием. (Это тоже можно расценивать как вырожденный случай).
Нужно сказать, что ни один из подходов не является панацеей. В любом случае можно навернуть такой код, что потом мало не покажется. И ошибки потом можно искать днями и неделями.
С другой стороны, при грамотном подходе и в процедурном стиле главная процедура, которая принимает все события, может все сразу раскладывать по полочкам и отделять возможные ситуации друг от друга, как это и происходит при правильном применении ООП-стиля. Но такое разделение происходит не сразу и далеко не у всех. Наоборот, сначала все хотят все свалить в одну кучу, а потом возникают структуры типа "Если .. ИначеЕсли .. ИначеЕсли .. ИначеЕсли .. ИначеЕсли .. Иначе .. КонецЕсли". (Желающие могут заглянуть в исходники 1С++.
Хотите узнать, как от этого избавиться - читайте книжку Мартина Фаулера "Рефакторинг".)
Но мне все же нравится ООП-стиль, так как в каждом классе (опять же, при правильном дизайне) видно чем он занимается, и как он обрабатывает события, а что отдает родителю.
Опять же, трафик в ветке ООП показывает, насколько (не)популярен стиль ООП у пользователей 1С++. Поэтому я не удивлюсь, если все скажут, что обязательно нужно сделать получение всех событий в глобальнике. И их нельзя за это винить, фирма 1С долго к этому приучала и продолжает приучать в v8.0 к процедурному стилю программирования.
Резюме. Я предпочитаю решение в ООП-стиле, причем хочу явно указывать, на какие события или группы событий я подписываю объект. Но, для желающих, возможно, нужно реализовать метод обработки событий в глобальнике. Главное, чтобы эти методы не конфликтовали.
А может быть сделать чтобы по умолчанию на события был подписан объект "Глобальный модуль"?