Обработчик события вне стандартной области (EventHandlerOutsideEventRegion)¶
| Тип | Поддерживаются языки |
Важность | Включена по умолчанию |
Время на исправление (мин) |
Теги |
|---|---|---|---|---|---|
Дефект кода |
BSL |
Информационный |
Да |
1 |
standard |
Описание диагностики¶
Метод, имя которого совпадает с именем платформенного события owner-типа модуля (например, ПриЗаписи в модуле объекта документа), является обработчиком события. По стандарту такие методы должны находиться внутри стандартной области:
- для объектных модулей и им подобных —
#Область ОбработчикиСобытий(#Region EventHandlers).
В модуле формы область зависит от того, кем обработчик объявлен в Form.xml:
| что обрабатывается | область |
|---|---|
| событие самой формы | #Область ОбработчикиСобытийФормы |
| событие элемента вне таблиц | #Область ОбработчикиСобытийЭлементовШапкиФормы |
| событие элемента таблицы (и самой таблицы) | #Область ОбработчикиСобытийЭлементовТаблицыФормы<ИмяТаблицы> |
| команда формы | #Область ОбработчикиКомандФормы |
EN-эквиваленты имён областей тоже принимаются. Если конфигурация недоступна и определить объявителя не удалось, подходит любая из перечисленных областей формы.
Диагностика срабатывает, если у такого метода нет родительской области или область не та, которая положена ему по стандарту.
Примеры¶
// Срабатывает: ПриЗаписи — платформенное событие, должно быть внутри ОбработчикиСобытий
#Область СлужебныеПроцедурыИФункции
Процедура ПриЗаписи(Отказ)
// ...
КонецПроцедуры
#КонецОбласти
// Не срабатывает:
#Область ОбработчикиСобытий
Процедура ПриЗаписи(Отказ)
// ...
КонецПроцедуры
#КонецОбласти
В модуле формы:
// Срабатывает: обработчик команды лежит в области событий формы
#Область ОбработчикиСобытийФормы
Процедура ЗаполнитьКоманда(Команда)
// ...
КонецПроцедуры
#КонецОбласти
// Не срабатывает:
#Область ОбработчикиКомандФормы
Процедура ЗаполнитьКоманда(Команда)
// ...
КонецПроцедуры
#КонецОбласти
Источники¶
Сниппеты¶
Экранирование кода¶
// BSLLS:EventHandlerOutsideEventRegion-off
// BSLLS:EventHandlerOutsideEventRegion-on
Параметр конфигурационного файла¶
"EventHandlerOutsideEventRegion": false