Skip to content

Event handler outside standard region (EventHandlerOutsideEventRegion)

Type Scope Severity Activated
by default
Minutes
to fix
Tags
Code smell BSL Info Yes 1 standard

Description

A method whose name matches a platform event of the module's owner type (for example, OnWrite in a document object module) is treated as an event handler. By the BSL coding standard such methods must reside in the standard region:

  • for object and similar modules — #Region EventHandlers (#Область ОбработчикиСобытий);
  • for form modules — #Region FormEventHandlers, #Region FormHeaderItemsEventHandlers, #Region FormTableItemsEventHandlers<TableName> (plus their RU equivalents).

The diagnostic fires when such a method has no parent region or its region name differs.

Examples

// Fires: OnWrite is a platform event, must be inside EventHandlers
#Region Private

Procedure OnWrite(Cancel)
    // ...
EndProcedure

#EndRegion

// Does not fire:
#Region EventHandlers

Procedure OnWrite(Cancel)
    // ...
EndProcedure

#EndRegion

Sources

Snippets

Diagnostic ignorance in code

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

Parameter for config

"EventHandlerOutsideEventRegion": false