Диагностические правила¶
Справочник генерируется из runtime-реестра onec-hbk-bsl. Код правила
ведёт на единственную страницу с описанием, примерами, настройкой и
способами подавления.
Идентификаторы¶
BSL###— основной стабильный код для вывода,select,ignore,onec-hbk-bsl.toml, SARIF/JSON и// noqa: BSL###.- Совместимый псевдоним можно использовать во входной конфигурации и
комментариях
// BSLLS:<RuleName>-off/on; вывод всегда используетBSL###. - Нумерация стабильна, но не обязана быть непрерывной.
Каталог¶
| Код | Псевдоним | По умолчанию | Уровень | Описание | Теги |
|---|---|---|---|---|---|
BSL001 |
ParseError |
Да | ERROR | Ошибка разбора исходного кода | syntax |
BSL002 |
MethodSize |
Да | ERROR | Ограничение на размер метода | size, brain-overload |
BSL003 |
NonExportMethodsInApiRegion |
Да | INFORMATION | Неэкспортные методы в областях ПрограммныйИнтерфейс и СлужебныйПрограммныйИнтерфейс | design, api |
BSL004 |
EmptyCodeBlock |
Да | ERROR | Пустой блок кода | error-handling |
BSL005 |
UsingHardcodeNetworkAddress |
Да | WARNING | Хранение ip-адресов в коде | security, hardware-related |
BSL006 |
UsingHardcodePath |
Да | WARNING | Хранение путей к файлам в коде | security, hardware-related |
BSL007 |
UnusedLocalVariable |
Да | WARNING | Неиспользуемая локальная переменная | unused |
BSL008 |
TooManyReturns |
Да | WARNING | Метод не должен содержать много возвратов | brain-overload |
BSL009 |
SelfAssign |
Да | WARNING | Присвоение переменной самой себе | suspicious |
BSL011 |
CognitiveComplexity |
Да | WARNING | Когнитивная сложность | brain-overload, complexity |
BSL012 |
UsingHardcodeSecretInformation |
Да | ERROR | Хранение конфиденциальной информации в коде | security, credentials |
BSL013 |
CommentedCode |
Да | WARNING | Закомментированный фрагмент кода | unused |
BSL014 |
LineLength |
Да | INFORMATION | Ограничение на длину строки | design |
BSL015 |
NumberOfOptionalParams |
Да | WARNING | Ограничение на количество не обязательных параметров метода | design, brain-overload |
BSL016 |
NonStandardRegion |
Да | INFORMATION | Нестандартные разделы модуля | convention |
BSL017 |
CommandModuleExportMethods |
Да | WARNING | Экспортные методы в модулях команд и общих команд | design |
BSL019 |
CyclomaticComplexity |
Да | WARNING | Цикломатическая сложность | brain-overload, complexity |
BSL020 |
NestedStatements |
Да | WARNING | Управляющие конструкции не должны быть вложены слишком глубоко | brain-overload |
BSL022 |
UsingModalWindows |
Да | WARNING | Использование модальных окон | deprecated, ui |
BSL023 |
UsingServiceTag |
Да | INFORMATION | Использование служебных тегов | convention |
BSL024 |
SpaceAtStartComment |
Да | INFORMATION | Пробел в начале комментария | convention, style |
BSL025 |
EmptyStatement |
Да | WARNING | Пустой оператор | syntax, convention |
BSL026 |
EmptyRegion |
Да | INFORMATION | Область не должна быть пустой | unused |
BSL027 |
UsingGoto |
Да | WARNING | Оператор "Перейти" не должен использоваться | design, brain-overload |
BSL028 |
MissingCodeTryCatchEx |
Да | INFORMATION | Конструкция "Попытка...Исключение...КонецПопытки" не содержит кода в исключении | error-handling, robustness |
BSL029 |
MagicNumber |
Да | INFORMATION | Магические числа | convention, readability |
BSL030 |
SemicolonPresence |
Да | INFORMATION | Выражение должно заканчиваться символом ";" | convention, style |
BSL031 |
NumberOfParams |
Да | WARNING | Ограничение на количество параметров метода | design, brain-overload |
BSL032 |
FunctionShouldHaveReturn |
Да | WARNING | Функция должна содержать возврат | suspicious, design |
BSL033 |
CreateQueryInCycle |
Да | WARNING | Выполнение запроса в цикле | performance, brain-overload |
BSL035 |
DuplicateStringLiteral |
Да | INFORMATION | Повторное использование строкового литерала | convention, readability |
BSL036 |
IfConditionComplexity |
Да | WARNING | Использование сложных выражений в условии оператора "Если" | brain-overload, complexity |
BSL039 |
NestedTernaryOperator |
Да | WARNING | Вложенный тернарный оператор | brain-overload, readability |
BSL040 |
UsingThisForm |
Да | INFORMATION | Использование устаревшего свойства "ЭтаФорма" | design, ui |
BSL041 |
DeprecatedMessage |
Да | WARNING | Ограничение на использование устаревшего метода "Сообщить" | deprecated, ui |
BSL042 |
UnusedLocalMethod |
Да | WARNING | Неиспользуемый локальный метод | design, api |
BSL047 |
MagicDate |
Да | INFORMATION | Магические даты | design, date-time |
BSL051 |
UnreachableCode |
Да | WARNING | Недостижимый код | suspicious, dead-code |
BSL052 |
IdenticalExpressions |
Да | WARNING | Одинаковые выражения слева и справа от "foo" оператора | suspicious, logic |
BSL054 |
ExportVariables |
Да | INFORMATION | Запрет экспортных глобальных переменных модуля | design, global-state |
BSL055 |
ConsecutiveEmptyLines |
Да | INFORMATION | Подряд идущие пустые строки | style, formatting |
BSL060 |
DoubleNegatives |
Да | WARNING | Двойные отрицания | brainoverload, badpractice |
BSL062 |
UnusedParameters |
Да | WARNING | Неиспользуемый параметр | unused, design |
BSL064 |
ProcedureReturnsValue |
Да | ERROR | Процедура не должна возвращать значение | correctness, design |
BSL065 |
MissingReturnedValueDescription |
Да | INFORMATION | Отсутствует описание возвращаемого значения функции | design, documentation |
BSL066 |
DeprecatedFind |
Да | WARNING | Использование устаревшего метода "Найти" | deprecated, compatibility |
BSL077 |
SelectTopWithoutOrderBy |
Да | WARNING | Использование 'ВЫБРАТЬ ПЕРВЫЕ' без 'УПОРЯДОЧИТЬ ПО' | performance, maintainability |
BSL097 |
DeprecatedCurrentDate |
Да | WARNING | Использование устаревшего метода "ТекущаяДата" | standard, deprecated, unpredictable |
BSL131 |
DuplicateRegion |
Да | INFORMATION | Повторяющиеся разделы модуля | style |
BSL148 |
AllFunctionPathMustHaveReturn |
Да | ERROR | Все возможные пути выполнения функции должны содержать оператор Возврат | error-handling, correctness |
BSL149 |
AssignAliasFieldsInQuery |
Да | INFORMATION | Назначение псевдонимов выбранным полям в запросе | convention, query |
BSL150 |
BadWords |
Да | WARNING | Запрещенные слова | convention |
BSL151 |
BeginTransactionBeforeTryCatch |
Да | ERROR | Нарушение правил работы с транзакциями для метода 'НачатьТранзакцию' | standard |
BSL152 |
CachedPublic |
Да | WARNING | Кеширование программного интерфейса | design, performance |
BSL153 |
CanonicalSpellingKeywords |
Да | INFORMATION | Каноническое написание ключевых слов | convention, style |
BSL154 |
CodeAfterAsyncCall |
Да | WARNING | После вызова асинхронного метода есть строки кода | async, correctness |
BSL155 |
CodeBlockBeforeSub |
Да | ERROR | Определения методов должны размещаться перед операторами тела модуля | error |
BSL156 |
CodeOutOfRegion |
Да | INFORMATION | Код расположен вне области | convention, structure |
BSL157 |
CommitTransactionOutsideTryCatch |
Да | ERROR | Нарушение правил работы с транзакциями для метода 'ЗафиксироватьТранзакцию' | transaction, error-handling |
BSL158 |
CommonModuleAssign |
Да | ERROR | Присвоение общему модулю | correctness, module |
BSL159 |
CommonModuleInvalidType |
Да | ERROR | Общий модуль недопустимого типа | design, module |
BSL160 |
CommonModuleMissingAPI |
Да | INFORMATION | Общий модуль должен иметь программный интерфейс | design, module, api |
BSL161 |
CommonModuleNameCached |
Да | INFORMATION | Пропущен постфикс "ПовтИсп" | convention, naming, module |
BSL162 |
CommonModuleNameClient |
Да | INFORMATION | Пропущен постфикс "Клиент" | convention, naming, module |
BSL163 |
CommonModuleNameClientServer |
Да | INFORMATION | Пропущен постфикс "КлиентСервер" | convention, naming, module |
BSL164 |
CommonModuleNameFullAccess |
Да | INFORMATION | Пропущен постфикс "ПолныеПрава" | convention, naming, module |
BSL165 |
CommonModuleNameGlobal |
Да | INFORMATION | Пропущен постфикс "Глобальный" | convention, naming, module |
BSL166 |
CommonModuleNameGlobalClient |
Да | INFORMATION | Глобальный модуль с постфиксом "Клиент" | convention, naming, module |
BSL167 |
CommonModuleNameServerCall |
Да | INFORMATION | Пропущен постфикс "ВызовСервера" | convention, naming, module |
BSL168 |
CommonModuleNameWords |
Да | INFORMATION | Нерекомендуемое имя общего модуля | convention, naming, module |
BSL169 |
CompilationDirectiveLost |
Да | ERROR | Директивы компиляции методов | correctness, directive |
BSL170 |
CompilationDirectiveNeedLess |
Да | INFORMATION | Лишняя директива компиляции | redundant, directive |
BSL171 |
CrazyMultilineString |
Да | INFORMATION | Безумные многострочные литералы | style, readability |
BSL172 |
DataExchangeLoading |
Да | WARNING | Отсутствует проверка признака ОбменДанными.Загрузка в обработчике событий объекта | correctness, data-exchange |
BSL173 |
DeletingCollectionItem |
Да | ERROR | Удаление элемента при обходе коллекции посредством оператора "Для каждого ... Из ... Цикл" | correctness, loop |
BSL174 |
DenyIncompleteValues |
Да | WARNING | Запрет незаполненных значений у измерений регистров | transaction, error-handling |
BSL175 |
DeprecatedAttributes8312 |
Да | INFORMATION | Устаревшие объекты платформы 8.3.12 | deprecated, compatibility |
BSL176 |
DeprecatedMethodCall |
Да | INFORMATION | Устаревшие методы не должны использоваться | deprecated |
BSL177 |
DeprecatedMethods8310 |
Да | INFORMATION | Использование устаревшего метода клиентского приложения | deprecated, compatibility |
BSL178 |
DeprecatedMethods8317 |
Да | INFORMATION | Использование устаревших глобальных методов платформы 8.3.17 | deprecated, compatibility |
BSL179 |
DeprecatedTypeManagedForm |
Да | WARNING | Устаревшее использование типа "УправляемаяФорма" | deprecated, ui |
BSL180 |
DisableSafeMode |
Да | WARNING | Отключение безопасного режима | security |
BSL181 |
DuplicatedInsertionIntoCollection |
Да | WARNING | Повторное добавление/вставка значений в коллекцию | correctness, suspicious |
BSL182 |
ExcessiveAutoTestCheck |
Да | INFORMATION | Избыточная проверка параметра АвтоТест | testing |
BSL183 |
ExecuteExternalCode |
Да | WARNING | Выполнение произвольного кода на сервере | security |
BSL184 |
ExecuteExternalCodeInCommonModule |
Да | WARNING | Выполнение произвольного кода в общем модуле на сервере | security, module |
BSL185 |
ExternalAppStarting |
Да | WARNING | Запуск внешних приложений | security |
BSL186 |
ExtraCommas |
Да | WARNING | Запятые без указания параметра в конце вызова метода | syntax, style |
BSL187 |
FieldsFromJoinsWithoutIsNull |
Да | WARNING | Отсутствие проверки на NULL для полей из присоединяемых таблиц | query, correctness |
BSL188 |
FileSystemAccess |
Да | WARNING | Доступ к файловой системе | security, compatibility |
BSL189 |
ForbiddenMetadataName |
Да | WARNING | Объекту метаданных присвоено запрещенное имя | naming, convention |
BSL190 |
FormDataToValue |
Да | WARNING | Использование метода ДанныеФормыВЗначение | performance, ui |
BSL191 |
FullOuterJoinQuery |
Да | WARNING | Использование конструкции "ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ" в запросах | query, design |
BSL192 |
FunctionNameStartsWithGet |
Да | INFORMATION | Имя функции не должно начинаться с "Получить" | naming, convention |
BSL193 |
FunctionOutParameter |
Да | WARNING | Исходящий параметр функции | design |
BSL194 |
FunctionReturnsSamePrimitive |
Да | ERROR | Функция всегда возвращает одно и то же примитивное значение | redundant, design |
BSL195 |
GetFormMethod |
Да | WARNING | Использование метода ПолучитьФорму | deprecated, ui |
BSL196 |
GlobalContextMethodCollision8312 |
Да | ERROR | Конфликт имен методов с методами глобального контекста | correctness, compatibility |
BSL197 |
IfElseDuplicatedCodeBlock |
Да | WARNING | Повторяющиеся блоки кода в синтаксической конструкции Если...Тогда...ИначеЕсли... | suspicious, duplicate |
BSL198 |
IfElseDuplicatedCondition |
Да | WARNING | Повторяющиеся условия в синтаксической конструкции Если...Тогда...ИначеЕсли... | suspicious, correctness |
BSL199 |
IfElseIfEndsWithElse |
Да | INFORMATION | Использование синтаксической конструкции Если...Тогда...ИначеЕсли... | design, robustness |
BSL200 |
IncorrectLineBreak |
Да | INFORMATION | Неправильный перенос выражения | style, convention |
BSL201 |
IncorrectUseLikeInQuery |
Да | WARNING | Некорректное использование 'ПОДОБНО' | query, correctness |
BSL202 |
IncorrectUseOfStrTemplate |
Да | ERROR | Неверное использование "СтрШаблон" | correctness |
BSL203 |
InternetAccess |
Да | WARNING | Обращение к Интернет-ресурсам | security |
BSL204 |
InvalidCharacterInFile |
Да | WARNING | Недопустимый символ | correctness, encoding |
BSL205 |
IsInRoleMethod |
Да | WARNING | Использование метода РольДоступна | security, access-control |
BSL206 |
JoinWithSubQuery |
Да | WARNING | Соединение с вложенными запросами | query, performance |
BSL207 |
JoinWithVirtualTable |
Да | WARNING | Соединение с виртуальными таблицами | query, performance |
BSL208 |
LatinAndCyrillicSymbolInWord |
Да | WARNING | Смешивание латинских и кириллических символов в одном идентификаторе | suspicious, naming |
BSL209 |
LogicalOrInJoinQuerySection |
Да | WARNING | Логическое 'ИЛИ' в соединениях запроса | query, performance |
BSL210 |
LogicalOrInTheWhereSectionOfQuery |
Да | WARNING | Использование логического "ИЛИ" в секции "ГДЕ" запроса | query, performance, standard |
BSL211 |
MetadataObjectNameLength |
Да | WARNING | Имена объектов метаданных не должны превышать допустимой длины наименования | naming, convention |
BSL212 |
MissedRequiredParameter |
Да | ERROR | Пропущен обязательный параметр метода | correctness |
BSL213 |
MissingCommonModuleMethod |
Да | ERROR | Обращение к отсутствующему методу общего модуля | correctness, module |
BSL214 |
MissingEventSubscriptionHandler |
Да | ERROR | Отсутствует обработчик подписки на событие | correctness, events |
BSL215 |
MissingParameterDescription |
Да | INFORMATION | Отсутствует описание параметров метода | documentation, api |
BSL216 |
MissingSpace |
Да | INFORMATION | Пропущены пробелы слева или справа от операторов + - * / = % < > <> <= >=, от ключевых слов, а так же справа от , и ; |
style, convention |
BSL217 |
MissingTempStorageDeletion |
Да | WARNING | Отсутствует удаление данных из временного хранилища после использования | resource-management, memory |
BSL218 |
MissingTemporaryFileDeletion |
Да | WARNING | Отсутствует удаление временного файла после использования | resource-management |
BSL219 |
MissingVariablesDescription |
Да | INFORMATION | Все объявления переменных должны иметь описание | documentation, convention |
BSL220 |
MultilineStringInQuery |
Да | INFORMATION | Многострочный литерал в запросе | query, style |
BSL221 |
MultilingualStringHasAllDeclaredLanguages |
Да | WARNING | Есть локализованный текст для всех заявленных в конфигурации языков | localization |
BSL222 |
MultilingualStringUsingWithTemplate |
Да | INFORMATION | Частично локализованный текст используется в функции СтрШаблон | localization, style |
BSL223 |
NestedConstructorsInStructureDeclaration |
Да | INFORMATION | Использование конструкторов с параметрами при объявлении структуры | readability, design |
BSL224 |
NestedFunctionInParameters |
Да | INFORMATION | Инициализация параметров методов и конструкторов вызовом вложенных методов | readability, brain-overload |
BSL225 |
NumberOfValuesInStructureConstructor |
Да | INFORMATION | Ограничение на количество значений свойств, передаваемых в конструктор структуры | design, readability |
BSL226 |
OSUsersMethod |
Да | WARNING | Использование метода ПользователиОС | security |
BSL227 |
OneStatementPerLine |
Да | INFORMATION | Одно выражение в одной строке | style, convention |
BSL228 |
OrderOfParams |
Да | WARNING | Порядок параметров метода | design, convention |
BSL229 |
OrdinaryAppSupport |
Да | WARNING | Поддержка обычного приложения | compatibility, ui |
BSL230 |
PairingBrokenTransaction |
Да | ERROR | Нарушение парности использования методов "НачатьТранзакцию()" и "ЗафиксироватьТранзакцию()" / "ОтменитьТранзакцию()" | transaction, correctness |
BSL231 |
PrivilegedModuleMethodCall |
Да | WARNING | Обращение к методам привилегированных модулей | security, access-control |
BSL232 |
ProtectedModule |
Да | INFORMATION | Защищенные модули | design |
BSL233 |
PublicMethodsDescription |
Да | INFORMATION | Все методы программного интерфейса должны иметь описание | documentation, api |
BSL234 |
QueryNestedFieldsByDot |
Да | WARNING | Разыменование ссылочных полей запроса через точку | query, performance |
BSL235 |
QueryParseError |
Да | WARNING | Ошибка разбора текста запроса | query, correctness |
BSL236 |
QueryToMissingMetadata |
Да | ERROR | Обращение к несуществующим метаданным в запросе | query, correctness |
BSL237 |
RedundantAccessToObject |
Да | INFORMATION | Избыточное обращение к объекту | redundant, performance |
BSL238 |
RefOveruse |
Да | INFORMATION | Избыточное использование "Ссылка" в запросе | performance, readability |
BSL239 |
ReservedParameterNames |
Да | WARNING | Зарезервированные имена параметров | naming, suspicious |
BSL240 |
RewriteMethodParameter |
Да | WARNING | Перезапись параметров метода | suspicious, correctness |
BSL241 |
SameMetadataObjectAndChildNames |
Да | ERROR | Совпадает имя объекта метаданного и его дочернего | naming, design |
BSL242 |
ScheduledJobHandler |
Да | ERROR | Обработчик регламентного задания | correctness, scheduled-jobs |
BSL243 |
SelfInsertion |
Да | ERROR | Вставка коллекции в саму себя | correctness, suspicious |
BSL244 |
ServerCallsInFormEvents |
Да | ERROR | Серверные вызовы в событиях форм | correctness, ui, performance |
BSL245 |
ServerSideExportFormMethod |
Да | WARNING | Серверный экспортный метод формы | correctness, ui |
BSL246 |
SetPermissionsForNewObjects |
Да | ERROR | Флажок «Устанавливать права для новых объектов» должен быть установлен только у роли ПолныеПрава | security, access-control |
BSL247 |
SetPrivilegedMode |
Да | WARNING | Использование привилегированного режима | security |
BSL248 |
SeveralCompilerDirectives |
Да | ERROR | Ошибочное указание нескольких директив компиляции | correctness, directive |
BSL249 |
StyleElementConstructors |
Да | ERROR | Конструктор элемента стиля | ui, design |
BSL250 |
TempFilesDir |
Да | WARNING | Вызов функции КаталогВременныхФайлов() | standard, badpractice |
BSL251 |
TernaryOperatorUsage |
Да | INFORMATION | Использование тернарного оператора | style, readability |
BSL252 |
ThisObjectAssign |
Да | ERROR | Присвоение значения свойству ЭтотОбъект | correctness, suspicious |
BSL253 |
TimeoutsInExternalResources |
Да | WARNING | Таймауты при работе с внешними ресурсами | robustness, performance |
BSL254 |
TransferringParametersBetweenClientAndServer |
Да | WARNING | Передача параметров между клиентом и сервером | performance, design |
BSL255 |
TryNumber |
Да | WARNING | Приведение к числу в попытке | error-handling, suspicious |
BSL256 |
Typo |
Да | INFORMATION | Опечатка | convention |
BSL257 |
UnaryPlusInConcatenation |
Да | ERROR | Унарный плюс в конкатенации строк | suspicious, brainoverload |
BSL258 |
UnionAll |
Да | WARNING | Использование ключевого слова "ОБЪЕДИНИТЬ" в запросах | query, performance |
BSL259 |
UnknownPreprocessorSymbol |
Да | WARNING | Неизвестный символ препроцессора | correctness, directive |
BSL260 |
UnsafeFindByCode |
Да | WARNING | Небезопасное использование метода НайтиПоКоду() | correctness, robustness |
BSL261 |
UnsafeSafeModeMethodCall |
Да | WARNING | Небезопасное использование функции БезопасныйРежим() | security, correctness |
BSL262 |
UsageWriteLogEvent |
Да | INFORMATION | Неверное использование метода "ЗаписьЖурналаРегистрации" | standard, badpractice |
BSL263 |
UseLessForEach |
Да | WARNING | Бесполезный перебор коллекции | redundant, suspicious |
BSL264 |
UseSystemInformation |
Да | WARNING | Использование системной информации | security |
BSL265 |
UselessTernaryOperator |
Да | INFORMATION | Бесполезный тернарный оператор | redundant, readability |
BSL266 |
UsingCancelParameter |
Да | WARNING | Работа с параметром "Отказ" | correctness, events |
BSL267 |
UsingExternalCodeTools |
Да | ERROR | Использование возможностей выполнения внешнего кода | standard, design |
BSL268 |
UsingFindElementByString |
Да | WARNING | Использование методов "НайтиПоНаименованию", "НайтиПоКоду" и "НайтиПоНомеру" | performance |
BSL269 |
UsingLikeInQuery |
Да | INFORMATION | Использование 'ПОДОБНО' в запросе | query, performance |
BSL271 |
UsingObjectNotAvailableUnix |
Да | WARNING | Использование объектов недоступных в Unix системах | compatibility |
BSL272 |
UsingSynchronousCalls |
Да | WARNING | Использование синхронных вызовов | performance, ui |
BSL273 |
VirtualTableCallWithoutParameters |
Да | WARNING | Обращение к виртуальной таблице без параметров | query, performance |
BSL274 |
WrongDataPathForFormElements |
Да | ERROR | У полей формы не указан путь к данным | correctness, ui |
BSL275 |
WrongHttpServiceHandler |
Да | ERROR | Неверно задан обработчик метода http-сервиса | correctness, http |
BSL276 |
WrongUseFunctionProceedWithCall |
Да | ERROR | Некорректное использование функции ПродолжитьВызов() | correctness, extensions |
BSL277 |
WrongUseOfRollbackTransactionMethod |
Да | ERROR | Некорректное использование метода ОтменитьТранзакцию() | transaction, error-handling |
BSL278 |
WrongWebServiceHandler |
Да | ERROR | Неверно задан обработчик операции web-сервиса | correctness, web-service |
BSL279 |
YoLetterUsage |
Да | INFORMATION | Использование буквы "ё" в текстах модулей | style, convention |