Ban export global module variables (ExportVariables)¶
Type | Scope | Severity | Activated by default |
Minutes to fix |
Tags |
---|---|---|---|---|---|
Code smell |
BSL OS |
Major |
Yes |
5 |
standard design unpredictable |
Description¶
In most scenarios, we recommend that you do not use global variables and use other 1C:Enterprise script tools instead. Since monitoring the visibility (usage) areas of such variables is tricky, they often might cause issues that cannot be easily located.
Examples¶
Variable FileConversion Export;
Procedure BeforeWrite(Cancel)
If FileConversion Then
...
EndProcedure
We recommend that you use the AdditionalProperties object property for passing parameters between event subscription handlers and for passing parameters from external script to object module event handlers
Procedure BeforeWrite(Cancel)
If AdditionalProperties.Property("FileConversion") Then
...
EndProcedure
// script that calls the procedure
FileObject.AdditionalProperties.Insert("FileConversion", True);
FileObject.Write();
Sources¶
Standard: Using global variables in modules (RU)
Snippets¶
Diagnostic ignorance in code¶
// BSLLS:ExportVariables-off
// BSLLS:ExportVariables-on
Parameter for config¶
"ExportVariables": false