Class UnsafeFindByCodeDiagnostic

All Implemented Interfaces:
BSLDiagnostic, BSLParserVisitor<ParseTree>, ParseTreeVisitor<ParseTree>

Диагностика обнаруживает использование метода FindByCode() (или НайтиПоКоду()) для справочников, планов видов характеристик и планов счетов, у которых:
  • отключен контроль уникальности кода (CheckUnique = False)
  • или включены серии кодов не по всему объекту (CodeSeries не равно WHOLE_CATALOG)

В таких случаях использование метода FindByCode() может привести к непредсказуемому поведению, так как код может быть не уникальным в пределах всего объекта или могут существовать несколько элементов с одинаковым кодом в разных сериях.

Диагностика не срабатывает для объектов, у которых одновременно:

  • включен контроль уникальности кода (CheckUnique = True)
  • и серии кодов установлены для всего объекта (CodeSeries = WHOLE_CATALOG)

Примечание: значения WholeCharacteristicKind и WholeChartOfAccounts из XML метаданных преобразуются в WHOLE_CATALOG в enum CodeSeries, поэтому для всех типов объектов проверка выполняется на WHOLE_CATALOG.

Также диагностика не срабатывает для объектов метаданных, не являющихся справочниками, планами видов характеристик или планами счетов, а также если объект не найден в метаданных конфигурации.