Inheritance: ДокументСсылка, IСериализаторProtoBuf, IСериализаторJson
        public static V82.ДокументыСсылка.НачислениеОтпускаРаботникамОрганизаций ВзятьИзКэша(byte[] УникальныйИдентификатор)
        {
            var УИ = new Guid(УникальныйИдентификатор);

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

            Кэш.Add(УИ, Ссылка);
            return(Ссылка);
        }
 public static ДокументыВыборка.НачислениеОтпускаРаботникамОрганизаций СтраницаПоСсылке(int Размер,int Номер)
 {
     using (var Подключение = new SqlConnection(СтрокаСоединения))
     {
         Подключение.Open();
         using (var Команда = Подключение.CreateCommand())
         {
             Команда.CommandText = @"Select top 1000
             _IDRRef [Ссылка]
             ,_Version [Версия]
             ,_Marked [ПометкаУдаления]
             ,_Fld6309 [ПериодРегистрации]
             ,_Fld6310RRef [Организация]
             ,_Fld6311 [Комментарий]
             ,_Fld6312RRef [Ответственный]
             ,_Fld21589RRef [Сотрудник]
             ,_Fld6313RRef [Физлицо]
             ,_Fld26847 [ДатаНачалаСобытия]
             ,_Fld6315 [ДатаНачалаОсновногоОтпуска]
             ,_Fld6316 [ДатаОкончанияОсновногоОтпуска]
             ,_Fld21590 [КоличествоДнейОсновногоОтпуска]
             ,_Fld6317RRef [ПорядокРасчетаОсновногоОтпуска]
             ,_Fld6318 [ДатаНачалаДополнительногоОтпуска]
             ,_Fld6319 [ДатаОкончанияДополнительногоОтпуска]
             ,_Fld21591 [КоличествоДнейДополнительногоОтпуска]
             ,_Fld6320RRef [ВидРасчетаДополнительногоОтпуска]
             ,_Fld6324 [УдалитьРезультатКомпенсацииОтпуска]
             ,_Fld6321 [ПроцентОплатыДополнительногоОтпуска]
             ,_Fld6326 [УдалитьСторноРезультатКомпенсацииОтпуска]
             ,_Fld6322RRef [ПорядокРасчетаКомпенсацииОтпуска]
             ,_Fld6323 [ДнейЧасовКомпенсацииОтпуска]
             ,_Fld18526 [ИспользоватьСреднеЧасовойЗаработок]
             ,_Fld6314RRef [УдалитьПриказ]
             ,_Fld6325RRef [ПерерассчитываемыйДокумент]
             ,_Fld6327 [РабочийГодС]
             ,_Fld6328 [РабочийГодПо]
             ,_Fld26848 [ОсновнойОтпуск]
             ,_Fld26849 [ДополнительныйОтпуск]
             ,_Fld26850 [КомпенсацияОтпуска]
             ,_Fld26851 [ПериодРасчетаСреднегоЗаработкаНачало]
             ,_Fld26852 [ПериодРасчетаСреднегоЗаработкаОкончание]
             ,_Fld26853 [Фамилия]
             ,_Fld26854 [Имя]
             ,_Fld26855 [Отчество]
             ,_Fld26856RRef [ВидДокумента]
             ,_Fld26857 [СерияДокумента]
             ,_Fld26858 [НомерДокумента]
             ,_Fld26859 [ДатаВыдачиДокумента]
             ,_Fld26860 [ДатаДействияДокумента]
             ,_Fld26861 [ПеречислятьПособиеПочтовымПереводом]
             ,_Fld26862RRef [Банк]
             ,_Fld26863 [НомерЛицевогоСчета]
             ,_Fld26864 [АдресПочтовый]
             ,_Fld26865 [НаименованиеБанка]
             ,_Fld26866 [БИКБанка]
             ,_Fld26867RRef [ДолжностьУполномоченного]
             ,_Fld26868RRef [Уполномоченный]
             ,_Fld26869 [КоррСчетБанка]
             ,_Fld26870 [КемВыданДокумент]
             ,_Fld26871 [АдресРегистрации]
             ,_Fld26872 [Телефон]
             ,_Fld26873 [ТелефонСоставителя]
             From _Document322(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;
                     Ссылка.ПериодРегистрации = Читалка.GetDateTime(3);
                     Ссылка.Комментарий = Читалка.GetString(5);
                     Ссылка.ДатаНачалаСобытия = Читалка.GetDateTime(9);
                     Ссылка.ДатаНачалаОсновногоОтпуска = Читалка.GetDateTime(10);
                     Ссылка.ДатаОкончанияОсновногоОтпуска = Читалка.GetDateTime(11);
                     Ссылка.КоличествоДнейОсновногоОтпуска = Читалка.GetDecimal(12);
                     Ссылка.ПорядокРасчетаОсновногоОтпуска = V82.Перечисления/*Ссылка*/.ПорядокРасчетаОтпуска.ПустаяСсылка.Получить((byte[])Читалка.GetValue(13));
                     Ссылка.ДатаНачалаДополнительногоОтпуска = Читалка.GetDateTime(14);
                     Ссылка.ДатаОкончанияДополнительногоОтпуска = Читалка.GetDateTime(15);
                     Ссылка.КоличествоДнейДополнительногоОтпуска = Читалка.GetDecimal(16);
                     Ссылка.УдалитьРезультатКомпенсацииОтпуска = Читалка.GetDecimal(18);
                     Ссылка.ПроцентОплатыДополнительногоОтпуска = Читалка.GetDecimal(19);
                     Ссылка.УдалитьСторноРезультатКомпенсацииОтпуска = Читалка.GetDecimal(20);
                     Ссылка.ПорядокРасчетаКомпенсацииОтпуска = V82.Перечисления/*Ссылка*/.ПорядокРасчетаОтпуска.ПустаяСсылка.Получить((byte[])Читалка.GetValue(21));
                     Ссылка.ДнейЧасовКомпенсацииОтпуска = Читалка.GetDecimal(22);
                     Ссылка.ИспользоватьСреднеЧасовойЗаработок = ((byte[])Читалка.GetValue(23))[0]==1;
                     Ссылка.УдалитьПриказ = V82.ДокументыСсылка.ПриемНаРаботуВОрганизацию.ВзятьИзКэша((byte[])Читалка.GetValue(24));
                     Ссылка.ПерерассчитываемыйДокумент = V82.ДокументыСсылка.НачислениеОтпускаРаботникамОрганизаций.ВзятьИзКэша((byte[])Читалка.GetValue(25));
                     Ссылка.РабочийГодС = Читалка.GetDateTime(26);
                     Ссылка.РабочийГодПо = Читалка.GetDateTime(27);
                     Ссылка.ОсновнойОтпуск = ((byte[])Читалка.GetValue(28))[0]==1;
                     Ссылка.ДополнительныйОтпуск = ((byte[])Читалка.GetValue(29))[0]==1;
                     Ссылка.КомпенсацияОтпуска = ((byte[])Читалка.GetValue(30))[0]==1;
                     Ссылка.ПериодРасчетаСреднегоЗаработкаНачало = Читалка.GetDateTime(31);
                     Ссылка.ПериодРасчетаСреднегоЗаработкаОкончание = Читалка.GetDateTime(32);
                     Ссылка.Фамилия = Читалка.GetString(33);
                     Ссылка.Имя = Читалка.GetString(34);
                     Ссылка.Отчество = Читалка.GetString(35);
                     Ссылка.СерияДокумента = Читалка.GetString(37);
                     Ссылка.НомерДокумента = Читалка.GetString(38);
                     Ссылка.ДатаВыдачиДокумента = Читалка.GetDateTime(39);
                     Ссылка.ДатаДействияДокумента = Читалка.GetDateTime(40);
                     Ссылка.ПеречислятьПособиеПочтовымПереводом = ((byte[])Читалка.GetValue(41))[0]==1;
                     Ссылка.НомерЛицевогоСчета = Читалка.GetString(43);
                     Ссылка.АдресПочтовый = Читалка.GetString(44);
                     Ссылка.НаименованиеБанка = Читалка.GetString(45);
                     Ссылка.БИКБанка = Читалка.GetString(46);
                     Ссылка.КоррСчетБанка = Читалка.GetString(49);
                     Ссылка.КемВыданДокумент = Читалка.GetString(50);
                     Ссылка.АдресРегистрации = Читалка.GetString(51);
                     Ссылка.Телефон = Читалка.GetString(52);
                     Ссылка.ТелефонСоставителя = Читалка.GetString(53);
                     Выборка.Add(Ссылка);
                 }
                     return Выборка;
             }
         }
     }
 }
        public НачислениеОтпускаРаботникамОрганизаций(byte[] УникальныйИдентификатор)
        {
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    Команда.CommandText = @"Select top 1 
					_IDRRef [Ссылка]
					,_Version [Версия]
					,_Marked [ПометкаУдаления]
					,_Number [Номер]
					,_Fld6309 [ПериодРегистрации]
					,_Fld6310RRef [Организация]
					,_Fld6311 [Комментарий]
					,_Fld6312RRef [Ответственный]
					,_Fld21589RRef [Сотрудник]
					,_Fld6313RRef [Физлицо]
					,_Fld26847 [ДатаНачалаСобытия]
					,_Fld6315 [ДатаНачалаОсновногоОтпуска]
					,_Fld6316 [ДатаОкончанияОсновногоОтпуска]
					,_Fld21590 [КоличествоДнейОсновногоОтпуска]
					,_Fld6317RRef [ПорядокРасчетаОсновногоОтпуска]
					,_Fld6318 [ДатаНачалаДополнительногоОтпуска]
					,_Fld6319 [ДатаОкончанияДополнительногоОтпуска]
					,_Fld21591 [КоличествоДнейДополнительногоОтпуска]
					,_Fld6320RRef [ВидРасчетаДополнительногоОтпуска]
					,_Fld6324 [УдалитьРезультатКомпенсацииОтпуска]
					,_Fld6321 [ПроцентОплатыДополнительногоОтпуска]
					,_Fld6326 [УдалитьСторноРезультатКомпенсацииОтпуска]
					,_Fld6322RRef [ПорядокРасчетаКомпенсацииОтпуска]
					,_Fld6323 [ДнейЧасовКомпенсацииОтпуска]
					,_Fld18526 [ИспользоватьСреднеЧасовойЗаработок]
					,_Fld6314RRef [УдалитьПриказ]
					,_Fld6325RRef [ПерерассчитываемыйДокумент]
					,_Fld6327 [РабочийГодС]
					,_Fld6328 [РабочийГодПо]
					,_Fld26848 [ОсновнойОтпуск]
					,_Fld26849 [ДополнительныйОтпуск]
					,_Fld26850 [КомпенсацияОтпуска]
					,_Fld26851 [ПериодРасчетаСреднегоЗаработкаНачало]
					,_Fld26852 [ПериодРасчетаСреднегоЗаработкаОкончание]
					,_Fld26853 [Фамилия]
					,_Fld26854 [Имя]
					,_Fld26855 [Отчество]
					,_Fld26856RRef [ВидДокумента]
					,_Fld26857 [СерияДокумента]
					,_Fld26858 [НомерДокумента]
					,_Fld26859 [ДатаВыдачиДокумента]
					,_Fld26860 [ДатаДействияДокумента]
					,_Fld26861 [ПеречислятьПособиеПочтовымПереводом]
					,_Fld26862RRef [Банк]
					,_Fld26863 [НомерЛицевогоСчета]
					,_Fld26864 [АдресПочтовый]
					,_Fld26865 [НаименованиеБанка]
					,_Fld26866 [БИКБанка]
					,_Fld26867RRef [ДолжностьУполномоченного]
					,_Fld26868RRef [Уполномоченный]
					,_Fld26869 [КоррСчетБанка]
					,_Fld26870 [КемВыданДокумент]
					,_Fld26871 [АдресРегистрации]
					,_Fld26872 [Телефон]
					,_Fld26873 [ТелефонСоставителя]
					From _Document322(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;
                            Номер                                    = Читалка.GetString(3);
                            ПериодРегистрации                        = Читалка.GetDateTime(4);
                            Комментарий                              = Читалка.GetString(6);
                            ДатаНачалаСобытия                        = Читалка.GetDateTime(10);
                            ДатаНачалаОсновногоОтпуска               = Читалка.GetDateTime(11);
                            ДатаОкончанияОсновногоОтпуска            = Читалка.GetDateTime(12);
                            КоличествоДнейОсновногоОтпуска           = Читалка.GetDecimal(13);
                            ПорядокРасчетаОсновногоОтпуска           = V82.Перечисления /*Ссылка*/.ПорядокРасчетаОтпуска.ПустаяСсылка.Получить((byte[])Читалка.GetValue(14));
                            ДатаНачалаДополнительногоОтпуска         = Читалка.GetDateTime(15);
                            ДатаОкончанияДополнительногоОтпуска      = Читалка.GetDateTime(16);
                            КоличествоДнейДополнительногоОтпуска     = Читалка.GetDecimal(17);
                            УдалитьРезультатКомпенсацииОтпуска       = Читалка.GetDecimal(19);
                            ПроцентОплатыДополнительногоОтпуска      = Читалка.GetDecimal(20);
                            УдалитьСторноРезультатКомпенсацииОтпуска = Читалка.GetDecimal(21);
                            ПорядокРасчетаКомпенсацииОтпуска         = V82.Перечисления /*Ссылка*/.ПорядокРасчетаОтпуска.ПустаяСсылка.Получить((byte[])Читалка.GetValue(22));
                            ДнейЧасовКомпенсацииОтпуска              = Читалка.GetDecimal(23);
                            ИспользоватьСреднеЧасовойЗаработок       = ((byte[])Читалка.GetValue(24))[0] == 1;
                            УдалитьПриказ                            = new V82.ДокументыСсылка.ПриемНаРаботуВОрганизацию((byte[])Читалка.GetValue(25));
                            ПерерассчитываемыйДокумент               = new V82.ДокументыСсылка.НачислениеОтпускаРаботникамОрганизаций((byte[])Читалка.GetValue(26));
                            абочийГодС                               = Читалка.GetDateTime(27);
                            абочийГодПо                              = Читалка.GetDateTime(28);
                            ОсновнойОтпуск                           = ((byte[])Читалка.GetValue(29))[0] == 1;
                            ДополнительныйОтпуск                     = ((byte[])Читалка.GetValue(30))[0] == 1;
                            КомпенсацияОтпуска                       = ((byte[])Читалка.GetValue(31))[0] == 1;
                            ПериодРасчетаСреднегоЗаработкаНачало     = Читалка.GetDateTime(32);
                            ПериодРасчетаСреднегоЗаработкаОкончание  = Читалка.GetDateTime(33);
                            Фамилия                                  = Читалка.GetString(34);
                            Имя                   = Читалка.GetString(35);
                            Отчество              = Читалка.GetString(36);
                            СерияДокумента        = Читалка.GetString(38);
                            НомерДокумента        = Читалка.GetString(39);
                            ДатаВыдачиДокумента   = Читалка.GetDateTime(40);
                            ДатаДействияДокумента = Читалка.GetDateTime(41);
                            ПеречислятьПособиеПочтовымПереводом = ((byte[])Читалка.GetValue(42))[0] == 1;
                            НомерЛицевогоСчета = Читалка.GetString(44);
                            АдресПочтовый      = Читалка.GetString(45);
                            НаименованиеБанка  = Читалка.GetString(46);
                            БИКБанка           = Читалка.GetString(47);
                            КоррСчетБанка      = Читалка.GetString(50);
                            КемВыданДокумент   = Читалка.GetString(51);
                            АдресРегистрации   = Читалка.GetString(52);
                            Телефон            = Читалка.GetString(53);
                            ТелефонСоставителя = Читалка.GetString(54);
                            //return Ссылка;
                        }
                        else
                        {
                            //return null;
                        }
                    }
                }
            }
        }
 public static V82.ДокументыСсылка.НачислениеОтпускаРаботникамОрганизаций ВзятьИзКэша(byte[] УникальныйИдентификатор)
 {
     var УИ = new Guid(УникальныйИдентификатор);
     if (Кэш.ContainsKey(УИ))
     {
         return (V82.ДокументыСсылка.НачислениеОтпускаРаботникамОрганизаций)Кэш[УИ];
     }
     var Ссылка = new V82.ДокументыСсылка.НачислениеОтпускаРаботникамОрганизаций(УникальныйИдентификатор);
     Кэш.Add(УИ, Ссылка);
     return Ссылка;
 }