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