Правило. Проверка наименование переменных на разных уровнях видимости

sonar-bsl-plugin

#1

Добрый день. Только что столкнулся с ошибкой и потратил пару минут на решение.
Модуль объекта.
Название переменной модуля и переменной функции совпадало. Естественно в функции не было объявления переменной. В итоге была испорчена переменная модуля.
Особенно страшно это для обычных форм.

Есть ли правило в Sonar, чтобы такое отлавливать?


Обсудить: Правила по неверной инициализации глобальных переменных и реквизитов формы
#2

пример кода моешь скинуть, я с текста не понял. насколько я помню да - может. Но я хотел бы проверить точно.


#3

Упрощенно так.

Перем Маркеры Экспорт;

Функция ПрочитатьМаркерыИзФайла(ИмяФайла) Экспорт
Маркеры = Новый ТабличныйДокумент;
Возврат Маркеры;
КонецФункции;


#4

Ага, сам с подобным столкнулся.
Я только что создал тему

https://xdd.silverbulleters.org/t/obsudit-pravila-po-nevernoj-iniczializaczii-globalnyh-peremennyh-i-rekvizitov-formy/2534/2


#5

@KrapivinAndrey а

А как отличить твой код от нормального кода инициализации глобальной переменной?
я пока простого пути не вижу :frowning:


#6

Понимаю что никак. Но я бы предпочел в этом месте получить ложно-позитивное срабатывание, чем разбираться с багами далеко не очевидными.

Я понимаю что глобальные переменные зло. Но в данном случае, в переменной кэш хранился.


#7

Соглашусь, что ложно-позитивное срабатывание для глобальных переменных не так страшно.
Множества их инициализаций все равно не будет.