public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для Документов.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if (_ЭтоНовый)
                    {
                        Команда.CommandText = @"
						Insert Into _Document23149(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_Number
						,_Fld24332RRef
						,_Fld24333RRef
						,_Fld24334RRef
						,_Fld24335RRef
						,_Fld24336RRef
						,_Fld24337
						,_Fld24338
						,_Fld24339
						,_Fld24340
						,_Fld24341
						,_Fld24342
						,_Fld24343
						,_Fld24344
						,_Fld24345
						,_Fld24346
						,_Fld24347
						,_Fld24348RRef
						,_Fld24349
						,_Fld24350
						,_Fld24351
						,_Fld24352
						,_Fld24353
						,_Fld24354RRef)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Номер
						,@Организация
						,@Сотрудник
						,@ФизЛицо
						,@Страхователь
						,@ВидПособия
						,@ПериодРаботыС
						,@ПериодРаботыПо
						,@СтраховательПрекратилДеятельность
						,@ИныеПричиныОтсутствияСправки
						,@СтраховойНомерПФР
						,@ДатаРождения
						,@Фамилия
						,@Имя
						,@Отчество
						,@Адрес
						,@Телефон
						,@ВидДокумента
						,@СерияДокумента
						,@НомерДокумента
						,@ДатаВыдачиДокумента
						,@КемВыданДокумент
						,@Комментарий
						,@Ответственный)"                        ;
                    }
                    else
                    {
                        Команда.CommandText = @"
						Update _Document23149
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_Number	= @Номер
						,_Fld24332RRef	= @Организация
						,_Fld24333RRef	= @Сотрудник
						,_Fld24334RRef	= @ФизЛицо
						,_Fld24335RRef	= @Страхователь
						,_Fld24336RRef	= @ВидПособия
						,_Fld24337	= @ПериодРаботыС
						,_Fld24338	= @ПериодРаботыПо
						,_Fld24339	= @СтраховательПрекратилДеятельность
						,_Fld24340	= @ИныеПричиныОтсутствияСправки
						,_Fld24341	= @СтраховойНомерПФР
						,_Fld24342	= @ДатаРождения
						,_Fld24343	= @Фамилия
						,_Fld24344	= @Имя
						,_Fld24345	= @Отчество
						,_Fld24346	= @Адрес
						,_Fld24347	= @Телефон
						,_Fld24348RRef	= @ВидДокумента
						,_Fld24349	= @СерияДокумента
						,_Fld24350	= @НомерДокумента
						,_Fld24351	= @ДатаВыдачиДокумента
						,_Fld24352	= @КемВыданДокумент
						,_Fld24353	= @Комментарий
						,_Fld24354RRef	= @Ответственный
						Where _IDRRef = @Ссылка"                        ;
                    }
                    Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray());
                    /*Команда.Parameters.AddWithValue("Версия", Версия);*/
                    Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления);
                    Команда.Parameters.AddWithValue("Номер", Номер);
                    Команда.Parameters.AddWithValue("ВидПособия", ВидПособия.Ключ());
                    Команда.Parameters.AddWithValue("ПериодРаботыС", ПериодРаботыС);
                    Команда.Parameters.AddWithValue("ПериодРаботыПо", ПериодРаботыПо);
                    Команда.Parameters.AddWithValue("СтраховательПрекратилДеятельность", СтраховательПрекратилДеятельность);
                    Команда.Parameters.AddWithValue("ИныеПричиныОтсутствияСправки", ИныеПричиныОтсутствияСправки);
                    Команда.Parameters.AddWithValue("СтраховойНомерПФР", СтраховойНомерПФР);
                    Команда.Parameters.AddWithValue("ДатаРождения", ДатаРождения);
                    Команда.Parameters.AddWithValue("Фамилия", Фамилия);
                    Команда.Parameters.AddWithValue("Имя", Имя);
                    Команда.Parameters.AddWithValue("Отчество", Отчество);
                    Команда.Parameters.AddWithValue("Адрес", Адрес);
                    Команда.Parameters.AddWithValue("Телефон", Телефон);
                    Команда.Parameters.AddWithValue("СерияДокумента", СерияДокумента);
                    Команда.Parameters.AddWithValue("НомерДокумента", НомерДокумента);
                    Команда.Parameters.AddWithValue("ДатаВыдачиДокумента", ДатаВыдачиДокумента);
                    Команда.Parameters.AddWithValue("КемВыданДокумент", КемВыданДокумент);
                    Команда.Parameters.AddWithValue("Комментарий", Комментарий);
                    Команда.ExecuteNonQuery();
                }
            }
        }
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для Документов.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if (_ЭтоНовый)
                    {
                        Команда.CommandText = @"
						Insert Into _Document23144(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_Number
						,_Fld24171RRef
						,_Fld24172RRef
						,_Fld24173RRef
						,_Fld24174RRef
						,_Fld24175RRef
						,_Fld24176RRef
						,_Fld24177
						,_Fld24178
						,_Fld24179
						,_Fld24180
						,_Fld24181
						,_Fld24182
						,_Fld24183
						,_Fld24184
						,_Fld24185
						,_Fld24186
						,_Fld24187
						,_Fld24188RRef)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Номер
						,@Организация
						,@Сотрудник
						,@ФизЛицо
						,@ВидПособия
						,@Руководитель
						,@ДолжностьРуководителя
						,@РегистрационныйНомерФСС
						,@ДополнительныйКодФСС
						,@КодПодчиненностиФСС
						,@НаименованиеТерриториальногоОрганаФСС
						,@АдресОрганизации
						,@СтраховойНомерПФР
						,@Фамилия
						,@Имя
						,@Отчество
						,@Адрес
						,@Комментарий
						,@Ответственный)"                        ;
                    }
                    else
                    {
                        Команда.CommandText = @"
						Update _Document23144
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_Number	= @Номер
						,_Fld24171RRef	= @Организация
						,_Fld24172RRef	= @Сотрудник
						,_Fld24173RRef	= @ФизЛицо
						,_Fld24174RRef	= @ВидПособия
						,_Fld24175RRef	= @Руководитель
						,_Fld24176RRef	= @ДолжностьРуководителя
						,_Fld24177	= @РегистрационныйНомерФСС
						,_Fld24178	= @ДополнительныйКодФСС
						,_Fld24179	= @КодПодчиненностиФСС
						,_Fld24180	= @НаименованиеТерриториальногоОрганаФСС
						,_Fld24181	= @АдресОрганизации
						,_Fld24182	= @СтраховойНомерПФР
						,_Fld24183	= @Фамилия
						,_Fld24184	= @Имя
						,_Fld24185	= @Отчество
						,_Fld24186	= @Адрес
						,_Fld24187	= @Комментарий
						,_Fld24188RRef	= @Ответственный
						Where _IDRRef = @Ссылка"                        ;
                    }
                    Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray());
                    /*Команда.Parameters.AddWithValue("Версия", Версия);*/
                    Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления);
                    Команда.Parameters.AddWithValue("Номер", Номер);
                    Команда.Parameters.AddWithValue("ВидПособия", ВидПособия.Ключ());
                    Команда.Parameters.AddWithValue("РегистрационныйНомерФСС", егистрационныйНомерФСС);
                    Команда.Parameters.AddWithValue("ДополнительныйКодФСС", ДополнительныйКодФСС);
                    Команда.Parameters.AddWithValue("КодПодчиненностиФСС", КодПодчиненностиФСС);
                    Команда.Parameters.AddWithValue("НаименованиеТерриториальногоОрганаФСС", НаименованиеТерриториальногоОрганаФСС);
                    Команда.Parameters.AddWithValue("АдресОрганизации", АдресОрганизации);
                    Команда.Parameters.AddWithValue("СтраховойНомерПФР", СтраховойНомерПФР);
                    Команда.Parameters.AddWithValue("Фамилия", Фамилия);
                    Команда.Parameters.AddWithValue("Имя", Имя);
                    Команда.Parameters.AddWithValue("Отчество", Отчество);
                    Команда.Parameters.AddWithValue("Адрес", Адрес);
                    Команда.Parameters.AddWithValue("Комментарий", Комментарий);
                    Команда.ExecuteNonQuery();
                }
            }
        }