SonarQube 1C (BSL) - Выпуск релиза 1.5


#1

1.5.0

Изменены проверки:

  • Исправлено позиционирование проверок запроса, когда текст модуля содержит комментарии
  • Исправлено определение переопределяемых общих модулей в проверке “Пустая процедура/функция”
  • Исправлено позиционирование проверки “Количество параметров процедуры/функции более 7”
  • Исправлено позиционирование проверки “Количество необязательных параметров процедуры/функции более 3”
  • Исправлено позиционирование проверки “Необязательные параметры процедуры/функции расположены перед обязательными”
  • Убрано ложное срабатывание проверки “Неиспользуемая процедура/функция”, когда вызываемый метод находится внутри сложного выражения
  • Убрано ложное срабатывание проверки “Сравнение с NULL в запросе должно быть только через ЕСТЬ NULL” на конструкции ДЛЯ ИЗМЕНЕНИЯ, блокирующей виртуальную таблицу
  • Проверка "В начале процедуры обработки регламентного задания отсутствует вызов метода “ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания();” (bsl:ACC_FUNC_302) объявлена устаревшей
  • Проверка “Ключевое слово написано не канонически.” (bsl:ACC_000000248) объявлена устаревшей

Добавлены проверки:

  • Каноническое написание ключевых слов (bsl:KeyWordNotCanonical)
    • имеет настройки:
      • Разрешить в написании логического оператора “Для каждого” заглавную букву “К”
      • Разрешить написание логических операторов “ИЛИ” и “НЕ” как “Или” и “Не”
  • Магические числа не должны использоваться (bsl:MagicNumber)
    • имеет настройки:
      • Разделенный запятыми список разрешенных чисел
      • Разделенный запятыми список процедур и функций, в которых разрешено использование “магических” чисел
  • Неиспользуемый параметр процедуры/функции (bsl:UnusedParameter)
    • имеет настройки:
      • Анализировать обработчики подписок на события
      • Анализировать переопределяемые общие модули
    • в режиме анализа конфигурации срабатывает только на общих модулях
  • Использование вложенных запросов в условии соединения (bsl:SubqueryWhere)
  • XPath правило языка запросов (bsl:XPathQuery) - шаблон правила на базе XPath для языка запросов

Изменения правил грамматики:

  • В грамматику запросов добавлена обработка упорядочивания и автоупорядичивания во вложенных запросах
  • В грамматику запросов добавлена обработка вложенной выборки из табличной части (ВЫБРАТЬ Документ.Реквизит, Таблица.ТЧ.(Поле1, Поле2))
  • В грамматику запросов добавлена обработка синонимов итоговых полей
  • Исправлена ошибка разбора запроса, содержащего конструкции ИНДЕКСИРОВАТЬ и ДЛЯ ИЗМЕНЕНИЯ в одном пакете
  • Исправлены ошибки разбора запроса, когда имя поля, получаемое через точку, совпадает с одним из ключевых слов языка запросов (например, Ссылка)
  • Исправлена ошибка конфликта конструкции ЕСТЬ NULL и последующего идентификатора
  • Анализатор запросов научился анализировать запросы, начинающиеся с литералов (ВЫБРАТЬ ИСТИНА КАК Поле1...)
  • В грамматику встроенного языка добавлено выделение используемых переменных в отдельный узел

#2

Для клиентов нашего облачного сонара: проверка на каноничность написания ключевых слов сейчас настроена вот так:

И хотя лично я очень “терпеть ненавижу”, когда ИЛИ и НЕ пишут не капсом, все же на типовых получается очень много срабатываний именно на этих ключевых словах (хоть это и нарушает стандарт).

Если потребуется модификация каких-либо настроек - как обычно в почту/саппорт.