Использование объектов типа Структура
1. При создании объекта типа Структура не рекомендуется передавать в конструктор более 3-х значений свойств. Вместо этого рекомендуется использовать метод Вставить или присваивать значения свойствам явным образомСм. также
1. При создании объекта типа Структура не рекомендуется передавать в конструктор более 3-х значений свойств. Вместо этого рекомендуется использовать метод Вставить или присваивать значения свойствам явным образом
Неправильно
ПараметрыФормыКомпоновки = Новый Структура( "НеПомещатьНастройкиВСхемуКомпоновкиДанных, |НеРедактироватьСхемуКомпоновкиДанных, |НеНастраиватьУсловноеОформление, |НеНастраиватьВыбор, |НеНастраиватьПорядок, |АдресСхемыКомпоновкиДанных, |АдресНастроекКомпоновкиДанных, |УникальныйИдентификатор, |Заголовок", Истина, Истина, Истина, Истина, Истина, ТекущиеДанные.АдресСхемыКомпоновкиДанных, ?(АдресНастроекСхемыКомпоновкиДанных <> Неопределено, АдресНастроекСхемыКомпоновкиДанных, ТекущиеДанные.АдресНастроекСхемыКомпоновкиДанных), УникальныйИдентификатор, ЗаголовокФормыНастройкиСхемыКомпоновкиДанных));
Правильно
ПараметрыФормыКомпоновки = Новый Структура; ПараметрыФормыКомпоновки.Вставить("НеПомещатьНастройкиВСхемуКомпоновкиДанных", Истина); ПараметрыФормыКомпоновки.Вставить("НеРедактироватьСхемуКомпоновкиДанных", Истина); ПараметрыФормыКомпоновки.Вставить("НеРедактироватьСхемуКомпоновкиДанных", Истина); ПараметрыФормыКомпоновки.Вставить("НеНастраиватьВыбор", Истина); ПараметрыФормыКомпоновки.Вставить("НеНастраиватьПорядок", Истина); ПараметрыФормыКомпоновки.Вставить("АдресСхемыКомпоновкиДанных", ТекущиеДанные.АдресСхемыКомпоновкиДанных); ПараметрыФормыКомпоновки.Вставить("АдресНастроекКомпоновкиДанных", ?(АдресНастроекСхемыКомпоновкиДанных <> Неопределено, АдресНастроекСхемыКомпоновкиДанных, ТекущиеДанные.АдресНастроекСхемыКомпоновкиДанных)); ПараметрыФормыКомпоновки.Вставить("УникальныйИдентификатор ", УникальныйИдентификатор); ПараметрыФормыКомпоновки.Вставить("Заголовок", ЗаголовокФормыНастройкиСхемыКомпоновкиДанных);
2. Не рекомендуется в конструкторе структуры использовать конструкторы других объектов, если эти конструкторы принимают параметры. В частности в конструкторе одной структуры не рекомендуется создавать другие структуры с объявлением значений свойств.
Неправильно
НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции( Объект.Товары, Новый Структура( "ЗаполнитьПризнакХарактеристикиИспользуются, |ЗаполнитьПризнакТипНоменклатуры, ЗаполнитьПризнакВариантОформленияПродажи", Новый Структура("Номенклатура", "ХарактеристикиИспользуются"), Новый Структура("Номенклатура", "ТипНоменклатуры"), Новый Структура("Номенклатура", "ВариантОформленияПродажи") ) );
Правильно
ПараметрыЗаполненияРеквизитов = Новый Структура; ПараметрыЗаполненияРеквизитов.Вставить("ЗаполнитьПризнакХарактеристикиИспользуются", Новый Структура("Номенклатура", "ХарактеристикиИспользуются")); ПараметрыЗаполненияРеквизитов.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры")); НоменклатураСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(Объект.Товары, ПараметрыЗаполненияРеквизитов);
3. Не рекомендуется в конструкторе структуры вызывать функции с большим (более 3) количеством параметров.
Неправильно
СведенияОТоваре = Новый Структура("ПараметрыТовара, ЦенаПродажиИОстаткиТовара, ЦенаЗакупкиИОстаткиТовара", ПодборТоваровКлиентСервер.ПараметрыТовара(), ПодборТоваровВызовСервера.ЦенаПродажиИОстаткиТовара( Номенклатура, Характеристика, Соглашение, Валюта, ВидыЦен), ЦенаЗакупкиИОстаткиТовара( Номенклатура, Характеристика, Соглашение, Валюта, ВидыЦен));
Правильно
СведенияОТоваре = Новый Структура("ПараметрыТовара, ЦенаПродажиИОстаткиТовара, ЦенаЗакупкиИОстаткиТовара"); СведенияОТоваре.ПараметрыТовара = ПодборТоваровКлиентСервер.ПараметрыТовара(); СведенияОТоваре.ЦенаПродажиИОстаткиТовара = ПодборТоваровВызовСервера.ЦенаПродажиИОстаткиТовара( Номенклатура, Характеристика, Соглашение, Валюта, ВидыЦен); СведенияОТоваре.ЦенаПродажиИОстаткиТовара = ЦенаЗакупкиИОстаткиТовара.ЦенаЗакупкиИОстаткиТовара( Номенклатура, Характеристика, Соглашение, Валюта, ВидыЦен);
См. также
- Параметры процедур и функций
- Особенности использования структур в качестве параметров процедур и функций