Перейти к содержанию

Проверка, что функция является процедурой

Функция в реальности используется как процедура, возвращаемое значение никак не применяется. Либо возвращаемое значение не используется по ошибке. Также нужно учесть - Вызов некоторых функций не имеет смысла, если результат их работы не используется.

Например, вызов метода ПолучитьИзВременногоХранилища без использования его результата не имеет смысла.

Пример неточного кода:

Функция ВыполняюРаботу()
  //какой-то код
  Возврат 1;
КонецФункции

ВыполняюРаботу();

Возможно, код лучше исправить на

Процедура ВыполняюРаботу()
  //какой-то код
КонецПроцедуры

ВыполняюРаботу();

Или следующим образом

Функция ВыполняюРаботу()
  //какой-то код
  Возврат 1;
КонецПроцедуры

МоеЗначение = ВыполняюРаботу();
// использование полученного значения

Особенности

Из проверки исключены функции с ключевым словом Асинх / Async.

См. также

  • Согласно Common Weakness Enumeration, потенциальные ошибки, найденные с помощью этой диагностики, классифицируются как CWE-252.

Экранирование кода

// sonar:FuncIsAProc:off
// sonar:FuncIsAProc:on