Использование методов "НайтиПоНаименованию", "НайтиПоКоду" и "НайтиПоНомеру" (UsingFindElementByString)¶
Тип | Поддерживаются языки |
Важность | Включена по умолчанию |
Время на исправление (мин) |
Теги |
---|---|---|---|---|---|
Дефект кода |
BSL |
Важный |
Да |
2 |
standard badpractice performance |
Описание диагностики¶
Правило находит использование методов НайтиПоНаименованию
, НайтиПоКоду
или НайтиПоНомеру
с указанием конкретных и
уникальных номеров, кодов и названий элементов или документов.
Скорее всего, подобный код не будет работать в других ИБ, что приведет к ошибкам выполнения.
Возможно, в финальный код попал тестовый код, что также не рекомендовано.
Константные значения данных из ИБ рекомендуется указывать в константах ИБ, предопределенных элементах метаданных.
Примеры¶
Неправильно:
Должность = Справочники.Должности.НайтиПоНаименованию("Ведущий бухгалтер");
Должность = Справочники.Должности.НайтиПоКоду("00-0000001");
или
ОбъектНазначения = Документы.ПередачаТоваровМеждуОрганизациями.НайтиПоНомеру("0000-000001", ТекущаяДата());
Допустимо использование:
Справочники.Валюты.НайтиПоКоду(ТекущиеДанные.КодВалютыЦифровой);
Справочники.КлассификаторБанков.НайтиПоКоду(СведенияОБанке.БИК);
Документы.Реализация.НайтиПоНомеру(НомерДокумента);
Сниппеты¶
Экранирование кода¶
// BSLLS:UsingFindElementByString-off
// BSLLS:UsingFindElementByString-on
Параметр конфигурационного файла¶
"UsingFindElementByString": false