Вызов вложенного конструктора Структуры при вызове функций
Не рекомендуется при вызове функций использовать вложенный конструктор структуры: Новый Структура(...)
. Вложенное объявление структуры допустимо только в тех случаях, когда количество её свойств небольшое (нужно ориентироваться на количество свойств не более трех).
Неправильно
ЗаполнитьЦены(
Объект.Товары, // Табличная часть
, // Массив строк или структура отбора
Новый Структура( // Параметры заполнения
"Дата, Валюта, Соглашение, ПоляЗаполнения",
Объект.Дата,
Объект.Валюта,
Объект.Соглашение,
"Цена, СтавкаНДС, ВидЦены, СрокПоставки"
),
Новый Структура( // Структура действий с измененными строками
"ПересчитатьСумму, ПересчитатьСуммуСНДС, ПересчитатьСуммуНДС, ПересчитатьСуммуРучнойСкидки, ОчиститьАвтоматическуюСкидку, ОчиститьСуммуВзаиморасчетов",
"КоличествоУпаковок", СтруктураПересчетаСуммы, СтруктураПересчетаСуммы, "КоличествоУпаковок", Неопределено, Неопределено
)
);
Правильно
ПараметрыЗаполнения = Новый Структура;
ПараметрыЗаполнения.Вставить("Дата", Объект.Дата);
ПараметрыЗаполнения.Вставить("Валюта", Объект.Валюта);
ПараметрыЗаполнения.Вставить("Соглашение", Объект.Соглашение);
ПараметрыЗаполнения.Вставить("ПоляЗаполнения", "Цена, СтавкаНДС, ВидЦены, СрокПоставки");
ДействияСИзмененнымиСтроками = Новый Структура;
ДействияСИзмененнымиСтроками.Вставить("ПересчитатьСумму","КоличествоУпаковок");
ДействияСИзмененнымиСтроками.Вставить("ПересчитатьСуммуСНДС", ПараметрыПересчетыСуммы);
ДействияСИзмененнымиСтроками.Вставить("ПересчитатьСуммуНДС", ПараметрыПересчетыСуммы);
ДействияСИзмененнымиСтроками.Вставить("ПересчитатьСуммуРучнойСкидки","КоличествоУпаковок");
ДействияСИзмененнымиСтроками.Вставить("ОчиститьАвтоматическуюСкидку");
ДействияСИзмененнымиСтроками.Вставить("ОчиститьСуммуВзаиморасчетов ");
ЗаполнитьЦены(Объект.Товары, ПараметрыЗаполнения, ДействияСИзмененнымиСтроками);
См. также
- Параметры процедур и функций
- Использование объектов типа Структура
- Особенности использования структур в качестве параметров процедур и функций
Экранирование кода
// sonar:NestedConstructorCall:off
// sonar:NestedConstructorCall:on