Перейти к содержанию

Обработчик события вне стандартной области (EventHandlerOutsideEventRegion)

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Дефект кода BSL Информационный Да 1 standard

Описание диагностики

Метод, имя которого совпадает с именем платформенного события owner-типа модуля (например, ПриЗаписи в модуле объекта документа), является обработчиком события. По стандарту такие методы должны находиться внутри стандартной области:

  • для объектных модулей и им подобных — #Область ОбработчикиСобытий (#Region EventHandlers).

В модуле формы область зависит от того, кем обработчик объявлен в Form.xml:

что обрабатывается область
событие самой формы #Область ОбработчикиСобытийФормы
событие элемента вне таблиц #Область ОбработчикиСобытийЭлементовШапкиФормы
событие элемента таблицы (и самой таблицы) #Область ОбработчикиСобытийЭлементовТаблицыФормы<ИмяТаблицы>
команда формы #Область ОбработчикиКомандФормы

EN-эквиваленты имён областей тоже принимаются. Если конфигурация недоступна и определить объявителя не удалось, подходит любая из перечисленных областей формы.

Диагностика срабатывает, если у такого метода нет родительской области или область не та, которая положена ему по стандарту.

Примеры

// Срабатывает: ПриЗаписи — платформенное событие, должно быть внутри ОбработчикиСобытий
#Область СлужебныеПроцедурыИФункции

Процедура ПриЗаписи(Отказ)
    // ...
КонецПроцедуры

#КонецОбласти

// Не срабатывает:
#Область ОбработчикиСобытий

Процедура ПриЗаписи(Отказ)
    // ...
КонецПроцедуры

#КонецОбласти

В модуле формы:

// Срабатывает: обработчик команды лежит в области событий формы
#Область ОбработчикиСобытийФормы

Процедура ЗаполнитьКоманда(Команда)
    // ...
КонецПроцедуры

#КонецОбласти

// Не срабатывает:
#Область ОбработчикиКомандФормы

Процедура ЗаполнитьКоманда(Команда)
    // ...
КонецПроцедуры

#КонецОбласти

Источники

Сниппеты

Экранирование кода

// BSLLS:EventHandlerOutsideEventRegion-off
// BSLLS:EventHandlerOutsideEventRegion-on

Параметр конфигурационного файла

"EventHandlerOutsideEventRegion": false