Skip to content

BSL160 — Common module should have a programming interface

Summary

Common module should have a programming interface

Identifiers

Field Value
Rule code BSL160
Compatible alias CommonModuleMissingAPI
Severity INFORMATION
Enabled by default Yes
Implemented Yes
Tags design, module, api

Behavior

  • The public identifier BSL160 and alias CommonModuleMissingAPI are stable.
  • The rule reports the cases documented on this page.
  • Suppressions and project configuration are applied before publication.
  • The rule requires neither an external analyzer nor network access.

Configuration and suppression

BSL### is the primary stable identifier. The compatible alias is accepted in select, ignore, and compatible block suppression comments.

[tool.onec-hbk-bsl]
select = ["BSL160"]
ignore = ["CommonModuleMissingAPI"]

All three suppression families support both a current line and a range. When an opening comment follows code, it affects only that line. Use any one form:

  • noqa:
Value = "example";  // noqa: BSL160
  • bsl-disable:
Value = "example";  // bsl-disable: BSL160
  • compatible BSLLS form:
Value = "example";  // BSLLS:CommonModuleMissingAPI-off

When the same opening comment is on a line by itself, it starts a range. Close it with the matching marker from the same family:

// noqa: BSL160
// code without this diagnostic
// noqa-enable: BSL160

// bsl-disable: BSL160
// code without this diagnostic
// bsl-enable: BSL160

// BSLLS:CommonModuleMissingAPI-off
// code without this diagnostic
// BSLLS:CommonModuleMissingAPI-on

To disable the rule until the end of the file, omit the closing noqa-enable, bsl-enable, or BSLLS:…-on marker.

Opening and closing markers must belong to the same family.

Description

A common module must have at least one export method and region "Public" or "Internal".

Examples

Incorrect

// Start module
Procedure Test(A)
    A = A + 1;
EndProcedure
// End module

Correct

// Start module
#Region Internal
Procedure Test(A) Export
    A = A + 1;
EndProcedure
#EndRegion
// End module

Sources

Source: Standard: Module structure (RU)