Выпущен новый релиз 1.21 SonarQube 1C (BSL) Plugin

1.21

Новые правила для языка запросов:

  • Отсутствие ЕстьNull для полей, полученных из результатов левого/правого соединения

Новые правила для кода 1С:

  • Несколько вызовов серверных методов внутри клиентского метода

    • заблаговременное предупреждение проблем производительности решения 1С у пользователей решения
  • Одинаковые блоки, следующие друг за другом

    • борьба с копипастом/дублированием кода

Значительно улучшено определение одинаковых выражений:

  • для продолжение борьбы с копипастом/дублированием кода

  • улучшено поведение правил + правила ускорены (фактически все правила переписаны)

    • «Сравнение выражения с самим собой»
    • «Одинаковый код во взаимоисключаемых ветках ветвления кода»
    • «Одинаковые условия в блоке “Если ИначеЕсли”»
    • «Одинаковые части условий в разных условиях блока “Если ИначеЕсли”»
  • добавлена поддержка новых операций для выявления схожества блоков кода

  • При проверке равенства выражений «сравнения, сложения, умножения, И, Или» не учитывается порядок выражений

    • например, А = Б теперь совпадает с Б = А, А + 10 + 20 совпадает с 20 + А + 10

Дополнительные правила для кода 1С:

  • Изменение итератора/счетчика цикла - предупреждение “глупых/странных” ошибок
  • Большое количество возвратов в методе - читабельность/понимаемость кода
  • Вложенные вызовы функций - читабельность/понимаемость кода

Клиентские обращения:

  • Исправлено - Редкая ошибка разбора BSL - передача “Знач” перед параметром функции
  • Доработано - Проблема с правилом Магические числа для функции и конструктора Цвет
  • Исправлено - Ложное определение строки как текста запроса
  • Исправлено - Ошибка правила “Возможно выполнение внешнего кода” - двойной показ замечания для Выполнить/Вычислить
- Правило значительно ускорено и полностью переписано.

Исправления:

  • Исправлен баг - при включенном флаге исключения файлов на поддержке (sonar.bsl.skipVendorSupportedObjects) не анализировались файлы не из конфигурации (внешние обработки)
- также добавлен показ предупреждения о том, что включен флаг исключения файлов на поддержке, в логе анализа
  • Исправлен баг с падением анализа на 1С 8.3.15 при расчете метрики “Когнитивная сложность”

Доработки:

  • Ускорена производительность анализа

  • Улучшена работа правила “Возможное использование неинициализированной переменной” - добавлена обработка некоторых, ранее пропущенных выражений

  • Увеличена до Critical важность правил

- "Одинаковые условия в последовательности вида Если (....) ИначеЕсли (....) ИначеЕсли (....)"
- Значение итератора не используется в цикле
- Удаление из коллекции внутри цикла по коллекции
  • Отмечены тегами безопасности все правила, в которых есть ссылки на misra, cwe, cert

  • Уточнены описания многих правил, также добавлены ссылки на мировые стандарты кода, в т.ч. и по безопасности.

4 Симпатий

:heart_eyes::heart_eyes::heart_eyes:

2 Симпатий

Ага, стараемся, такие веселые вещи находим в типовых и своих конфигурациях :slight_smile:

Примеры из БСП

2 Симпатий