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

BSL225 — Ограничение на количество значений свойств, передаваемых в конструктор структуры

Кратко

Ограничение на количество значений свойств, передаваемых в конструктор структуры

Идентификаторы

Поле Значение
Код правила BSL225
Совместимый псевдоним NumberOfValuesInStructureConstructor
Серьёзность INFORMATION
Включено по умолчанию Да
Реализовано Да
Теги design, readability

Поведение

  • Публичный идентификатор BSL225 и псевдоним NumberOfValuesInStructureConstructor стабильны.
  • Правило сообщает о случаях, описанных на этой странице.
  • Подавления и проектная конфигурация применяются до публикации результата.
  • Для выполнения правила не требуется внешний анализатор или сетевой доступ.

Настройка и подавление

Код BSL### — основной стабильный идентификатор. Совместимый псевдоним принимается в select, ignore и совместимых блоковых комментариях.

[tool.onec-hbk-bsl]
select = ["BSL225"]
ignore = ["NumberOfValuesInStructureConstructor"]

Все три семейства подавлений работают для текущей строки и диапазона. Если открывающий комментарий стоит после кода, он действует только на эту строку. Используйте любой один вариант:

  • noqa:
Значение = "пример";  // noqa: BSL225
  • bsl-disable (совместимый вариант):
Значение = "пример";  // bsl-disable: BSL225
  • совместимый BSLLS-вариант:
Значение = "пример";  // BSLLS:NumberOfValuesInStructureConstructor-off

Если тот же открывающий комментарий стоит на отдельной строке, он начинает диапазон. Закройте его парным маркером того же семейства:

// noqa: BSL225
// код без этой диагностики
// noqa-enable: BSL225

// bsl-disable: BSL225
// код без этой диагностики
// bsl-enable: BSL225

// BSLLS:NumberOfValuesInStructureConstructor-off
// код без этой диагностики
// BSLLS:NumberOfValuesInStructureConstructor-on

Чтобы отключить правило до конца файла, не добавляйте закрывающий noqa-enable, bsl-enable или BSLLS:…-on.

Открывающий и закрывающий маркеры должны принадлежать одному семейству.

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

При создании объекта типа Структура не рекомендуется передавать в конструктор более 3-х значений свойств. Вместо этого рекомендуется использовать метод Вставить или присваивать значения свойствам явным образом

Примеры

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

ПараметрыФормыКомпоновки  = Новый Структура(
   "НеПомещатьНастройкиВСхемуКомпоновкиДанных,
   |НеРедактироватьСхемуКомпоновкиДанных,
   |НеНастраиватьУсловноеОформление,
   |НеНастраиватьВыбор,
   |НеНастраиватьПорядок,
   |АдресСхемыКомпоновкиДанных,
   |АдресНастроекКомпоновкиДанных,
   |УникальныйИдентификатор,
   |Заголовок",
   Истина,
   Истина,
   Истина,
   Истина,
   Истина,
   ТекущиеДанные.АдресСхемыКомпоновкиДанных,
   ?(АдресНастроекСхемыКомпоновкиДанных <> Неопределено,
        АдресНастроекСхемыКомпоновкиДанных,
        ТекущиеДанные.АдресНастроекСхемыКомпоновкиДанных),
   УникальныйИдентификатор,
   ЗаголовокФормыНастройкиСхемыКомпоновкиДанных));

Правильно:

ПараметрыФормыКомпоновки  = Новый Структура;

ПараметрыФормыКомпоновки.Вставить("НеПомещатьНастройкиВСхемуКомпоновкиДанных", Истина);
ПараметрыФормыКомпоновки.Вставить("НеРедактироватьСхемуКомпоновкиДанных", Истина);
ПараметрыФормыКомпоновки.Вставить("НеРедактироватьСхемуКомпоновкиДанных", Истина);
ПараметрыФормыКомпоновки.Вставить("НеНастраиватьВыбор", Истина);
ПараметрыФормыКомпоновки.Вставить("НеНастраиватьПорядок", Истина);
ПараметрыФормыКомпоновки.Вставить("АдресСхемыКомпоновкиДанных", ТекущиеДанные.АдресСхемыКомпоновкиДанных);
ПараметрыФормыКомпоновки.Вставить("АдресНастроекКомпоновкиДанных", ?(АдресНастроекСхемыКомпоновкиДанных <> Неопределено,
                                                                                                                         АдресНастроекСхемыКомпоновкиДанных,
                                                                                                                         ТекущиеДанные.АдресНастроекСхемыКомпоновкиДанных));
ПараметрыФормыКомпоновки.Вставить("УникальныйИдентификатор ", УникальныйИдентификатор);
ПараметрыФормыКомпоновки.Вставить("Заголовок", ЗаголовокФормыНастройкиСхемыКомпоновкиДанных);

Источники