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

Использование методов "НайтиПоНаименованию", "НайтиПоКоду" и "НайтиПоНомеру" (UsingFindElementByString)

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Дефект кода BSL Важный Да 2 standard
badpractice
performance

Описание диагностики

Правило находит использование методов НайтиПоНаименованию, НайтиПоКоду или НайтиПоНомеру с указанием конкретных и уникальных номеров, кодов и названий элементов или документов. Скорее всего, подобный код не будет работать в других ИБ, что приведет к ошибкам выполнения. Возможно, в финальный код попал тестовый код, что также не рекомендовано.

Константные значения данных из ИБ рекомендуется указывать в константах ИБ, предопределенных элементах метаданных.

Примеры

Неправильно:

Должность = Справочники.Должности.НайтиПоНаименованию("Ведущий бухгалтер");
или
Должность = Справочники.Должности.НайтиПоКоду("00-0000001");

или

ОбъектНазначения = Документы.ПередачаТоваровМеждуОрганизациями.НайтиПоНомеру("0000-000001", ТекущаяДата());

Допустимо использование:

Справочники.Валюты.НайтиПоКоду(ТекущиеДанные.КодВалютыЦифровой);
Справочники.КлассификаторБанков.НайтиПоКоду(СведенияОБанке.БИК);

Документы.Реализация.НайтиПоНомеру(НомерДокумента);

Сниппеты

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

// BSLLS:UsingFindElementByString-off
// BSLLS:UsingFindElementByString-on

Параметр конфигурационного файла

"UsingFindElementByString": false