1.21
Новые правила для языка запросов:
- Отсутствие ЕстьNull для полей, полученных из результатов левого/правого соединения
Новые правила для кода 1С:
-
Несколько вызовов серверных методов внутри клиентского метода
- заблаговременное предупреждение проблем производительности решения 1С у пользователей решения
-
Одинаковые блоки, следующие друг за другом
- борьба с копипастом/дублированием кода
Значительно улучшено определение одинаковых выражений:
-
для продолжение борьбы с копипастом/дублированием кода
-
улучшено поведение правил + правила ускорены (фактически все правила переписаны)
- «Сравнение выражения с самим собой»
- «Одинаковый код во взаимоисключаемых ветках ветвления кода»
- «Одинаковые условия в блоке “Если ИначеЕсли”»
- «Одинаковые части условий в разных условиях блока “Если ИначеЕсли”»
-
добавлена поддержка новых операций для выявления схожества блоков кода
-
При проверке равенства выражений «сравнения, сложения, умножения, И, Или» не учитывается порядок выражений
- например,
А = Б
теперь совпадает сБ = А
,А + 10 + 20
совпадает с20 + А + 10
- например,
Дополнительные правила для кода 1С:
- Изменение итератора/счетчика цикла - предупреждение “глупых/странных” ошибок
- Большое количество возвратов в методе - читабельность/понимаемость кода
- Вложенные вызовы функций - читабельность/понимаемость кода
Клиентские обращения:
- Исправлено - Редкая ошибка разбора BSL - передача “Знач” перед параметром функции
- Доработано - Проблема с правилом Магические числа для функции и конструктора Цвет
- Исправлено - Ложное определение строки как текста запроса
- Исправлено - Ошибка правила “Возможно выполнение внешнего кода” - двойной показ замечания для Выполнить/Вычислить
- Правило значительно ускорено и полностью переписано.
Исправления:
- Исправлен баг - при включенном флаге исключения файлов на поддержке (sonar.bsl.skipVendorSupportedObjects) не анализировались файлы не из конфигурации (внешние обработки)
- также добавлен показ предупреждения о том, что включен флаг исключения файлов на поддержке, в логе анализа
- Исправлен баг с падением анализа на 1С 8.3.15 при расчете метрики “Когнитивная сложность”
Доработки:
-
Ускорена производительность анализа
-
Улучшена работа правила “Возможное использование неинициализированной переменной” - добавлена обработка некоторых, ранее пропущенных выражений
-
Увеличена до Critical важность правил
- "Одинаковые условия в последовательности вида Если (....) ИначеЕсли (....) ИначеЕсли (....)"
- Значение итератора не используется в цикле
- Удаление из коллекции внутри цикла по коллекции
-
Отмечены тегами безопасности все правила, в которых есть ссылки на misra, cwe, cert
-
Уточнены описания многих правил, также добавлены ссылки на мировые стандарты кода, в т.ч. и по безопасности.