//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++
//	|                           Описание универсального сообщения                               |
//	+                                        ShmalevoZ                                          +
//	|                                         2008-01                                           |
//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++

Перем	Идентификатор					Экспорт;
Перем	Отправитель						Экспорт;
Перем	Получатель						Экспорт;
Перем	Данные							Экспорт;
Перем	ТребуетПодтвержденияДоставки	Экспорт;
Перем	Отправлено						Экспорт;
Перем	Получено						Экспорт;


//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++
//	|                                                                                           |
//	+                             Собственные методы класса                                     +
//	|                                                                                           |
//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++

//******************************************************************************
// Конструктор()
//
// Параметры: 
//  
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  ТекстОписания
//
Процедура Конструктор()
	
	Отправитель						= "";
	Получатель						= "";
	Данные							= "";
	ТребуетПодтвержденияДоставки	= 0;
	Отправлено						= 0;
	Получено						= 0;
	
	СсылкаИдентификаторы			= СоздатьОбъект("GUID");
	СсылкаИдентификаторы.Новый();
	Идентификатор					= СсылкаИдентификаторы.ВСтроку();
	
КонецПроцедуры // Конструктор()


//******************************************************************************
// СтрокаВСписок(РазбираемаяСтрока)
//
// Параметры: 
//  РазбираемаяСтрока
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  ТекстОписания
//
Функция СтрокаВСписок(РазбираемаяСтрока, Разделитель, УдалятьРазделитель = 1)
    
    Результат            = СоздатьОбъект("СписокЗначений");
    ВремСтр                = РазбираемаяСтрока;
    
    Позиция                = Найти(ВремСтр, Разделитель);
    ДлинаРазделителя    = СтрДлина(Разделитель);
    
    Пока Позиция <> 0 Цикл
        Результат.ДобавитьЗначение(СокрЛП(Лев(ВремСтр, Позиция-1+?(УдалятьРазделитель = 0, ДлинаРазделителя, 0))));
        ВремСтр = СокрЛП(Прав(ВремСтр, СтрДлина(ВремСтр)-Позиция-ДлинаРазделителя+1));
        Позиция    = Найти(ВремСтр, Разделитель);
    КонецЦикла;
    
    Если СтрДлина(ВремСтр) <> 0 Тогда
        Результат.ДобавитьЗначение(ВремСтр);
    КонецЕсли;
    
    Возврат Результат;
КонецФункции // СтрокаВСписок()


//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++
//	|                                                                                           |
//	+                               Общедоступные методы класса                                 +
//	|                                                                                           |
//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++

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


//******************************************************************************
// СохранитьКлассВСтроку()
//
// Параметры: 
//  
//
// Возвращаемое значение:
//  Строка		- представление класса в виде XML
//
// Описание:
//  Сохраняет данные класса в виде XML
//
Функция СохранитьКлассВСтроку() Экспорт
	
	Результат	= "";
	Результат	= Результат + ЗначениеВСтрокуВнутр(Идентификатор)					+ "^";
	Результат	= Результат + ЗначениеВСтрокуВнутр(Отправитель)						+ "^";
	Результат	= Результат + ЗначениеВСтрокуВнутр(Получатель)						+ "^";
	Результат	= Результат + ЗначениеВСтрокуВнутр(Данные)							+ "^";
	
	Возврат Результат;
КонецФункции // СохранитьКлассВСтроку()


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


//******************************************************************************
// ЗагрузитьИзСтроки(Источник)
//
// Параметры: 
//  Источник	- строка с сохраненными данными класса
//
// Возвращаемое значение:
//  Нет
//
// Описание:
// 	Загружает данные класса из строки. Разделитель - ^
//
Процедура ЗагрузитьИзСтроки(Источник) Экспорт
	
	СписокДанных		= СтрокаВСписок(Источник, "^", 1);
	ЗначениеПоУмолчанию	= "{""S"",""0"",""0"",""0"",""0"",""0"",""""}";
	Пока СписокДанных.РазмерСписка() < 7 Цикл
		СписокДанных.ДобавитьЗначение(ЗначениеПоУмолчанию);
	КонецЦикла;
	Идентификатор					= ЗначениеИзСтрокиВнутр(СписокДанных.ПолучитьЗначение(1));
	Отправитель						= ЗначениеИзСтрокиВнутр(СписокДанных.ПолучитьЗначение(2));
	Получатель						= ЗначениеИзСтрокиВнутр(СписокДанных.ПолучитьЗначение(3));
	Данные							= ЗначениеИзСтрокиВнутр(СписокДанных.ПолучитьЗначение(4));
	
КонецПроцедуры // ЗагрузитьИзСтроки()
