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 _Reference105(
                        _IDRRef
                        /*,_Version*/
                        ,_Marked
                        ,_IsMetadata
                        ,_Code
                        ,_Description
                        ,_Fld1550
                        ,_Fld1526
                        ,_Fld1536
                        ,_Fld1553
                        ,_Fld1524RRef
                        ,_Fld1543
                        ,_Fld1535
                        ,_Fld1534
                        ,_Fld1529
                        ,_Fld1551
                        ,_Fld1562RRef
                        ,_Fld1561RRef
                        ,_Fld1549RRef
                        ,_Fld1523RRef
                        ,_Fld1542
                        ,_Fld1527
                        ,_Fld1525
                        ,_Fld1532
                        ,_Fld1540
                        ,_Fld1533
                        ,_Fld1541
                        ,_Fld1558
                        ,_Fld1555
                        ,_Fld1557
                        ,_Fld1556
                        ,_Fld1560RRef
                        ,_Fld1559RRef
                        ,_Fld1528
                        ,_Fld1548
                        ,_Fld1538
                        ,_Fld1554
                        ,_Fld1537
                        ,_Fld1530
                        ,_Fld1539
                        ,_Fld1531
                        ,_Fld1563RRef
                        ,_Fld1544
                        ,_Fld1547
                        ,_Fld1545
                        ,_Fld1546
                        ,_Fld1552
                        ,_Fld1564
                        ,_Fld22976
                        ,_Fld22669
                        ,_Fld26550
                        ,_Fld26551RRef
                        ,_Fld26552RRef
                        ,_Fld26553
                        ,_Fld26554
                        ,_Fld26555
                        ,_Fld26556
                        ,_Fld26557
                        ,_Fld26558
                        ,_Fld26559
                        ,_Fld26560
                        ,_Fld26561
                        ,_Fld26562
                        ,_Fld26563)
                        Values(
                        @Ссылка
                        /*,@Версия*/
                        ,@ПометкаУдаления
                        ,@Предопределенный
                        ,@Код
                        ,@Наименование
                        ,@Префикс
                        ,@ИНН
                        ,@КПП
                        ,@РегистрационныйНомерПФР
                        ,@ГоловнаяОрганизация
                        ,@НаименованиеПолное
                        ,@КодПоОКПО
                        ,@КодПоОКАТО
                        ,@КодИМНС
                        ,@РайонныйКоэффициент
                        ,@ЮрФизЛицо
                        ,@ТерриториальныеУсловияПФР
                        ,@ОсновнойБанковскийСчет
                        ,@ВидСтавокЕСНиПФР
                        ,@НаименованиеПлательщикаПриПеречисленииНалогов
                        ,@ИностраннаяОрганизация
                        ,@ДатаРегистрации
                        ,@КодОКОПФ
                        ,@НаименованиеОКОПФ
                        ,@КодОКФС
                        ,@НаименованиеОКФС
                        ,@СвидетельствоСерияНомер
                        ,@СвидетельствоДатаВыдачи
                        ,@СвидетельствоНаименованиеОргана
                        ,@СвидетельствоКодОргана
                        ,@СтранаРегистрации
                        ,@СтранаПостоянногоМестонахождения
                        ,@КодВСтранеРегистрации
                        ,@ОГРН
                        ,@НаименованиеИнострОрганизации
                        ,@РегистрационныйНомерФСС
                        ,@НаименованиеИМНС
                        ,@КодОКВЭД
                        ,@НаименованиеОКВЭД
                        ,@КодОКОНХ
                        ,@ИндивидуальныйПредприниматель
                        ,@УдалитьОбменЗадействован
                        ,@ОбменКодАбонента
                        ,@ОбменКаталогОтправкиДанныхОтчетности
                        ,@ОбменКаталогПрограммыЭлектроннойПочты
                        ,@РайонныйКоэффициентРФ
                        ,@ОтражатьВРегламентированномУчете
                        ,@КодИФНСПолучателя
                        ,@НаименованиеТерриториальногоОрганаПФР
                        ,@НаименованиеСокращенное
                        ,@ВидОбменаСКонтролирующимиОрганами
                        ,@УчетнаяЗаписьОбмена
                        ,@КодОрганаПФР
                        ,@КодОрганаФСГС
                        ,@ДополнительныйКодФСС
                        ,@КодПодчиненностиФСС
                        ,@ЦифровойИндексОбособленногоПодразделения
                        ,@РегистрационныйНомерТФОМС
                        ,@ИПРегистрационныйНомерПФР
                        ,@ИПРегистрационныйНомерФСС
                        ,@ИПКодПодчиненностиФСС
                        ,@ИПРегистрационныйНомерТФОМС
                        ,@НаименованиеТерриториальногоОрганаФСС)";
                    }
                    else
                    {
                        Команда.CommandText = @"
                        Update _Reference105
                        Set
                        /*_IDRRef	= @Ссылка*/
                        /*,_Version	= @Версия*/
                        _Marked	= @ПометкаУдаления
                        ,_IsMetadata	= @Предопределенный
                        ,_Code	= @Код
                        ,_Description	= @Наименование
                        ,_Fld1550	= @Префикс
                        ,_Fld1526	= @ИНН
                        ,_Fld1536	= @КПП
                        ,_Fld1553	= @РегистрационныйНомерПФР
                        ,_Fld1524RRef	= @ГоловнаяОрганизация
                        ,_Fld1543	= @НаименованиеПолное
                        ,_Fld1535	= @КодПоОКПО
                        ,_Fld1534	= @КодПоОКАТО
                        ,_Fld1529	= @КодИМНС
                        ,_Fld1551	= @РайонныйКоэффициент
                        ,_Fld1562RRef	= @ЮрФизЛицо
                        ,_Fld1561RRef	= @ТерриториальныеУсловияПФР
                        ,_Fld1549RRef	= @ОсновнойБанковскийСчет
                        ,_Fld1523RRef	= @ВидСтавокЕСНиПФР
                        ,_Fld1542	= @НаименованиеПлательщикаПриПеречисленииНалогов
                        ,_Fld1527	= @ИностраннаяОрганизация
                        ,_Fld1525	= @ДатаРегистрации
                        ,_Fld1532	= @КодОКОПФ
                        ,_Fld1540	= @НаименованиеОКОПФ
                        ,_Fld1533	= @КодОКФС
                        ,_Fld1541	= @НаименованиеОКФС
                        ,_Fld1558	= @СвидетельствоСерияНомер
                        ,_Fld1555	= @СвидетельствоДатаВыдачи
                        ,_Fld1557	= @СвидетельствоНаименованиеОргана
                        ,_Fld1556	= @СвидетельствоКодОргана
                        ,_Fld1560RRef	= @СтранаРегистрации
                        ,_Fld1559RRef	= @СтранаПостоянногоМестонахождения
                        ,_Fld1528	= @КодВСтранеРегистрации
                        ,_Fld1548	= @ОГРН
                        ,_Fld1538	= @НаименованиеИнострОрганизации
                        ,_Fld1554	= @РегистрационныйНомерФСС
                        ,_Fld1537	= @НаименованиеИМНС
                        ,_Fld1530	= @КодОКВЭД
                        ,_Fld1539	= @НаименованиеОКВЭД
                        ,_Fld1531	= @КодОКОНХ
                        ,_Fld1563RRef	= @ИндивидуальныйПредприниматель
                        ,_Fld1544	= @УдалитьОбменЗадействован
                        ,_Fld1547	= @ОбменКодАбонента
                        ,_Fld1545	= @ОбменКаталогОтправкиДанныхОтчетности
                        ,_Fld1546	= @ОбменКаталогПрограммыЭлектроннойПочты
                        ,_Fld1552	= @РайонныйКоэффициентРФ
                        ,_Fld1564	= @ОтражатьВРегламентированномУчете
                        ,_Fld22976	= @КодИФНСПолучателя
                        ,_Fld22669	= @НаименованиеТерриториальногоОрганаПФР
                        ,_Fld26550	= @НаименованиеСокращенное
                        ,_Fld26551RRef	= @ВидОбменаСКонтролирующимиОрганами
                        ,_Fld26552RRef	= @УчетнаяЗаписьОбмена
                        ,_Fld26553	= @КодОрганаПФР
                        ,_Fld26554	= @КодОрганаФСГС
                        ,_Fld26555	= @ДополнительныйКодФСС
                        ,_Fld26556	= @КодПодчиненностиФСС
                        ,_Fld26557	= @ЦифровойИндексОбособленногоПодразделения
                        ,_Fld26558	= @РегистрационныйНомерТФОМС
                        ,_Fld26559	= @ИПРегистрационныйНомерПФР
                        ,_Fld26560	= @ИПРегистрационныйНомерФСС
                        ,_Fld26561	= @ИПКодПодчиненностиФСС
                        ,_Fld26562	= @ИПРегистрационныйНомерТФОМС
                        ,_Fld26563	= @НаименованиеТерриториальногоОрганаФСС
                        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("ОтражатьВРегламентированномУчете", ОтражатьВРегламентированномУчете);
                    Команда.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();
                }
            }
        }