//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++
//	|                                                                                           |
//	+      Текст должен быть либо добавлен в глобальный модуль, либо загружен с помощью         +
//	|                     метода ДобавитьГлобальныйМодуль объекта Сервис                        |
//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++


//+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++ 
// Данные менеджера перехвата событий. 
Перем глДанныеМенеджераПерехватаСобытий Экспорт;

//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++
//	|                                                                                           |
//	+          Глобальные методы для обработки сетевых сообщений вызываемые компонентой         +
//	|                                          netainet                                         |
//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++

//******************************************************************************
// ВыполнитьПоЗапросуИзИнета(Данные, Идентификатор)
//
// Параметры: 
//  Данные			- строка данных, пришедшая от клиента
//  Идентификатор	- идентификатор сообщения
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  Вызывается компонентой netainet при поступлении входящего сообщения,
//  используется механизм перехватчика событий. Менеджеру высылается событие
//  ПриЗапросеИзСети с поступившими данными. 
//  Предполагается что данные приходят в текстовом виде, в первой строке
//  идентификатор класса события, поддерживающий сериализацию, далее 
//  следуют данные класса строкой
//
Процедура ВыполнитьПоЗапросуИзИнета(Данные, Идентификатор) Экспорт
	
	//+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++  
	// Сразу обработаем поступившие данные
	Позиция							= Найти(Данные, "#");
	ИдентификаторКлассаСообщения	= Лев(Данные, Позиция - 1);
	ДанныеКласса					= Прав(Данные, СтрДлина(Данные) - Позиция);
	Попытка
		Сообщение						= СоздатьОбъект(ИдентификаторКлассаСообщения);
	Исключение
		Сообщить("Получено сетевое сообщение неподдерживаемого формата!");
		Возврат;
	КонецПопытки;
	
	Сообщение.ЗагрузитьИзСтроки(ДанныеКласса);

	//+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++  
	// И опубликуем событие
	Событие	= СоздатьОбъект("Сервис.Событие");
	Событие.ДобавитьПараметр(Сообщение,		"Сообщение");
	Событие.ДобавитьПараметр(Идентификатор,	"Идентификатор");
	Событие.Опубликовать("ПриЗапросеИзСети");
	
КонецПроцедуры // ВыполнитьПоЗапросуИзИнета()


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

// **** ПиП **** }
