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