public void Записать()
{
//Установка блокировки элемента на горизантально масштабированный кластер.
//Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
//Выделение сервиса для блокировки элемента и генерации кода
//Выполнение операций контроля без обращений к sql-серверу.
//Контроль конфликта блокировок.
//Контроль загрузки булкинсертом гетерогенной коллекции.
//Контроль уникальности кода для справочников.
//Контроль уникальности номера для документов, в границах префикса.
//Контроль владельца, он не может быть группой.
//Контроль владельца он должен быть задан.
//Контроль родителя он должен быть группой.
//Контроль количества уровней, должен соотвествовать метаданным.
//Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
//Контроль уникальности ссылки
//Контроль зацикливания
//Опционально контроль битых ссылок.
//Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
using (var Подключение = new SqlConnection(СтрокаСоединения))
{
Подключение.Open();
using (var Команда = Подключение.CreateCommand())
{
if(_ЭтоНовый)
{
Команда.CommandText = @"
Insert Into _Reference23135(
_IDRRef
/*,_Version*/
,_Marked
,_IsMetadata
,_Code
,_Description
,_Fld23827
,_Fld23828
,_Fld23829
,_Fld23830
,_Fld23831
,_Fld23832
,_Fld23833
,_Fld23834
,_Fld23835
,_Fld23836
,_Fld23837RRef
,_Fld23838RRef
,_Fld23839
,_Fld23840
,_Fld23841
,_Fld23842
,_Fld23843
,_Fld23844
,_Fld23845
,_Fld23846
,_Fld23847
,_Fld23848
,_Fld23849
,_Fld23850
,_Fld23851RRef
,_Fld23852
,_Fld23853
,_Fld23854
,_Fld23855
,_Fld23856
,_Fld23857
,_Fld23858
,_Fld23859
,_Fld23860
,_Fld23861
,_Fld23862
,_Fld23863
,_Fld23864RRef
,_Fld23865RRef)
Values(
@Ссылка
/*,@Версия*/
,@ПометкаУдаления
,@Предопределенный
,@Код
,@Наименование
,@ИмяПользователяPOP3
,@ПарольPOP3
,@СерверPOP3
,@ПортPOP3
,@ИмяПользователяSMTP
,@ПарольSMTP
,@СерверSMTP
,@ПортSMTP
,@ТребуетсяSMTPАутентификация
,@АдресЭлектроннойПочты
,@НалоговыйОрган
,@СерверДокументооборота
,@СертификатРуководителя
,@СертификатГлавногоБухгалтера
,@СертификатДляШифрования
,@УдалитьАвтоматическоеОпределениеНабораПодписей
,@ИспользуютсяСъемныеКлючевыеНосители
,@УдалитьНестандартныеТаймауты
,@УдалитьТаймаутНалоговогоОргана
,@УдалитьТаймаутНалогоплательщика
,@УдалитьИспользуетсяОбособленнымиПодразделениями
,@ОбменНапрямую
,@ОбменНапрямуюСФСГС
,@НеФормироватьПодтвержденияАвтоматически
,@РежимАвтонастройки
,@ИспользоватьСервисОнлайнПроверкиОтчетов
,@ПредназначенаДляДокументооборотаСФНС
,@ПредназначенаДляДокументооборотаСПФР
,@ПредназначенаДляДокументооборотаСФСГС
,@ИдентификаторСпецоператора
,@ИдентификаторАбонента
,@ИдентификаторСистемыОтправителяПФР
,@ИдентификаторСистемыОтправителяФСГС
,@ЯвляетсяУчетнойЗаписьюУполномоченногоПредставителя
,@ИННУполномоченногоПредставителя
,@КППУполномоченногоПредставителя
,@ПолноеНаименованиеУполномоченногоПредставителя
,@СтатусУчетнойЗаписи
,@СпецоператорСвязи)";
}
else
{
Команда.CommandText = @"
Update _Reference23135
Set
/*_IDRRef = @Ссылка*/
/*,_Version = @Версия*/
_Marked = @ПометкаУдаления
,_IsMetadata = @Предопределенный
,_Code = @Код
,_Description = @Наименование
,_Fld23827 = @ИмяПользователяPOP3
,_Fld23828 = @ПарольPOP3
,_Fld23829 = @СерверPOP3
,_Fld23830 = @ПортPOP3
,_Fld23831 = @ИмяПользователяSMTP
,_Fld23832 = @ПарольSMTP
,_Fld23833 = @СерверSMTP
,_Fld23834 = @ПортSMTP
,_Fld23835 = @ТребуетсяSMTPАутентификация
,_Fld23836 = @АдресЭлектроннойПочты
,_Fld23837RRef = @НалоговыйОрган
,_Fld23838RRef = @СерверДокументооборота
,_Fld23839 = @СертификатРуководителя
,_Fld23840 = @СертификатГлавногоБухгалтера
,_Fld23841 = @СертификатДляШифрования
,_Fld23842 = @УдалитьАвтоматическоеОпределениеНабораПодписей
,_Fld23843 = @ИспользуютсяСъемныеКлючевыеНосители
,_Fld23844 = @УдалитьНестандартныеТаймауты
,_Fld23845 = @УдалитьТаймаутНалоговогоОргана
,_Fld23846 = @УдалитьТаймаутНалогоплательщика
,_Fld23847 = @УдалитьИспользуетсяОбособленнымиПодразделениями
,_Fld23848 = @ОбменНапрямую
,_Fld23849 = @ОбменНапрямуюСФСГС
,_Fld23850 = @НеФормироватьПодтвержденияАвтоматически
,_Fld23851RRef = @РежимАвтонастройки
,_Fld23852 = @ИспользоватьСервисОнлайнПроверкиОтчетов
,_Fld23853 = @ПредназначенаДляДокументооборотаСФНС
,_Fld23854 = @ПредназначенаДляДокументооборотаСПФР
,_Fld23855 = @ПредназначенаДляДокументооборотаСФСГС
,_Fld23856 = @ИдентификаторСпецоператора
,_Fld23857 = @ИдентификаторАбонента
,_Fld23858 = @ИдентификаторСистемыОтправителяПФР
,_Fld23859 = @ИдентификаторСистемыОтправителяФСГС
,_Fld23860 = @ЯвляетсяУчетнойЗаписьюУполномоченногоПредставителя
,_Fld23861 = @ИННУполномоченногоПредставителя
,_Fld23862 = @КППУполномоченногоПредставителя
,_Fld23863 = @ПолноеНаименованиеУполномоченногоПредставителя
,_Fld23864RRef = @СтатусУчетнойЗаписи
,_Fld23865RRef = @СпецоператорСвязи
Where _IDRRef = @Ссылка";
}
Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray());
/*Команда.Parameters.AddWithValue("Версия", Версия);*/
Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления);
Команда.Parameters.AddWithValue("Предопределенный", Предопределенный);
Команда.Parameters.AddWithValue("Код", Код);
Команда.Parameters.AddWithValue("Наименование", Наименование);
Команда.Parameters.AddWithValue("ИмяПользователяPOP3", ИмяПользователяPOP3);
Команда.Parameters.AddWithValue("ПарольPOP3", ПарольPOP3);
Команда.Parameters.AddWithValue("СерверPOP3", СерверPOP3);
Команда.Parameters.AddWithValue("ПортPOP3", ПортPOP3);
Команда.Parameters.AddWithValue("ИмяПользователяSMTP", ИмяПользователяSMTP);
Команда.Parameters.AddWithValue("ПарольSMTP", ПарольSMTP);
Команда.Parameters.AddWithValue("СерверSMTP", СерверSMTP);
Команда.Parameters.AddWithValue("ПортSMTP", ПортSMTP);
Команда.Parameters.AddWithValue("ТребуетсяSMTPАутентификация", ТребуетсяSMTPАутентификация);
Команда.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();
}
}
}