// работа с динамическими свойствами

//# ClassBegin КлассСоСвойством;
Перем Свойство Экспорт;

Процедура Конструктор()
	Свойство = 1;
КонецПроцедуры	// Конструктор

//------------------------------------ ------------------------------------
// 	Работа с динамическими переменными
//------------------------------------ ------------------------------------
Функция ПриПолучении_Свойство(ЗначениеАтрибута)
	Возврат Свойство;
КонецФункции

Процедура ПриЗаписи_Свойство(НовоеЗначениеАтриб)
	Свойство = НовоеЗначениеАтриб;
КонецПроцедуры
       
Процедура ИзменитьЗначениеСвойства(НовоеЗначение) Экспорт
	Свойство = НовоеЗначение;
КонецПроцедуры	// ИзменитьЗначениеСвойства

//# ClassEnd КлассСоСвойством;


//# ClassBegin КлассСДинамическимСвойством;

// используем открытое свойство "ДинамическоеСвойство"

Перем СкрытоеСвойство;

Процедура Конструктор()
	СкрытоеСвойство = 1;
КонецПроцедуры	// Конструктор

//------------------------------------ ------------------------------------
// 	Работа с динамическими переменными
//------------------------------------ ------------------------------------
Функция _ПриЧтенииСвойства(стрИмяАтрибута)
	Если стрИмяАтрибута = "ДинамическоеСвойство" Тогда
		Возврат СкрытоеСвойство;
	КонецЕсли;

	Модуль = СоздатьОбъект("ВыполняемыйМодуль");
	Модуль.ВыброситьИскл(, "Не найдено свойство <"+стрИмяАтрибута+">");
КонецФункции

Процедура _ПриЗаписиСвойства(стрИмяАтрибута,  НовоеЗначениеАтриб)
	Если стрИмяАтрибута = "ДинамическоеСвойство" Тогда
		СкрытоеСвойство = НовоеЗначениеАтриб;
		Возврат;
	КонецЕсли;
	
	Модуль = СоздатьОбъект("ВыполняемыйМодуль");
	Модуль.ВыброситьИскл(, "Не найдено свойство <"+стрИмяАтрибута+">");
КонецПроцедуры
       
Процедура ИзменитьЗначениеСвойства(НовоеЗначение) Экспорт
	СкрытоеСвойство = НовоеЗначение;
КонецПроцедуры	// ИзменитьЗначениеСвойства

//# ClassEnd КлассСДинамическимСвойством;