
//# ClassBegin НаследникГрупповойКонтекстСFormEx;

Перем ПеремФормыИМодуля Экспорт; // есть и в модуле формы группового контекста
Перем ПеремМодуля Экспорт; //

Перем База;
Перем АтрибутКласса Экспорт;

Перем Журнал Экспорт;

Функция Конт(Конт) Возврат Конт; КонецФункции // : Контекст
Функция Сам() Возврат Конт(Контекст); КонецФункции // : Контекст

//// проверка бага 2402 http://cvs.alterplast.ru/bugs/show_bug.cgi?id=2402
//Процедура Инициализация(конт) Экспорт
//	//Конт.МетодФормы();
//	ВМ = СоздатьОбъект("ВыполняемыйМодуль");
//	ТабМетодов = СоздатьОбъект("ТаблицаЗначений");
//	ТабСвойств = СоздатьОбъект("ТаблицаЗначений");
//
//	Сообщить("ВМ.GetMethOfContext(Конт)");	
//	ВМ.GetMethOfContext(Конт, ТабМетодов, ТабСвойств);
//	//ВМ.GetMethOfContext(Сам(), ТабМетодов, ТабСвойств);
//	ТабМетодов.ВыбратьСтроку("");
//	ТабСвойств.ВыбратьСтроку("");
//
//	Сообщить("ВМ.GetMethOfContext(Сам())");	
//	ВМ.GetMethOfContext(Сам(), ТабМетодов, ТабСвойств);
//	ТабМетодов.ВыбратьСтроку("");
//	ТабСвойств.ВыбратьСтроку("");
//
//	Сам().ЗаменитьЭксзБазовогоКласса("ГрупповойКонтекст", Конт);
//	//ВМ = СоздатьОбъект("ВыполняемыйМодуль");
//	////ВМ.GetMethOfContext(Сам());
//	//ВМ.GetMethOfContext(Конт, ТабМетодов, ТабСвойств);
//	Сообщить("ВМ.GetMethOfContext(Сам())");	
//	ВМ.GetMethOfContext(Сам(), ТабМетодов, ТабСвойств);
//	ТабМетодов.ВыбратьСтроку("");
//	ТабСвойств.ВыбратьСтроку("");
////Сообщить("-------------------------------------- = ");
//	//ВМ.GetMethOfContext(Конт);
//	
//	//Конт.МетодФормы();
//КонецПроцедуры
//
//Процедура ПослеОткрытия() Экспорт
//Сообщить("Сам.ПослеОткрытия() 1 ");
//	Сам().МетодФормы();
//Сообщить("Сам.ПослеОткрытия() 2 ");
//Сообщить("Сам().Вид() = <"+Сам().Вид()+">");
//Сообщить("Сам().ДатаДок = <"+Сам().ДатаДок+">");
//Сообщить("Сам().НомерДок = <"+Сам().НомерДок+">");
//
//	Сам().Стр = "Бугага";
//	Сообщить("Сам().Стр = <"+Сам().Стр+">");
//
//КонецПроцедуры
           
Процедура Конструктор()
	ПеремФормыИМодуля = "КОП";
	ПеремМодуля = "КОП";
	ПриватПеремФормы = "КОП";
                   
	АтрибутКласса = 0;
КонецПроцедуры	// Конструктор  

Процедура Деструктор()
	//Предупреждение("НаследникГК - Деструктор - АтрибутКласса = <"+АтрибутКласса+">");
КонецПроцедуры	// Деструктор


Процедура Инициализация(конт, Журнал1) Экспорт
	Сам().ЗаменитьЭксзБазовогоКласса("ГрупповойКонтекст", Конт);
	База = Сам().ПолучитьБазовыйКласс("ГрупповойКонтекст");
//Сообщить("ТипЗначенияСтр(База) = <"+ТипЗначенияСтр(База)+">");
//	База = Сам().ПолучитьБазовыйКласс("Документ");
//Сообщить("ТипЗначенияСтр(База) = <"+ТипЗначенияСтр(База)+">");

	Журнал = Журнал1;
//Предупреждение("ТипЗначенияСтр(Журнал) = <"+ТипЗначенияСтр(Журнал)+">");

	Журнал.ДобавитьЗапись("КОП::Инициализация");

КонецПроцедуры

//Процедура МетодФормы() Экспорт
//	Сам().ПеремФормыИМодуля = "КОП::МетодФормы";	
//	Сам().ПеремМодуля = "КОП::МетодФормы";
//	Сам().ПриватПеремФормы = "КОП::МетодФормы";
//КонецПроцедуры	// МетодФормы

Процедура МетодФормыИМодуля() Экспорт
	Сообщить("КОП.МетодФормыИМодуля ");
	Сам().ПеремФормыИМодуля = "КОП::МетодФормыИМодуля";	
	Сам().ПеремМодуля = "КОП::МетодФормыИМодуля";
	//Сам().ПриватПеремФормы = "КОП::МетодФормыИМодуля";
