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