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

Использование конструкторов с параметрами при объявлении структуры (NestedConstructorsInStructureDeclaration)

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

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

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

Примеры

Неправильно

НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(
  Объект.Товары,
  Новый Структура(
  "ЗаполнитьПризнакХарактеристикиИспользуются,
  |ЗаполнитьПризнакТипНоменклатуры, ЗаполнитьПризнакВариантОформленияПродажи",
   Новый Структура("Номенклатура", "ХарактеристикиИспользуются"),
   Новый Структура("Номенклатура", "ТипНоменклатуры"),
   Новый Структура("Номенклатура", "ВариантОформленияПродажи")
  )
 );

Правильно

ПараметрыЗаполненияРеквизитов = Новый Структура;
ПараметрыЗаполненияРеквизитов.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются",
                                                          Новый Структура("Номенклатура", "ХарактеристикиИспользуются"));
ПараметрыЗаполненияРеквизитов.Вставить("ЗаполнитьПризнакТипНоменклатуры",
                                                          Новый Структура("Номенклатура", "ТипНоменклатуры"));
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(Объект.Товары, 
                                                          ПараметрыЗаполненияРеквизитов);

Сниппеты

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

// BSLLS:NestedConstructorsInStructureDeclaration-off
// BSLLS:NestedConstructorsInStructureDeclaration-on

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

"NestedConstructorsInStructureDeclaration": false