новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Обсуждение к материалу: Подписка на событие "ОбработкаПолученияФормы" для обычных форм

    • #1
    • 26.02.2013 20:08
    0
    В последних версия платформы 1С:Предприятие 8.2 появилась возможность отлавливать событие получения формы объектов информационной базы. Одна беда - подписка на событие "ОбработкаПолученияФормы" работает только для управляемых форм. Конфигурации, основная работа которых осуществляется в обычном приложении, не могут использовать данный функционал стандартным образом. Но все же есть способ отловить событие получения обычной формы...  Подробнее>>
    • #2
    • 27.02.2013 00:09
    0
    Начислено 1000 рублей в рамках акции
    • #3
    • 27.02.2013 11:29
    • Отредактировано: 27.02.2013 12:33:07
    0
    Не понял только зачем использовать механизм перехвата события получения формы? Можно и в новой управляемой форме при открытии написать:
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
        #Если ТолстыйКлиентОбычноеПриложение Тогда
        Об=ДанныеФормыВЗначение(Объект,Тип("СправочникОбъект.Банки"));
    	ФормаЭлемента = Об.ПолучитьФорму("ФормаЭлемента");
    //.............................
    	ФормаЭлемента.Открыть();
    	Отказ=Истина;
    	#КонецЕсли
    КонецПроцедуры

    Можно даже с неуправляемой формой так сделать, и тогда не надо включать режим поддержки тонких форм в толстом приложении.
    В чем преимущество добавления нового модуля и новой подписки?
    • #4
    • 27.02.2013 15:32
    0
    Можно и при при открытии, но преимущество подхода с перехватом получения формы: мы можем не снимать с поддержки типовую форму.

    Форма будет изменяться в обработчике подписки на событие, а не в модуле самой формы. Соответственно, форма останется на полной поддержке.
    • #5
    • 27.02.2013 17:19
    0
    Все равно не понял разницы. Мы так же оставляем форму на поддержке. Просто в новой, нами добавленной форме, которую мы укажем основной, при открытии пишем текст, который мы вынесли в отдельную процедуру общего модуля. Так что разницы не вижу пока.
    • #6
    • 27.02.2013 19:10
    0
    Отлавливая событие можно изменить стандартное поведение.

    Например, проверять ... права пользователя и выбирать другую форму для открытия. Множество вариантов применения.

    Эта же статья говорила о способе отлавливать событие "ОбработкаПолученияФормы" для обычных форм. Стандартными средствами платформа не позволяет это делать.

    Сам модифицирую формы также из процедуры общего модуля, вызываемой в событии "ПередОткрытием" для обычных форм. Для управляемых использую именно подписку на событие, так как тогда упрощается разработка: не нужно вставлять в каждую измененнную форму программный код вызова общего модуля.

    Тем более при групповой разработке намного удобней, когда код находится в едином месте, с единой логикой.

    При обновлении никакого кода не нужно переносить в форму, если типовая была изменена. Так что не понимаю, почему Вы не понимаете =)
    • #7
    • 27.02.2013 19:12
    0
    В вашем коде вы говорите, что добавляете код в событие при открытии. А это не хорошо...

    Правильней было бы использовать процедуру "ПриСозданииНаСервере", т.к. если вы меняете видимость элементов, например, это вызывает перерисовку формы и излишние обращения к серверу (в тонком клиенте особенно заметно), т.к. "ПриОткрытии" выполняется на клиенте.

    Можете сами проверить штатными инструментами замера производительности.
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться