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();
}
}
}