V82.ДокументыОбъект.ОтпускПоУходуЗаРебенком.Записать C# (CSharp) Method

Записать() public method

public Записать ( ) : void
return void
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для Документов.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if(_ЭтоНовый)
                    {
                        Команда.CommandText = @"
                        Insert Into _Document346(
                        _IDRRef
                        /*,_Version*/
                        ,_Marked
                        ,_IsMetadata
                        ,_Number
                        ,_Fld6981RRef
                        ,_Fld6982
                        ,_Fld6983RRef
                        ,_Fld21717RRef
                        ,_Fld6984RRef
                        ,_Fld6986
                        ,_Fld6987
                        ,_Fld6988
                        ,_Fld18781
                        ,_Fld18782
                        ,_Fld18783
                        ,_Fld18784
                        ,_Fld18785
                        ,_Fld18786
                        ,_Fld18787
                        ,_Fld6985RRef
                        ,_Fld23003
                        ,_Fld27075
                        ,_Fld27076RRef
                        ,_Fld27077
                        ,_Fld27078
                        ,_Fld27079
                        ,_Fld27080
                        ,_Fld27081
                        ,_Fld27082
                        ,_Fld27083
                        ,_Fld27084
                        ,_Fld27085RRef
                        ,_Fld27086
                        ,_Fld27087
                        ,_Fld27088
                        ,_Fld27089
                        ,_Fld27090
                        ,_Fld27091
                        ,_Fld27092
                        ,_Fld27093RRef
                        ,_Fld27094
                        ,_Fld27095
                        ,_Fld27096
                        ,_Fld27097
                        ,_Fld27098RRef
                        ,_Fld27099RRef
                        ,_Fld27100
                        ,_Fld27101
                        ,_Fld27102
                        ,_Fld27103
                        ,_Fld27104
                        ,_Fld27105
                        ,_Fld27106RRef
                        ,_Fld27107
                        ,_Fld27108
                        ,_Fld27109
                        ,_Fld27110
                        ,_Fld27111
                        ,_Fld27112
                        ,_Fld27113
                        ,_Fld27114
                        ,_Fld27115
                        ,_Fld27116
                        ,_Fld27117
                        ,_Fld27118
                        ,_Fld27119)
                        Values(
                        @Ссылка
                        /*,@Версия*/
                        ,@ПометкаУдаления
                        ,@Номер
                        ,@Организация
                        ,@Комментарий
                        ,@Ответственный
                        ,@Сотрудник
                        ,@Физлицо
                        ,@ДатаДействия
                        ,@ДатаНачала
                        ,@ДатаОкончания
                        ,@ДатаОкончанияПособияДоПолутораЛет
                        ,@ДатаОкончанияПособияДоТрехЛет
                        ,@СреднедневнойЗаработок
                        ,@КоличествоДетей
                        ,@КоличествоПервыхДетей
                        ,@ВыплачиватьПособиеДоПолутораЛет
                        ,@ВыплачиватьПособиеДоТрехЛет
                        ,@УдалитьПриказ
                        ,@ОсвобождатьСтавку
                        ,@ДанныеПрошлойВерсии
                        ,@ИсправляемыйДокумент
                        ,@ДвиженияИсправляемогоДокумента
                        ,@ПериодРасчетаСреднегоЗаработкаНачало
                        ,@ПериодРасчетаСреднегоЗаработкаОкончание
                        ,@ПрименятьЛьготыПриНачисленииПособия
                        ,@СреднедневнойЗаработокПереходногоПериода2010
                        ,@УчитыватьЗаработокПредыдущихСтрахователей
                        ,@РасчетПоПравилам2010Года
                        ,@ПеречислятьПособиеПочтовымПереводом
                        ,@Банк
                        ,@НаименованиеБанка
                        ,@БИКБанка
                        ,@НомерЛицевогоСчета
                        ,@АдресПочтовый
                        ,@Фамилия
                        ,@Имя
                        ,@Отчество
                        ,@ВидДокумента
                        ,@СерияДокумента
                        ,@НомерДокумента
                        ,@ДатаВыдачиДокумента
                        ,@ДатаДействияДокумента
                        ,@ДолжностьУполномоченного
                        ,@Уполномоченный
                        ,@АдресРегистрации
                        ,@ДатаСправкиОНеполученииПособияОтОтца
                        ,@НомерСправкиОНеполученииПособияОтОтца
                        ,@ДатаСправкиОНеполученииПособияОтМатери
                        ,@НомерСправкиОНеполученииПособияОтМатери
                        ,@ПроживаниеРаботаВЛьготнойЗоне
                        ,@СтатусЛьготнойЗоны
                        ,@ДатаСправкиПоДругимМестамРаботы
                        ,@НомерСправкиПоДругимМестамРаботы
                        ,@КемВыданДокумент
                        ,@ДатаВыдачиДокументаНаПроживание
                        ,@НомерДокументаНаПроживание
                        ,@СерияДокументаНаПроживание
                        ,@НаименованиеДокументаНаПроживание
                        ,@КоррСчетБанка
                        ,@Телефон
                        ,@РасчетПособияИзТарифнойСтавки
                        ,@ТарифнаяСтавкаОклад
                        ,@ТелефонСоставителя
                        ,@АдресПочтовыйКодПоКЛАДР)";
                    }
                    else
                    {
                        Команда.CommandText = @"
                        Update _Document346
                        Set
                        /*_IDRRef	= @Ссылка*/
                        /*,_Version	= @Версия*/
                        _Marked	= @ПометкаУдаления
                        ,_Number	= @Номер
                        ,_Fld6981RRef	= @Организация
                        ,_Fld6982	= @Комментарий
                        ,_Fld6983RRef	= @Ответственный
                        ,_Fld21717RRef	= @Сотрудник
                        ,_Fld6984RRef	= @Физлицо
                        ,_Fld6986	= @ДатаДействия
                        ,_Fld6987	= @ДатаНачала
                        ,_Fld6988	= @ДатаОкончания
                        ,_Fld18781	= @ДатаОкончанияПособияДоПолутораЛет
                        ,_Fld18782	= @ДатаОкончанияПособияДоТрехЛет
                        ,_Fld18783	= @СреднедневнойЗаработок
                        ,_Fld18784	= @КоличествоДетей
                        ,_Fld18785	= @КоличествоПервыхДетей
                        ,_Fld18786	= @ВыплачиватьПособиеДоПолутораЛет
                        ,_Fld18787	= @ВыплачиватьПособиеДоТрехЛет
                        ,_Fld6985RRef	= @УдалитьПриказ
                        ,_Fld23003	= @ОсвобождатьСтавку
                        ,_Fld27075	= @ДанныеПрошлойВерсии
                        ,_Fld27076RRef	= @ИсправляемыйДокумент
                        ,_Fld27077	= @ДвиженияИсправляемогоДокумента
                        ,_Fld27078	= @ПериодРасчетаСреднегоЗаработкаНачало
                        ,_Fld27079	= @ПериодРасчетаСреднегоЗаработкаОкончание
                        ,_Fld27080	= @ПрименятьЛьготыПриНачисленииПособия
                        ,_Fld27081	= @СреднедневнойЗаработокПереходногоПериода2010
                        ,_Fld27082	= @УчитыватьЗаработокПредыдущихСтрахователей
                        ,_Fld27083	= @РасчетПоПравилам2010Года
                        ,_Fld27084	= @ПеречислятьПособиеПочтовымПереводом
                        ,_Fld27085RRef	= @Банк
                        ,_Fld27086	= @НаименованиеБанка
                        ,_Fld27087	= @БИКБанка
                        ,_Fld27088	= @НомерЛицевогоСчета
                        ,_Fld27089	= @АдресПочтовый
                        ,_Fld27090	= @Фамилия
                        ,_Fld27091	= @Имя
                        ,_Fld27092	= @Отчество
                        ,_Fld27093RRef	= @ВидДокумента
                        ,_Fld27094	= @СерияДокумента
                        ,_Fld27095	= @НомерДокумента
                        ,_Fld27096	= @ДатаВыдачиДокумента
                        ,_Fld27097	= @ДатаДействияДокумента
                        ,_Fld27098RRef	= @ДолжностьУполномоченного
                        ,_Fld27099RRef	= @Уполномоченный
                        ,_Fld27100	= @АдресРегистрации
                        ,_Fld27101	= @ДатаСправкиОНеполученииПособияОтОтца
                        ,_Fld27102	= @НомерСправкиОНеполученииПособияОтОтца
                        ,_Fld27103	= @ДатаСправкиОНеполученииПособияОтМатери
                        ,_Fld27104	= @НомерСправкиОНеполученииПособияОтМатери
                        ,_Fld27105	= @ПроживаниеРаботаВЛьготнойЗоне
                        ,_Fld27106RRef	= @СтатусЛьготнойЗоны
                        ,_Fld27107	= @ДатаСправкиПоДругимМестамРаботы
                        ,_Fld27108	= @НомерСправкиПоДругимМестамРаботы
                        ,_Fld27109	= @КемВыданДокумент
                        ,_Fld27110	= @ДатаВыдачиДокументаНаПроживание
                        ,_Fld27111	= @НомерДокументаНаПроживание
                        ,_Fld27112	= @СерияДокументаНаПроживание
                        ,_Fld27113	= @НаименованиеДокументаНаПроживание
                        ,_Fld27114	= @КоррСчетБанка
                        ,_Fld27115	= @Телефон
                        ,_Fld27116	= @РасчетПособияИзТарифнойСтавки
                        ,_Fld27117	= @ТарифнаяСтавкаОклад
                        ,_Fld27118	= @ТелефонСоставителя
                        ,_Fld27119	= @АдресПочтовыйКодПоКЛАДР
                        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("ДвиженияИсправляемогоДокумента",new byte[0]);
                    Команда.Parameters.AddWithValue("ПериодРасчетаСреднегоЗаработкаНачало", ПериодРасчетаСреднегоЗаработкаНачало);
                    Команда.Parameters.AddWithValue("ПериодРасчетаСреднегоЗаработкаОкончание", ПериодРасчетаСреднегоЗаработкаОкончание);
                    Команда.Parameters.AddWithValue("ПрименятьЛьготыПриНачисленииПособия", ПрименятьЛьготыПриНачисленииПособия);
                    Команда.Parameters.AddWithValue("СреднедневнойЗаработокПереходногоПериода2010", СреднедневнойЗаработокПереходногоПериода2010);
                    Команда.Parameters.AddWithValue("УчитыватьЗаработокПредыдущихСтрахователей", УчитыватьЗаработокПредыдущихСтрахователей);
                    Команда.Parameters.AddWithValue("РасчетПоПравилам2010Года", РасчетПоПравилам2010Года);
                    Команда.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("ДатаСправкиПоДругимМестамРаботы", ДатаСправкиПоДругимМестамРаботы);
                    Команда.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();
                }
            }
        }
ОтпускПоУходуЗаРебенком