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 _Document411(
                        _IDRRef
                        /*,_Version*/
                        ,_Marked
                        ,_IsMetadata
                        ,_Number
                        ,_Fld10018RRef
                        ,_Fld10019
                        ,_Fld10020
                        ,_Fld10021RRef
                        ,_Fld10022RRef
                        ,_Fld10023
                        ,_Fld10024RRef
                        ,_Fld10025
                        ,_Fld10026
                        ,_Fld10027
                        ,_Fld10028RRef
                        ,_Fld10029RRef
                        ,_Fld10030RRef
                        ,_Fld10031
                        ,_Fld10032
                        ,_Fld10033
                        ,_Fld10034
                        ,_Fld10035
                        ,_Fld10036RRef
                        ,_Fld10038RRef
                        ,_Fld10039RRef
                        ,_Fld10040RRef
                        ,_Fld10042
                        ,_Fld10041
                        ,_Fld10045RRef
                        ,_Fld10043
                        ,_Fld10044
                        ,_Fld10048RRef
                        ,_Fld10046RRef
                        ,_Fld10047RRef
                        ,_Fld10094RRef
                        ,_Fld10050
                        ,_Fld10052
                        ,_Fld10051
                        ,_Fld10057RRef
                        ,_Fld10053
                        ,_Fld10063RRef
                        ,_Fld10055RRef
                        ,_Fld10056RRef
                        ,_Fld10064
                        ,_Fld10066RRef
                        ,_Fld10059RRef
                        ,_Fld10060RRef
                        ,_Fld10061RRef
                        ,_Fld10062RRef
                        ,_Fld10067RRef
                        ,_Fld10069RRef
                        ,_Fld10065
                        ,_Fld10070RRef
                        ,_Fld10071
                        ,_Fld10068RRef
                        ,_Fld10072
                        ,_Fld10073
                        ,_Fld10077
                        ,_Fld10078
                        ,_Fld10079
                        ,_Fld10074
                        ,_Fld10075RRef
                        ,_Fld10076
                        ,_Fld10080
                        ,_Fld10095
                        ,_Fld10096
                        ,_Fld10097
                        ,_Fld10098
                        ,_Fld10082
                        ,_Fld10081
                        ,_Fld10083RRef
                        ,_Fld10084RRef
                        ,_Fld10085RRef
                        ,_Fld10087RRef
                        ,_Fld10086RRef
                        ,_Fld10089RRef
                        ,_Fld10091RRef
                        ,_Fld10092RRef
                        ,_Fld10093RRef
                        ,_Fld10090RRef
                        ,_Fld10054
                        ,_Fld10049RRef
                        ,_Fld10037RRef
                        ,_Fld10058RRef
                        ,_Fld18829RRef
                        ,_Fld18830RRef
                        ,_Fld18831RRef
                        ,_Fld18832RRef
                        ,_Fld27258RRef)
                        Values(
                        @Ссылка
                        /*,@Версия*/
                        ,@ПометкаУдаления
                        ,@Номер
                        ,@ВидОперации
                        ,@ГодоваяНормаАмортизацииБУ
                        ,@ГодоваяНормаАмортизацииУУ
                        ,@ГрафикАмортизацииПоГодуБУ
                        ,@ГрафикАмортизацииПоГодуУУ
                        ,@ДатаПриобретения
                        ,@ИндивидуальныйГрафикАмортизации
                        ,@Комментарий
                        ,@КоэффициентУскоренияБУ
                        ,@КоэффициентУскоренияУУ
                        ,@МОЛБУ
                        ,@МОЛУУ
                        ,@НаправлениеСписанияПриПринятииКУчету
                        ,@НачислятьАмортизациюБУ
                        ,@НачислятьАмортизациюВТекущемМесяце
                        ,@НачислятьАмортизациюНУ
                        ,@НачислятьАмортизациюУУ
                        ,@НДСВключенВСтоимость
                        ,@Номенклатура
                        ,@ОбъектСтроительства
                        ,@Организация
                        ,@Ответственный
                        ,@ОтражатьВНалоговомУчете
                        ,@ОтражатьВБухгалтерскомУчете
                        ,@ПараметрВыработкиБУ
                        ,@ОтражатьВУправленческомУчете
                        ,@ОтразитьВСоставеМПЗ
                        ,@ПодразделениеОрганизации
                        ,@ПараметрВыработкиУУ
                        ,@Подразделение
                        ,@ПорядокВключенияСтоимостиВСоставРасходовНУ
                        ,@ПредполагаемыйОбъемПродукцииБУ
                        ,@ПринятиеКУчетуОдновременноСВводомВЭксплуатацию
                        ,@ПредполагаемыйОбъемПродукцииУУ
                        ,@Склад
                        ,@ПринятиеКУчетуОдновременноСВводомВЭксплуатациюРегл
                        ,@СоставОсновногоСредства
                        ,@СерияМПЗ
                        ,@СерияНоменклатуры
                        ,@СпециальныйКоэффициентНУ
                        ,@СпособНачисленияАмортизацииБУ
                        ,@СобытиеВводВЭксплуатацию
                        ,@СобытиеВводВЭксплуатациюРегл
                        ,@СобытиеПринятиеКУчету
                        ,@СобытиеПринятиеКУчетуРегл
                        ,@СпособНачисленияАмортизацииНУ
                        ,@СпособПоступления
                        ,@СписыватьПриПринятииКУчету
                        ,@СпособыОтраженияРасходовПоАмортизации
                        ,@СрокПолезногоИспользованияБУ
                        ,@СпособНачисленияАмортизацииУУ
                        ,@СрокПолезногоИспользованияНУ
                        ,@СрокПолезногоИспользованияУСН
                        ,@СтоимостьБУ
                        ,@СтоимостьБУХоз
                        ,@СтоимостьНУ
                        ,@СрокПолезногоИспользованияУУ
                        ,@СтавкаНДС
                        ,@Стоимость
                        ,@СтоимостьНУХоз
                        ,@СтоимостьПР
                        ,@СтоимостьПРХоз
                        ,@СтоимостьВР
                        ,@СтоимостьВРХоз
                        ,@СуммаНДС
                        ,@СтоимостьУСН
                        ,@СчетНачисленияАмортизацииБУ
                        ,@СчетНачисленияАмортизацииНУ
                        ,@СчетУчетаБУ
                        ,@СчетУчетаМПЗБУ
                        ,@СчетУчетаБУВнеоборотногоАктива
                        ,@СчетУчетаНУ
                        ,@ХарактеристикаМПЗ
                        ,@ХарактеристикаНоменклатуры
                        ,@ШифрПоЕНАОФ
                        ,@СчетУчетаНУВнеоборотногоАктива
                        ,@ПроцентКапитальныхВложенийВключаемыхВРасходыНУ
                        ,@ПорядокВключенияСтоимостиВСоставРасходовУСН
                        ,@НоменклатураМПЗ
                        ,@СкладМПЗ
                        ,@СчетУчетаЗатратПоАмортизационнойПремии
                        ,@СубконтоПоАмортизационнойПремии1
                        ,@СубконтоПоАмортизационнойПремии2
                        ,@СубконтоПоАмортизационнойПремии3
                        ,@СпособОтраженияРасходовПриВключенииВСтоимость)";
                    }
                    else
                    {
                        Команда.CommandText = @"
                        Update _Document411
                        Set
                        /*_IDRRef	= @Ссылка*/
                        /*,_Version	= @Версия*/
                        _Marked	= @ПометкаУдаления
                        ,_Number	= @Номер
                        ,_Fld10018RRef	= @ВидОперации
                        ,_Fld10019	= @ГодоваяНормаАмортизацииБУ
                        ,_Fld10020	= @ГодоваяНормаАмортизацииУУ
                        ,_Fld10021RRef	= @ГрафикАмортизацииПоГодуБУ
                        ,_Fld10022RRef	= @ГрафикАмортизацииПоГодуУУ
                        ,_Fld10023	= @ДатаПриобретения
                        ,_Fld10024RRef	= @ИндивидуальныйГрафикАмортизации
                        ,_Fld10025	= @Комментарий
                        ,_Fld10026	= @КоэффициентУскоренияБУ
                        ,_Fld10027	= @КоэффициентУскоренияУУ
                        ,_Fld10028RRef	= @МОЛБУ
                        ,_Fld10029RRef	= @МОЛУУ
                        ,_Fld10030RRef	= @НаправлениеСписанияПриПринятииКУчету
                        ,_Fld10031	= @НачислятьАмортизациюБУ
                        ,_Fld10032	= @НачислятьАмортизациюВТекущемМесяце
                        ,_Fld10033	= @НачислятьАмортизациюНУ
                        ,_Fld10034	= @НачислятьАмортизациюУУ
                        ,_Fld10035	= @НДСВключенВСтоимость
                        ,_Fld10036RRef	= @Номенклатура
                        ,_Fld10038RRef	= @ОбъектСтроительства
                        ,_Fld10039RRef	= @Организация
                        ,_Fld10040RRef	= @Ответственный
                        ,_Fld10042	= @ОтражатьВНалоговомУчете
                        ,_Fld10041	= @ОтражатьВБухгалтерскомУчете
                        ,_Fld10045RRef	= @ПараметрВыработкиБУ
                        ,_Fld10043	= @ОтражатьВУправленческомУчете
                        ,_Fld10044	= @ОтразитьВСоставеМПЗ
                        ,_Fld10048RRef	= @ПодразделениеОрганизации
                        ,_Fld10046RRef	= @ПараметрВыработкиУУ
                        ,_Fld10047RRef	= @Подразделение
                        ,_Fld10094RRef	= @ПорядокВключенияСтоимостиВСоставРасходовНУ
                        ,_Fld10050	= @ПредполагаемыйОбъемПродукцииБУ
                        ,_Fld10052	= @ПринятиеКУчетуОдновременноСВводомВЭксплуатацию
                        ,_Fld10051	= @ПредполагаемыйОбъемПродукцииУУ
                        ,_Fld10057RRef	= @Склад
                        ,_Fld10053	= @ПринятиеКУчетуОдновременноСВводомВЭксплуатациюРегл
                        ,_Fld10063RRef	= @СоставОсновногоСредства
                        ,_Fld10055RRef	= @СерияМПЗ
                        ,_Fld10056RRef	= @СерияНоменклатуры
                        ,_Fld10064	= @СпециальныйКоэффициентНУ
                        ,_Fld10066RRef	= @СпособНачисленияАмортизацииБУ
                        ,_Fld10059RRef	= @СобытиеВводВЭксплуатацию
                        ,_Fld10060RRef	= @СобытиеВводВЭксплуатациюРегл
                        ,_Fld10061RRef	= @СобытиеПринятиеКУчету
                        ,_Fld10062RRef	= @СобытиеПринятиеКУчетуРегл
                        ,_Fld10067RRef	= @СпособНачисленияАмортизацииНУ
                        ,_Fld10069RRef	= @СпособПоступления
                        ,_Fld10065	= @СписыватьПриПринятииКУчету
                        ,_Fld10070RRef	= @СпособыОтраженияРасходовПоАмортизации
                        ,_Fld10071	= @СрокПолезногоИспользованияБУ
                        ,_Fld10068RRef	= @СпособНачисленияАмортизацииУУ
                        ,_Fld10072	= @СрокПолезногоИспользованияНУ
                        ,_Fld10073	= @СрокПолезногоИспользованияУСН
                        ,_Fld10077	= @СтоимостьБУ
                        ,_Fld10078	= @СтоимостьБУХоз
                        ,_Fld10079	= @СтоимостьНУ
                        ,_Fld10074	= @СрокПолезногоИспользованияУУ
                        ,_Fld10075RRef	= @СтавкаНДС
                        ,_Fld10076	= @Стоимость
                        ,_Fld10080	= @СтоимостьНУХоз
                        ,_Fld10095	= @СтоимостьПР
                        ,_Fld10096	= @СтоимостьПРХоз
                        ,_Fld10097	= @СтоимостьВР
                        ,_Fld10098	= @СтоимостьВРХоз
                        ,_Fld10082	= @СуммаНДС
                        ,_Fld10081	= @СтоимостьУСН
                        ,_Fld10083RRef	= @СчетНачисленияАмортизацииБУ
                        ,_Fld10084RRef	= @СчетНачисленияАмортизацииНУ
                        ,_Fld10085RRef	= @СчетУчетаБУ
                        ,_Fld10087RRef	= @СчетУчетаМПЗБУ
                        ,_Fld10086RRef	= @СчетУчетаБУВнеоборотногоАктива
                        ,_Fld10089RRef	= @СчетУчетаНУ
                        ,_Fld10091RRef	= @ХарактеристикаМПЗ
                        ,_Fld10092RRef	= @ХарактеристикаНоменклатуры
                        ,_Fld10093RRef	= @ШифрПоЕНАОФ
                        ,_Fld10090RRef	= @СчетУчетаНУВнеоборотногоАктива
                        ,_Fld10054	= @ПроцентКапитальныхВложенийВключаемыхВРасходыНУ
                        ,_Fld10049RRef	= @ПорядокВключенияСтоимостиВСоставРасходовУСН
                        ,_Fld10037RRef	= @НоменклатураМПЗ
                        ,_Fld10058RRef	= @СкладМПЗ
                        ,_Fld18829RRef	= @СчетУчетаЗатратПоАмортизационнойПремии
                        ,_Fld18830RRef	= @СубконтоПоАмортизационнойПремии1
                        ,_Fld18831RRef	= @СубконтоПоАмортизационнойПремии2
                        ,_Fld18832RRef	= @СубконтоПоАмортизационнойПремии3
                        ,_Fld27258RRef	= @СпособОтраженияРасходовПриВключенииВСтоимость
                        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("ПорядокВключенияСтоимостиВСоставРасходовНУ", ПорядокВключенияСтоимостиВСоставРасходовНУ.Ключ());
                    Команда.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("СчетНачисленияАмортизацииБУ", Guid.Empty);
                    Команда.Parameters.AddWithValue("СчетНачисленияАмортизацииНУ", Guid.Empty);
                    Команда.Parameters.AddWithValue("СчетУчетаБУ", Guid.Empty);
                    Команда.Parameters.AddWithValue("СчетУчетаМПЗБУ", Guid.Empty);
                    Команда.Parameters.AddWithValue("СчетУчетаБУВнеоборотногоАктива", Guid.Empty);
                    Команда.Parameters.AddWithValue("СчетУчетаНУ", Guid.Empty);
                    Команда.Parameters.AddWithValue("СчетУчетаНУВнеоборотногоАктива", Guid.Empty);
                    Команда.Parameters.AddWithValue("ПроцентКапитальныхВложенийВключаемыхВРасходыНУ", ПроцентКапитальныхВложенийВключаемыхВРасходыНУ);
                    Команда.Parameters.AddWithValue("ПорядокВключенияСтоимостиВСоставРасходовУСН", ПорядокВключенияСтоимостиВСоставРасходовУСН.Ключ());
                    Команда.Parameters.AddWithValue("СчетУчетаЗатратПоАмортизационнойПремии", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоПоАмортизационнойПремии1", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоПоАмортизационнойПремии2", Guid.Empty);
                    Команда.Parameters.AddWithValue("СубконтоПоАмортизационнойПремии3", Guid.Empty);
                    Команда.ExecuteNonQuery();
                }
            }
        }