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