Inheritance: ДокументСсылка, IСериализаторProtoBuf, IСериализаторJson
 public static ДокументыВыборка.ТранспортноеСообщение Выбрать()
 {
     using (var Подключение = new SqlConnection(СтрокаСоединения))
     {
         Подключение.Open();
         using (var Команда = Подключение.CreateCommand())
         {
             Команда.CommandText = @"Select top 1000
             _IDRRef [Ссылка]
             ,_Version [Версия]
             ,_Marked [ПометкаУдаления]
             ,_Fld25582RRef [ЦиклОбмена]
             ,_Fld25583RRef [Тип]
             ,_Fld25584_TYPE [Отправитель_Тип],_Fld25584_RRRef [Отправитель],_Fld25584_RTRef [Отправитель_Вид]
             ,_Fld25585_TYPE [Получатель_Тип],_Fld25585_RRRef [Получатель],_Fld25585_RTRef [Получатель_Вид]
             ,_Fld25586RRef [УчетнаяЗапись]
             ,_Fld25587RRef [Статус]
             ,_Fld25588 [Тема]
             ,_Fld25589 [ТекстПисьма]
             ,_Fld25590 [ИдентификаторСообщения]
             ,_Fld25591 [ДатаТранспорта]
             ,_Fld25592 [Важность]
             ,_Fld25593 [Кодировка]
             ,_Fld25594 [ОтКогоАдрес]
             ,_Fld25595 [ОтКогоПредставление]
             ,_Fld25596RRef [Основание]
             ,_Fld25597 [ПротоколСОшибкой]
             From _Document23176(NOLOCK)";
             var Выборка = new V82.ДокументыВыборка.ТранспортноеСообщение();
             using (var Читалка = Команда.ExecuteReader())
             {
                 while (Читалка.Read())
                 {
                     var Ссылка = new ДокументыСсылка.ТранспортноеСообщение();
                     //ToDo: Читать нужно через GetValues()
                     Ссылка.Ссылка = new Guid((byte[])Читалка.GetValue(0));
                     var ПотокВерсии = ((byte[])Читалка.GetValue(1));
                     Array.Reverse(ПотокВерсии);
                     Ссылка.Версия =  BitConverter.ToInt64(ПотокВерсии, 0);
                     Ссылка.ВерсияДанных =  Convert.ToBase64String(ПотокВерсии);
                     Ссылка.ПометкаУдаления = ((byte[])Читалка.GetValue(2))[0]==1;
                     Ссылка.Тип = V82.Перечисления/*Ссылка*/.ТипыТранспортныхСообщений.ПустаяСсылка.Получить((byte[])Читалка.GetValue(4));
                     Ссылка.Статус = V82.Перечисления/*Ссылка*/.СтатусыПисем.ПустаяСсылка.Получить((byte[])Читалка.GetValue(12));
                     Ссылка.Тема = Читалка.GetString(13);
                     Ссылка.ТекстПисьма = Читалка.GetString(14);
                     Ссылка.ИдентификаторСообщения = Читалка.GetString(15);
                     Ссылка.ДатаТранспорта = Читалка.GetDateTime(16);
                     Ссылка.Важность = Читалка.GetDecimal(17);
                     Ссылка.Кодировка = Читалка.GetString(18);
                     Ссылка.ОтКогоАдрес = Читалка.GetString(19);
                     Ссылка.ОтКогоПредставление = Читалка.GetString(20);
                     Ссылка.Основание = V82.ДокументыСсылка.ТранспортноеСообщение.ВзятьИзКэша((byte[])Читалка.GetValue(21));
                     Ссылка.ПротоколСОшибкой = ((byte[])Читалка.GetValue(22))[0]==1;
                     Выборка.Add(Ссылка);
                 }
                     return Выборка;
             }
         }
     }
 }
        public static V82.ДокументыСсылка.ТранспортноеСообщение ВзятьИзКэша(byte[] УникальныйИдентификатор)
        {
            var УИ = new Guid(УникальныйИдентификатор);

            if (Кэш.ContainsKey(УИ))
            {
                return((V82.ДокументыСсылка.ТранспортноеСообщение)Кэш[УИ]);
            }
            var Ссылка = new V82.ДокументыСсылка.ТранспортноеСообщение(УникальныйИдентификатор);

            Кэш.Add(УИ, Ссылка);
            return(Ссылка);
        }
        public ТранспортноеСообщение(byte[] УникальныйИдентификатор)
        {
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    Команда.CommandText = @"Select top 1 
					_IDRRef [Ссылка]
					,_Version [Версия]
					,_Marked [ПометкаУдаления]
					,_Fld25582RRef [ЦиклОбмена]
					,_Fld25583RRef [Тип]
					,_Fld25584_TYPE [Отправитель_Тип],_Fld25584_RRRef [Отправитель],_Fld25584_RTRef [Отправитель_Вид]
					,_Fld25585_TYPE [Получатель_Тип],_Fld25585_RRRef [Получатель],_Fld25585_RTRef [Получатель_Вид]
					,_Fld25586RRef [УчетнаяЗапись]
					,_Fld25587RRef [Статус]
					,_Fld25588 [Тема]
					,_Fld25589 [ТекстПисьма]
					,_Fld25590 [ИдентификаторСообщения]
					,_Fld25591 [ДатаТранспорта]
					,_Fld25592 [Важность]
					,_Fld25593 [Кодировка]
					,_Fld25594 [ОтКогоАдрес]
					,_Fld25595 [ОтКогоПредставление]
					,_Fld25596RRef [Основание]
					,_Fld25597 [ПротоколСОшибкой]
					From _Document23176(NOLOCK)
					Where _IDRRef=@УникальныйИдентификатор"                    ;
                    Команда.Parameters.AddWithValue("УникальныйИдентификатор", УникальныйИдентификатор);
                    using (var Читалка = Команда.ExecuteReader())
                    {
                        if (Читалка.Read())
                        {
                            //ToDo: Читать нужно через GetValues()
                            Ссылка = new Guid((byte[])Читалка.GetValue(0));
                            var ПотокВерсии = ((byte[])Читалка.GetValue(1));
                            Array.Reverse(ПотокВерсии);
                            Версия                 = BitConverter.ToInt64(ПотокВерсии, 0);
                            ВерсияДанных           = Convert.ToBase64String(ПотокВерсии);
                            ПометкаУдаления        = ((byte[])Читалка.GetValue(2))[0] == 1;
                            Тип                    = V82.Перечисления /*Ссылка*/.ТипыТранспортныхСообщений.ПустаяСсылка.Получить((byte[])Читалка.GetValue(4));
                            Статус                 = V82.Перечисления /*Ссылка*/.СтатусыПисем.ПустаяСсылка.Получить((byte[])Читалка.GetValue(12));
                            Тема                   = Читалка.GetString(13);
                            ТекстПисьма            = Читалка.GetString(14);
                            ИдентификаторСообщения = Читалка.GetString(15);
                            ДатаТранспорта         = Читалка.GetDateTime(16);
                            Важность               = Читалка.GetDecimal(17);
                            Кодировка              = Читалка.GetString(18);
                            ОтКогоАдрес            = Читалка.GetString(19);
                            ОтКогоПредставление    = Читалка.GetString(20);
                            Основание              = new V82.ДокументыСсылка.ТранспортноеСообщение((byte[])Читалка.GetValue(21));
                            ПротоколСОшибкой       = ((byte[])Читалка.GetValue(22))[0] == 1;
                            //return Ссылка;
                        }
                        else
                        {
                            //return null;
                        }
                    }
                }
            }
        }
 public ТранспортноеСообщение(byte[] УникальныйИдентификатор)
 {
     using (var Подключение = new SqlConnection(СтрокаСоединения))
     {
         Подключение.Open();
         using (var Команда = Подключение.CreateCommand())
         {
             Команда.CommandText = @"Select top 1
             _IDRRef [Ссылка]
             ,_Version [Версия]
             ,_Marked [ПометкаУдаления]
             ,_Fld25582RRef [ЦиклОбмена]
             ,_Fld25583RRef [Тип]
             ,_Fld25584_TYPE [Отправитель_Тип],_Fld25584_RRRef [Отправитель],_Fld25584_RTRef [Отправитель_Вид]
             ,_Fld25585_TYPE [Получатель_Тип],_Fld25585_RRRef [Получатель],_Fld25585_RTRef [Получатель_Вид]
             ,_Fld25586RRef [УчетнаяЗапись]
             ,_Fld25587RRef [Статус]
             ,_Fld25588 [Тема]
             ,_Fld25589 [ТекстПисьма]
             ,_Fld25590 [ИдентификаторСообщения]
             ,_Fld25591 [ДатаТранспорта]
             ,_Fld25592 [Важность]
             ,_Fld25593 [Кодировка]
             ,_Fld25594 [ОтКогоАдрес]
             ,_Fld25595 [ОтКогоПредставление]
             ,_Fld25596RRef [Основание]
             ,_Fld25597 [ПротоколСОшибкой]
             From _Document23176(NOLOCK)
             Where _IDRRef=@УникальныйИдентификатор";
             Команда.Parameters.AddWithValue("УникальныйИдентификатор", УникальныйИдентификатор);
             using (var Читалка = Команда.ExecuteReader())
             {
                 if (Читалка.Read())
                 {
                     //ToDo: Читать нужно через GetValues()
                     Ссылка = new Guid((byte[])Читалка.GetValue(0));
                     var ПотокВерсии = ((byte[])Читалка.GetValue(1));
                     Array.Reverse(ПотокВерсии);
                     Версия =  BitConverter.ToInt64(ПотокВерсии, 0);
                     ВерсияДанных =  Convert.ToBase64String(ПотокВерсии);
                     ПометкаУдаления = ((byte[])Читалка.GetValue(2))[0]==1;
                     Тип = V82.Перечисления/*Ссылка*/.ТипыТранспортныхСообщений.ПустаяСсылка.Получить((byte[])Читалка.GetValue(4));
                     Статус = V82.Перечисления/*Ссылка*/.СтатусыПисем.ПустаяСсылка.Получить((byte[])Читалка.GetValue(12));
                     Тема = Читалка.GetString(13);
                     ТекстПисьма = Читалка.GetString(14);
                     ИдентификаторСообщения = Читалка.GetString(15);
                     ДатаТранспорта = Читалка.GetDateTime(16);
                     Важность = Читалка.GetDecimal(17);
                     Кодировка = Читалка.GetString(18);
                     ОтКогоАдрес = Читалка.GetString(19);
                     ОтКогоПредставление = Читалка.GetString(20);
                     Основание = new V82.ДокументыСсылка.ТранспортноеСообщение((byte[])Читалка.GetValue(21));
                     ПротоколСОшибкой = ((byte[])Читалка.GetValue(22))[0]==1;
                     //return Ссылка;
                 }
                 else
                 {
                     //return null;
                 }
             }
         }
     }
 }
 public static V82.ДокументыСсылка.ТранспортноеСообщение ВзятьИзКэша(byte[] УникальныйИдентификатор)
 {
     var УИ = new Guid(УникальныйИдентификатор);
     if (Кэш.ContainsKey(УИ))
     {
         return (V82.ДокументыСсылка.ТранспортноеСообщение)Кэш[УИ];
     }
     var Ссылка = new V82.ДокументыСсылка.ТранспортноеСообщение(УникальныйИдентификатор);
     Кэш.Add(УИ, Ссылка);
     return Ссылка;
 }