Передача параметров в процедуру по ссылке и по значению
01.11.2008
12:11
#1
"Есть процедура:
Процедура ДобавитьНулевыеИтоги(МассивИтогов,Знач Область)
Перем СтруктураИтогов; //Структура итогов.
//Создание и настройка необходимых объектов.
СтруктураИтогов=Новый Структура;
//Добавление значений в структуру итогов.
СтруктураИтогов.Вставить("Область",Область);
СтруктураИтогов.Вставить("Занято",0);
СтруктураИтогов.Вставить("Вакантно",0);
//Добавление структуры итогов в массив.
МассивИтогов.Добавить(СтруктураИтогов);
КонецПроцедуры
Параметр МассивИтогов передается по ссылке, а параметр Область по значению.
Представляю участок кода где вызывается эта процедура:
...
СборнаяОбласть.Присоединить(ОбластьОбщийИтогОклады);
ДобавитьНулевыеИтоги(Итоги, СборнаяОбласть);
СборнаяОбласть.Очистить();
Отчет.Вывести(Итоги.Получить(0).Область);
...
А теперь вопрос:
По идее параметр СборнаяОбласть передался по значению значит метод "Очистить" не должен менять значение в массиве Итоги. Однако не так.
Если выводить область до применения метода Очистить все получается, а после выводится пустая область. Так как же быть с передачей параметра по значению? Подскажите может я что-то недопонимаю."
Процедура ДобавитьНулевыеИтоги(МассивИтогов,Знач Область)
Перем СтруктураИтогов; //Структура итогов.
//Создание и настройка необходимых объектов.
СтруктураИтогов=Новый Структура;
//Добавление значений в структуру итогов.
СтруктураИтогов.Вставить("Область",Область);
СтруктураИтогов.Вставить("Занято",0);
СтруктураИтогов.Вставить("Вакантно",0);
//Добавление структуры итогов в массив.
МассивИтогов.Добавить(СтруктураИтогов);
КонецПроцедуры
Параметр МассивИтогов передается по ссылке, а параметр Область по значению.
Представляю участок кода где вызывается эта процедура:
...
СборнаяОбласть.Присоединить(ОбластьОбщийИтогОклады);
ДобавитьНулевыеИтоги(Итоги, СборнаяОбласть);
СборнаяОбласть.Очистить();
Отчет.Вывести(Итоги.Получить(0).Область);
...
А теперь вопрос:
По идее параметр СборнаяОбласть передался по значению значит метод "Очистить" не должен менять значение в массиве Итоги. Однако не так.
Если выводить область до применения метода Очистить все получается, а после выводится пустая область. Так как же быть с передачей параметра по значению? Подскажите может я что-то недопонимаю."
Читают тему
(гостей: 1)