//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++
//	|                           Абстрактный статический объект                                  |
//	+                                      ShmalevoZ                                            +
//	|                                       2008-11                                             |
//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++

//---------------------------------------------------------------------------------------------
// Собственные атрибуты
Перем гИдентификатор;
Перем гТекстСсылки;


//******************************************************************************
// НормализоватьКонтекст(СсылаКонтекст)
//
// Параметры: 
//  СсылаКонтекст
//
// Возвращаемое значение:
//  Неопределенный
//
// Описание:
//  Возвращает ссылка на переданный контекст
//
Функция НормализоватьКонтекст(СсылаКонтекст)
	
	Возврат СсылаКонтекст;
	
КонецФункции // НормализоватьКонтекст()


//******************************************************************************
// _this()
//
// Параметры: 
//  СсылкаКонтекст			- контекст
//
// Возвращаемое значение:
//  ГрупповойКонтекст		- ссылка на контекст
//
// Описание:
//  Возвращает ссылку на контекст
//
Функция _this()
	
	Возврат НормализоватьКонтекст(Контекст);
	
КонецФункции // _this()


//******************************************************************************
// Зарегистрировать()
//
// Параметры: 
//  
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  Регистрирует объект в менеджере статических объектов
//
Процедура Зарегистрировать()
	
	гОбъектСтатический	= 0;
	гИдентификатор		= ТипЗначенияСтр(_this());
	Менеджер			= СоздатьОбъект("Общие.Статик.Менеджер");
	Если Менеджер.Зарегистрирован(гИдентификатор) = 0 Тогда
		Менеджер.Добавить(_this(), гИдентификатор);
		гТекстСсылки	= Менеджер.ПолучитьТекстСсылки(гИдентификатор);
	Иначе
		_this()._ВыброситьОшибку("Нельзя создавать более одного объекта типа " + гИдентификатор);
	КонецЕсли;
	
КонецПроцедуры // Зарегистрировать()


//******************************************************************************
// ПолучитьТекстСсылки()
//
// Параметры: 
//  
//
// Возвращаемое значение:
//  Строка					- текст ссылки
//
// Описание:
//  Возвращает текст ссылки на текущий статический объект
//
Функция ПолучитьТекстСсылки() Экспорт
	
	Возврат гТекстСсылки;
	
КонецФункции // ПолучитьТекстСсылки()


//******************************************************************************
// Конструктор()
//
// Параметры: 
//  
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  Предопределенный метод
//
Процедура Конструктор()
	
	Зарегистрировать();
	
КонецПроцедуры // Конструктор()
