Особливості використання структур як параметрів процедур і функцій
<em>Область застосування: керований застосунок, мобільний застосунок, звичайний застосунок.</em>Див. також
Область застосування: керований застосунок, мобільний застосунок, звичайний застосунок.
Основна стаття: Параметри процедур і функцій
Для процедур і функцій (далі за текстом: функцій) з параметрами типу Структура рекомендується дотримуватися такого підходу до розробки.
1. Окрім функції, яка безпосередньо реалізує прикладну функціональність (далі за текстом: викликана функція), необхідно визначити функцію-конструктор для створення нової структури (далі за текстом функція-конструктор параметрів). При цьому сама функція-конструктор не приймає параметрів, а лише повертає структуру-заготовку з властивостями, яку код, що викликає, повинен ініціалізувати конкретними значеннями та передати у викликану функцію.
Приклад коду, що викликає:
Процедура ПриИзмененииНоменклатурыСервер(ИдентификаторТекущейСтроки) // Отримуємо нову структуру параметрів. ПараметрыЗаполненияЦен = ЦенообразованиеКлиентСервер.ПараметрыЗаполненияЦеныВСтрокеТЧ(); // Заповнюємо параметри. ПараметрыЗаполненияЦен.Дата = Объект.Дата; ПараметрыЗаполненияЦен.Валюта = Объект.Валюта; ТекущаяСтрока = Объект.Товары.НайтиПоИдентификатору(ИдентификаторТекущейСтроки); // Передаємо структуру параметрів у прикладну функцію. ЦенообразованиеСервер.ЗаполнитьЦеныВСтрокеТЧ(ТекущаяСтрока, ПараметрыЗаполненияЦен); КонецПроцедуры
Приклад функції-конструктора параметрів у модулі ЦенообразованиеКлиентСервер:
Функция ПараметрыЗаполненияЦеныВСтрокеТЧ() Экспорт ПараметрыЗаполненияЦен = Новый Структура; ПараметрыЗаполненияЦен.Вставить("Дата"); ПараметрыЗаполненияЦен.Вставить("Валюта"); ПараметрыЗаполненияЦен.Вставить("ПересчитыватьСумму", Истина); ПараметрыЗаполненияЦен.Вставить("ОбязательныеПараметры","Дата,Валюта"); // обов’язкові параметри, які потрібно заповнювати Возврат ПараметрыЗаполненияЦен; КонецФункции
Імена властивостей структури відповідають параметрам викликаної функції. При цьому параметри зі значеннями за замовчуванням мають бути явно ініціалізовані в цій структурі.
2. У коді, що викликає, не слід додавати будь-які інші властивості до структури параметрів. Щоб уникнути неоднозначності та прихованих помилок, усі допустимі параметри викликаної функції мають бути визначені явно у функції-конструкторі параметрів.