//Сообщить("Сам().ПриватПеремФормы = <"+Сам().ПриватПеремФормы+">");
	
КонецПроцедуры	// МетодФормы

//Процедура ПриватМетодФормы()
//	Сам().ПеремФормыИМодуля = "КОП::ПриватМетодФормы";	
//	Сам().ПеремМодуля = "КОП::ПриватМетодФормы";
//	Сам().ПриватПеремФормы = "КОП::ПриватМетодФормы";
//КонецПроцедуры	// МетодФормы

//============================================================
Процедура ПриНачалеВыбораЗначения(ИдентификаторЭлемента, Флаг) Экспорт
	Сообщить("КОП::ПриНачалеВыбораЗначения");
	База.ПриНачалеВыбораЗначения(ИдентификаторЭлемента, Флаг);
КонецПроцедуры

Процедура Событие_ПриНачалеВыбораЗначения(ИдентификаторЭлемента, Флаг) Экспорт
	//Сообщить("КОП::Событие_ПриНачалеВыбораЗначения");
	Журнал.ДобавитьЗапись("КОП::Событие_ПриНачалеВыбораЗначения");
	База.ПриНачалеВыбораЗначения(ИдентификаторЭлемента, Флаг);
КонецПроцедуры

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

Процедура Событие_ПриЗакрытии() Экспорт
	//Сообщить("КОП::Событие_ПриЗакрытии = ");
	Журнал.ДобавитьЗапись("КОП::Событие_ПриЗакрытии");
	//База.ПриЗакрытии();
	Перехватчик = СоздатьОбъект("Перехватчик");
	СписокАргументов = СоздатьОбъект("СписокЗначений");
	Перехватчик.ВызватьОригинальноеСобытиеГК(База, "ПриЗакрытии", СписокАргументов);
	
	Перехватчик.СнятьПерехватСобытийГлобальногоМодуля();
КонецПроцедуры

//Процедура ПриОтменеПроведенияДокумента(Докум) Экспорт
//	Предупреждение("КОП:: ПриОтменеПроведенияДокумента() "+Докум);
//	//OnUnPosting(Докум);
//	Перехватчик = СоздатьОбъект("Перехватчик");                                          
//	СписокАргументов = СоздатьОбъект("СписокЗначений");
//	СписокАргументов.ДобавитьЗначение(Докум);
//	Перехватчик.ВызватьОригинальноеСобытиеГлобальногоМодуля("ПриОтменеПроведенияДокумента", СписокАргументов);
//КонецПроцедуры

Процедура Событие_ПриОтменеПроведенияДокумента(Докум) Экспорт
	Журнал.ДобавитьЗапись("КОП::Событие_ПриОтменеПроведенияДокумента");

	Предупреждение("КОП:: Событие_ПриОтменеПроведенияДокумента() "+Докум);
	//OnUnPosting(Докум);
	Перехватчик = СоздатьОбъект("Перехватчик");
	СписокАргументов = СоздатьОбъект("СписокЗначений");
	СписокАргументов.ДобавитьЗначение(Докум);
	Перехватчик.ВызватьОригинальноеСобытиеГлобальногоМодуля("ПриОтменеПроведенияДокумента", СписокАргументов);
КонецПроцедуры
                
Процедура ПриЗавершенииРаботыСистемы() Экспорт
	Журнал.ДобавитьЗапись("КОП::ПриЗавершенииРаботыСистемы");
	Предупреждение("КОП:: ПриЗавершенииРаботыСистемы()");
	//ПриЗавершенииРаботыСистемы();
	Перехватчик = СоздатьОбъект("Перехватчик");
	СписокАргументов = СоздатьОбъект("СписокЗначений");
	Перехватчик.ВызватьОригинальноеСобытиеГлобальногоМодуля("ПриЗавершенииРаботыСистемы", СписокАргументов);
КонецПроцедуры      
                  
Процедура Событие_ПриЗавершенииРаботыСистемы() Экспорт
	Журнал.ДобавитьЗапись("КОП::Событие_ПриЗавершенииРаботыСистемы");
	Предупреждение("КОП:: Событие_ПриЗавершенииРаботыСистемы()");
	//ПриЗавершенииРаботыСистемы();
	Перехватчик = СоздатьОбъект("Перехватчик");
	СписокАргументов = СоздатьОбъект("СписокЗначений");
	Перехватчик.ВызватьОригинальноеСобытиеГлобальногоМодуля("ПриЗавершенииРаботыСистемы", СписокАргументов);
КонецПроцедуры      

// события FormEx
Процедура ПослеОткрытия() Экспорт
	//Сообщить("Форма.ПриЗакрытии = ");
	Журнал.ДобавитьЗапись("КОП::ПослеОткрытия");
КонецПроцедуры

Процедура ПослеЗакрытия()
	//Сообщить("Форма.ПриЗакрытии = ");
	Журнал.ДобавитьЗапись("КОП::ПослеЗакрытия");
КонецПроцедуры

//# ClassEnd НаследникГрупповойКонтекстСFormEx;
