Диагностики¶
Используются для проверки кода на соответствие стандартам кодирования и для поиска возможных ошибок.
Некоторые диагностики выключены по умолчанию. Для их включения используйте конфигурационный файл.
Для экранирования отдельных участков кода или файлов от срабатывания диагностик можно воспользоваться специальными комментариями вида // BSLLS:КлючДиагностики-выкл. Более подробно данная функциональность описана в Экранирование участков кода.
Список реализованных диагностик¶
Общее количество: 175
- Потенциальная уязвимость: 7
 - Уязвимость: 8
 - Ошибка: 55
 - Дефект кода: 105
 
| Ключ | Название | Включена по умолчанию | Важность | Тип | Теги | 
|---|---|---|---|---|---|
| AllFunctionPathMustHaveReturn | Все возможные пути выполнения функции должны содержать оператор Возврат | Да | Важный | Дефект кода | unpredictablebadpracticesuspicious | 
| AssignAliasFieldsInQuery | Назначение псевдонимов выбранным полям в запросе | Да | Важный | Дефект кода | standardsqlbadpractice | 
| BadWords | Запрещенные слова | Нет | Важный | Дефект кода | design | 
| BeginTransactionBeforeTryCatch | Нарушение правил работы с транзакциями для метода 'НачатьТранзакцию' | Да | Важный | Ошибка | standard | 
| CachedPublic | Кеширование программного интерфейса | Да | Важный | Дефект кода | standarddesign | 
| CanonicalSpellingKeywords | Каноническое написание ключевых слов | Да | Информационный | Дефект кода | standard | 
| CodeAfterAsyncCall | После вызова асинхронного метода есть строки кода | Нет | Важный | Дефект кода | suspicious | 
| CodeBlockBeforeSub | Определения методов должны размещаться перед операторами тела модуля | Да | Блокирующий | Ошибка | error | 
| CodeOutOfRegion | Код расположен вне области | Да | Информационный | Дефект кода | standard | 
| CognitiveComplexity | Когнитивная сложность | Да | Критичный | Дефект кода | brainoverload | 
| CommandModuleExportMethods | Экспортные методы в модулях команд и общих команд | Да | Информационный | Дефект кода | standardclumsy | 
| CommentedCode | Закомментированный фрагмент кода | Да | Незначительный | Дефект кода | standardbadpractice | 
| CommitTransactionOutsideTryCatch | Нарушение правил работы с транзакциями для метода 'ЗафиксироватьТранзакцию' | Да | Важный | Ошибка | standard | 
| CommonModuleAssign | Присвоение общему модулю | Да | Блокирующий | Ошибка | error | 
| CommonModuleInvalidType | Общий модуль недопустимого типа | Да | Важный | Ошибка | standardunpredictabledesign | 
| CommonModuleMissingAPI | Общий модуль должен иметь программный интерфейс | Да | Незначительный | Дефект кода | brainoverloadsuspicious | 
| CommonModuleNameCached | Пропущен постфикс "ПовтИсп" | Да | Важный | Дефект кода | standardbadpracticeunpredictable | 
| CommonModuleNameClient | Пропущен постфикс "Клиент" | Да | Незначительный | Дефект кода | standardbadpracticeunpredictable | 
| CommonModuleNameClientServer | Пропущен постфикс "КлиентСервер" | Да | Важный | Дефект кода | standardbadpracticeunpredictable | 
| CommonModuleNameFullAccess | Пропущен постфикс "ПолныеПрава" | Да | Важный | Потенциальная уязвимость | standardbadpracticeunpredictable | 
| CommonModuleNameGlobal | Пропущен постфикс "Глобальный" | Да | Важный | Дефект кода | standardbadpracticebrainoverload | 
| CommonModuleNameGlobalClient | Глобальный модуль с постфиксом "Клиент" | Да | Важный | Дефект кода | standard | 
| CommonModuleNameServerCall | Пропущен постфикс "ВызовСервера" | Да | Незначительный | Дефект кода | standardbadpracticeunpredictable | 
| CommonModuleNameWords | Нерекомендуемое имя общего модуля | Да | Информационный | Дефект кода | standard | 
| CompilationDirectiveLost | Директивы компиляции методов | Да | Важный | Дефект кода | standardunpredictable | 
| CompilationDirectiveNeedLess | Лишняя директива компиляции | Да | Важный | Дефект кода | clumsystandardunpredictable | 
| ConsecutiveEmptyLines | Подряд идущие пустые строки | Да | Информационный | Дефект кода | badpractice | 
| CrazyMultilineString | Безумные многострочные литералы | Да | Важный | Дефект кода | badpracticesuspiciousunpredictable | 
| CreateQueryInCycle | Выполнение запроса в цикле | Да | Критичный | Ошибка | performance | 
| CyclomaticComplexity | Цикломатическая сложность | Да | Критичный | Дефект кода | brainoverload | 
| DataExchangeLoading | Отсутствует проверка признака ОбменДанными.Загрузка в обработчике событий объекта | Да | Критичный | Ошибка | standardbadpracticeunpredictable | 
| DeletingCollectionItem | Удаление элемента при обходе коллекции посредством оператора "Для каждого ... Из ... Цикл" | Да | Важный | Ошибка | standarderror | 
| DenyIncompleteValues | Запрет незаполненных значений у измерений регистров | Нет | Важный | Дефект кода | badpractice | 
| DeprecatedAttributes8312 | Устаревшие объекты платформы 8.3.12 | Да | Информационный | Дефект кода | deprecated | 
| DeprecatedCurrentDate | Использование устаревшего метода "ТекущаяДата" | Да | Важный | Ошибка | standarddeprecatedunpredictable | 
| DeprecatedFind | Использование устаревшего метода "Найти" | Да | Незначительный | Дефект кода | deprecated | 
| DeprecatedMessage | Ограничение на использование устаревшего метода "Сообщить" | Да | Незначительный | Дефект кода | standarddeprecated | 
| DeprecatedMethodCall | Устаревшие методы не должны использоваться | Да | Незначительный | Дефект кода | deprecateddesign | 
| DeprecatedMethods8310 | Использование устаревшего метода клиентского приложения | Да | Информационный | Дефект кода | deprecated | 
| DeprecatedMethods8317 | Использование устаревших глобальных методов платформы 8.3.17 | Да | Информационный | Дефект кода | deprecated | 
| DeprecatedTypeManagedForm | Устаревшее использование типа "УправляемаяФорма" | Да | Информационный | Дефект кода | standarddeprecated | 
| DisableSafeMode | Отключение безопасного режима | Да | Важный | Уязвимость | suspicious | 
| DoubleNegatives | Двойные отрицания | Да | Важный | Дефект кода | brainoverloadbadpractice | 
| DuplicateRegion | Повторяющиеся разделы модуля | Да | Информационный | Дефект кода | standard | 
| DuplicateStringLiteral | Повторное использование строкового литерала | Да | Незначительный | Дефект кода | badpractice | 
| DuplicatedInsertionIntoCollection | Повторное добавление/вставка значений в коллекцию | Да | Важный | Дефект кода | brainoverloadsuspiciousbadpractice | 
| EmptyCodeBlock | Пустой блок кода | Да | Важный | Дефект кода | badpracticesuspicious | 
| EmptyRegion | Область не должна быть пустой | Да | Информационный | Дефект кода | standard | 
| EmptyStatement | Пустой оператор | Да | Информационный | Дефект кода | badpractice | 
| ExcessiveAutoTestCheck | Избыточная проверка параметра АвтоТест | Да | Незначительный | Дефект кода | standarddeprecated | 
| ExecuteExternalCode | Выполнение произвольного кода на сервере | Да | Критичный | Уязвимость | errorstandard | 
| ExecuteExternalCodeInCommonModule | Выполнение произвольного кода в общем модуле на сервере | Да | Критичный | Потенциальная уязвимость | badpracticestandard | 
| ExportVariables | Запрет экспортных глобальных переменных модуля | Да | Важный | Дефект кода | standarddesignunpredictable | 
| ExternalAppStarting | Запуск внешних приложений | Да | Важный | Уязвимость | suspicious | 
| ExtraCommas | Запятые без указания параметра в конце вызова метода | Да | Важный | Дефект кода | standardbadpractice | 
| FieldsFromJoinsWithoutIsNull | Отсутствие проверки на NULL для полей из присоединяемых таблиц | Нет | Критичный | Ошибка | sqlsuspiciousunpredictable | 
| FileSystemAccess | Доступ к файловой системе | Нет | Важный | Уязвимость | suspicious | 
| ForbiddenMetadataName | Объекту метаданных присвоено запрещенное имя | Да | Блокирующий | Ошибка | standardsqldesign | 
| FormDataToValue | Использование метода ДанныеФормыВЗначение | Да | Информационный | Дефект кода | badpractice | 
| FullOuterJoinQuery | Использование конструкции "ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ" в запросах | Да | Важный | Дефект кода | sqlstandardperformance | 
| FunctionNameStartsWithGet | Имя функции не должно начинаться с "Получить" | Нет | Информационный | Дефект кода | standard | 
| FunctionOutParameter | Исходящий параметр функции | Нет | Важный | Дефект кода | design | 
| FunctionReturnsSamePrimitive | Функция всегда возвращает одно и то же примитивное значение | Да | Важный | Ошибка | designbadpractice | 
| FunctionShouldHaveReturn | Функция должна содержать возврат | Да | Важный | Ошибка | suspiciousunpredictable | 
| GetFormMethod | Использование метода ПолучитьФорму | Да | Важный | Ошибка | error | 
| GlobalContextMethodCollision8312 | Конфликт имен методов с методами глобального контекста | Да | Блокирующий | Ошибка | errorunpredictable | 
| IdenticalExpressions | Одинаковые выражения слева и справа от "foo" оператора | Да | Важный | Ошибка | suspicious | 
| IfConditionComplexity | Использование сложных выражений в условии оператора "Если" | Да | Незначительный | Дефект кода | brainoverload | 
| IfElseDuplicatedCodeBlock | Повторяющиеся блоки кода в синтаксической конструкции Если...Тогда...ИначеЕсли... | Да | Незначительный | Дефект кода | suspicious | 
| IfElseDuplicatedCondition | Повторяющиеся условия в синтаксической конструкции Если...Тогда...ИначеЕсли... | Да | Важный | Дефект кода | suspicious | 
| IfElseIfEndsWithElse | Использование синтаксической конструкции Если...Тогда...ИначеЕсли... | Да | Важный | Дефект кода | badpractice | 
| IncorrectLineBreak | Неправильный перенос выражения | Да | Информационный | Дефект кода | standardbadpractice | 
| IncorrectUseLikeInQuery | Некорректное использование 'ПОДОБНО' | Да | Важный | Ошибка | standardsqlunpredictable | 
| IncorrectUseOfStrTemplate | Неверное использование "СтрШаблон" | Да | Блокирующий | Ошибка | brainoverloadsuspiciousunpredictable | 
| InternetAccess | Обращение к Интернет-ресурсам | Нет | Важный | Уязвимость | suspicious | 
| InvalidCharacterInFile | Недопустимый символ | Да | Важный | Ошибка | errorstandardunpredictable | 
| IsInRoleMethod | Использование метода РольДоступна | Да | Важный | Дефект кода | error | 
| JoinWithSubQuery | Соединение с вложенными запросами | Да | Важный | Дефект кода | sqlstandardperformance | 
| JoinWithVirtualTable | Соединение с виртуальными таблицами | Да | Важный | Дефект кода | sqlstandardperformance | 
| LatinAndCyrillicSymbolInWord | Смешивание латинских и кириллических символов в одном идентификаторе | Да | Незначительный | Дефект кода | brainoverloadsuspicious | 
| LineLength | Ограничение на длину строки | Да | Незначительный | Дефект кода | standardbadpractice | 
| LogicalOrInTheWhereSectionOfQuery | Использование логического "ИЛИ" в секции "ГДЕ" запроса | Да | Важный | Дефект кода | sqlperformancestandard | 
| MagicDate | Магические даты | Да | Незначительный | Дефект кода | badpracticebrainoverload | 
| MagicNumber | Магические числа | Да | Незначительный | Дефект кода | badpractice | 
| MetadataObjectNameLength | Имена объектов метаданных не должны превышать допустимой длины наименования | Да | Важный | Ошибка | standard | 
| MethodSize | Ограничение на размер метода | Да | Важный | Дефект кода | badpractice | 
| MissedRequiredParameter | Пропущен обязательный параметр метода | Да | Важный | Ошибка | error | 
| MissingCodeTryCatchEx | Конструкция "Попытка...Исключение...КонецПопытки" не содержит кода в исключении | Да | Важный | Ошибка | standardbadpractice | 
| MissingCommonModuleMethod | Обращение к отсутствующему методу общего модуля | Да | Блокирующий | Ошибка | error | 
| MissingEventSubscriptionHandler | Отсутствует обработчик подписки на событие | Да | Блокирующий | Ошибка | error | 
| MissingParameterDescription | Отсутствует описание параметров метода | Да | Важный | Дефект кода | standardbadpractice | 
| MissingReturnedValueDescription | Отсутствует описание возвращаемого значения функции | Да | Важный | Дефект кода | standardbadpractice | 
| MissingSpace | Пропущены пробелы слева или справа от операторов + - * / = % < > <> <= >=, от ключевых слов, а так же справа от , и ; | 
Да | Информационный | Дефект кода | badpractice | 
| MissingTempStorageDeletion | Отсутствует удаление данных из временного хранилища после использования | Нет | Критичный | Дефект кода | standardperformancebadpractice | 
| MissingTemporaryFileDeletion | Отсутствует удаление временного файла после использования | Да | Важный | Ошибка | badpracticestandard | 
| MissingVariablesDescription | Все объявления переменных должны иметь описание | Да | Незначительный | Дефект кода | standard | 
| MultilineStringInQuery | Многострочный литерал в запросе | Да | Критичный | Ошибка | badpracticesuspiciousunpredictable | 
| MultilingualStringHasAllDeclaredLanguages | Есть локализованный текст для всех заявленных в конфигурации языков | Да | Незначительный | Ошибка | errorlocalize | 
| MultilingualStringUsingWithTemplate | Частично локализованный текст используется в функции СтрШаблон | Да | Важный | Ошибка | errorlocalize | 
| NestedConstructorsInStructureDeclaration | Использование конструкторов с параметрами при объявлении структуры | Да | Незначительный | Дефект кода | badpracticebrainoverload | 
| NestedFunctionInParameters | Инициализация параметров методов и конструкторов вызовом вложенных методов | Да | Незначительный | Дефект кода | standardbrainoverloadbadpractice | 
| NestedStatements | Управляющие конструкции не должны быть вложены слишком глубоко | Да | Критичный | Дефект кода | badpracticebrainoverload | 
| NestedTernaryOperator | Вложенный тернарный оператор | Да | Важный | Дефект кода | brainoverload | 
| NonExportMethodsInApiRegion | Неэкспортные методы в областях ПрограммныйИнтерфейс и СлужебныйПрограммныйИнтерфейс | Да | Важный | Дефект кода | standard | 
| NonStandardRegion | Нестандартные разделы модуля | Да | Информационный | Дефект кода | standard | 
| NumberOfOptionalParams | Ограничение на количество не обязательных параметров метода | Да | Незначительный | Дефект кода | standardbrainoverload | 
| NumberOfParams | Ограничение на количество параметров метода | Да | Незначительный | Дефект кода | standardbrainoverload | 
| NumberOfValuesInStructureConstructor | Ограничение на количество значений свойств, передаваемых в конструктор структуры | Да | Незначительный | Дефект кода | standardbrainoverload | 
| OSUsersMethod | Использование метода ПользователиОС | Да | Критичный | Потенциальная уязвимость | suspicious | 
| OneStatementPerLine | Одно выражение в одной строке | Да | Незначительный | Дефект кода | standarddesign | 
| OrderOfParams | Порядок параметров метода | Да | Важный | Дефект кода | standarddesign | 
| OrdinaryAppSupport | Поддержка обычного приложения | Да | Важный | Дефект кода | standardunpredictable | 
| PairingBrokenTransaction | Нарушение парности использования методов "НачатьТранзакцию()" и "ЗафиксироватьТранзакцию()" / "ОтменитьТранзакцию()" | Да | Важный | Ошибка | standard | 
| ParseError | Ошибка разбора исходного кода | Да | Критичный | Ошибка | error | 
| PrivilegedModuleMethodCall | Обращение к методам привилегированных модулей | Да | Важный | Потенциальная уязвимость | suspicious | 
| ProcedureReturnsValue | Процедура не должна возвращать значение | Да | Блокирующий | Ошибка | error | 
| ProtectedModule | Защищенные модули | Да | Важный | Дефект кода | badpracticesuspicious | 
| PublicMethodsDescription | Все методы программного интерфейса должны иметь описание | Да | Информационный | Дефект кода | standardbrainoverloadbadpractice | 
| QueryParseError | Ошибка разбора текста запроса | Да | Важный | Дефект кода | standardsqlbadpractice | 
| QueryToMissingMetadata | Обращение к несуществующим метаданным в запросе | Да | Блокирующий | Ошибка | suspicioussql | 
| RedundantAccessToObject | Избыточное обращение к объекту | Да | Информационный | Дефект кода | standardclumsy | 
| RefOveruse | Избыточное использование "Ссылка" в запросе | Да | Важный | Дефект кода | sqlperformance | 
| ReservedParameterNames | Зарезервированные имена параметров | Да | Важный | Дефект кода | standardbadpractice | 
| RewriteMethodParameter | Перезапись параметров метода | Да | Важный | Дефект кода | suspicious | 
| SameMetadataObjectAndChildNames | Совпадает имя объекта метаданного и его дочернего | Да | Критичный | Ошибка | standardsqldesign | 
| ScheduledJobHandler | Обработчик регламентного задания | Да | Критичный | Ошибка | error | 
| SelectTopWithoutOrderBy | Использование 'ВЫБРАТЬ ПЕРВЫЕ' без 'УПОРЯДОЧИТЬ ПО' | Да | Важный | Дефект кода | standardsqlsuspicious | 
| SelfAssign | Присвоение переменной самой себе | Да | Важный | Ошибка | suspicious | 
| SelfInsertion | Вставка коллекции в саму себя | Да | Важный | Ошибка | standardunpredictableperformance | 
| SemicolonPresence | Выражение должно заканчиваться символом ";" | Да | Незначительный | Дефект кода | standardbadpractice | 
| ServerSideExportFormMethod | Серверный экспортный метод формы | Да | Блокирующий | Ошибка | errorunpredictablesuspicious | 
| SetPermissionsForNewObjects | Флажок «Устанавливать права для новых объектов» должен быть установлен только у роли ПолныеПрава | Да | Критичный | Уязвимость | standardbadpracticedesign | 
| SetPrivilegedMode | Использование привилегированного режима | Да | Важный | Потенциальная уязвимость | suspicious | 
| SeveralCompilerDirectives | Ошибочное указание нескольких директив компиляции | Да | Критичный | Ошибка | unpredictableerror | 
| SpaceAtStartComment | Пробел в начале комментария | Да | Информационный | Дефект кода | standard | 
| StyleElementConstructors | Конструктор элемента стиля | Да | Незначительный | Ошибка | standardbadpractice | 
| TempFilesDir | Вызов функции КаталогВременныхФайлов() | Да | Важный | Дефект кода | standardbadpractice | 
| TernaryOperatorUsage | Использование тернарного оператора | Нет | Незначительный | Дефект кода | brainoverload | 
| ThisObjectAssign | Присвоение значения свойству ЭтотОбъект | Да | Блокирующий | Ошибка | error | 
| TimeoutsInExternalResources | Таймауты при работе с внешними ресурсами | Да | Критичный | Ошибка | unpredictablestandard | 
| TooManyReturns | Метод не должен содержать много возвратов | Нет | Незначительный | Дефект кода | brainoverload | 
| TransferringParametersBetweenClientAndServer | Передача параметров между клиентом и сервером | Да | Важный | Дефект кода | badpracticeperformancestandard | 
| TryNumber | Приведение к числу в попытке | Да | Важный | Дефект кода | standard | 
| Typo | Опечатка | Да | Информационный | Дефект кода | badpractice | 
| UnaryPlusInConcatenation | Унарный плюс в конкатенации строк | Да | Блокирующий | Ошибка | suspiciousbrainoverload | 
| UnionAll | Использование ключевого слова "ОБЪЕДИНИТЬ" в запросах | Да | Незначительный | Дефект кода | standardsqlperformance | 
| UnknownPreprocessorSymbol | Неизвестный символ препроцессора | Да | Критичный | Ошибка | standarderror | 
| UnreachableCode | Недостижимый код | Да | Незначительный | Ошибка | designsuspicious | 
| UnsafeSafeModeMethodCall | Небезопасное использование функции БезопасныйРежим() | Да | Блокирующий | Ошибка | deprecatederror | 
| UnusedLocalMethod | Неиспользуемый локальный метод | Да | Важный | Дефект кода | standardsuspiciousunused | 
| UnusedLocalVariable | Неиспользуемая локальная переменная | Да | Важный | Дефект кода | brainoverloadbadpracticeunused | 
| UnusedParameters | Неиспользуемый параметр | Да | Важный | Дефект кода | designunused | 
| UsageWriteLogEvent | Неверное использование метода "ЗаписьЖурналаРегистрации" | Да | Информационный | Дефект кода | standardbadpractice | 
| UseLessForEach | Бесполезный перебор коллекции | Да | Критичный | Ошибка | clumsy | 
| UseSystemInformation | Использование системной информации | Нет | Критичный | Потенциальная уязвимость | suspicious | 
| UsingCancelParameter | Работа с параметром "Отказ" | Да | Важный | Дефект кода | standardbadpractice | 
| UsingExternalCodeTools | Использование возможностей выполнения внешнего кода | Да | Критичный | Потенциальная уязвимость | standarddesign | 
| UsingFindElementByString | Использование методов "НайтиПоНаименованию", "НайтиПоКоду" и "НайтиПоНомеру" | Да | Важный | Дефект кода | standardbadpracticeperformance | 
| UsingGoto | Оператор "Перейти" не должен использоваться | Да | Критичный | Дефект кода | standardbadpractice | 
| UsingHardcodeNetworkAddress | Хранение ip-адресов в коде | Да | Критичный | Уязвимость | standard | 
| UsingHardcodePath | Хранение путей к файлам в коде | Да | Критичный | Ошибка | standard | 
| UsingHardcodeSecretInformation | Хранение конфиденциальной информации в коде | Да | Критичный | Уязвимость | standard | 
| UsingLikeInQuery | Использование 'ПОДОБНО' в запросе | Нет | Важный | Ошибка | sqlunpredictable | 
| UsingModalWindows | Использование модальных окон | Да | Важный | Дефект кода | standard | 
| UsingObjectNotAvailableUnix | Использование объектов недоступных в Unix системах | Да | Критичный | Ошибка | standardlockinos | 
| UsingServiceTag | Использование служебных тегов | Да | Информационный | Дефект кода | badpractice | 
| UsingSynchronousCalls | Использование синхронных вызовов | Да | Важный | Дефект кода | standard | 
| UsingThisForm | Использование устаревшего свойства "ЭтаФорма" | Да | Незначительный | Дефект кода | standarddeprecated | 
| VirtualTableCallWithoutParameters | Обращение к виртуальной таблице без параметров | Да | Важный | Ошибка | sqlstandardperformance | 
| WrongDataPathForFormElements | У полей формы не указан путь к данным | Да | Критичный | Ошибка | unpredictable | 
| WrongHttpServiceHandler | Неверно задан обработчик метода http-сервиса | Да | Критичный | Ошибка | suspiciouserror | 
| WrongUseFunctionProceedWithCall | Некорректное использование функции ПродолжитьВызов() | Да | Блокирующий | Ошибка | errorsuspicious | 
| WrongUseOfRollbackTransactionMethod | Некорректное использование метода ОтменитьТранзакцию() | Да | Критичный | Ошибка | standard | 
| WrongWebServiceHandler | Неверно задан обработчик операции web-сервиса | Да | Критичный | Ошибка | suspiciouserror | 
| YoLetterUsage | Использование буквы "ё" в текстах модулей | Да | Информационный | Дефект кода | standard |