} //Срок оплаты для резервов по сомнительным долгам public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для справочников. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Reference45( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_OwnerIDRRef ,_ParentIDRRef ,_Folder ,_Code ,_Description ,_Fld1062RRef ,_Fld1063RRef ,_Fld1069 ,_Fld1065RRef ,_Fld1066 ,_Fld1067 ,_Fld1068 ,_Fld1073RRef ,_Fld1070 ,_Fld1071 ,_Fld1072 ,_Fld1074 ,_Fld1076RRef ,_Fld1075 ,_Fld1079RRef ,_Fld1078 ,_Fld1080 ,_Fld1081RRef ,_Fld1083 ,_Fld1082 ,_Fld1086 ,_Fld1084 ,_Fld1085 ,_Fld1064RRef ,_Fld1087 ,_Fld1090RRef ,_Fld1091 ,_Fld26523RRef ,_Fld26524RRef ,_Fld26525 ,_Fld26526 ,_Fld26527) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Владелец ,@Родитель ,@ЭтоГруппа ,@Код ,@Наименование ,@ВалютаВзаиморасчетов ,@ВедениеВзаиморасчетов ,@Комментарий ,@ВидУсловийДоговора ,@ДержатьРезервБезОплатыОграниченноеВремя ,@ДопустимаяСуммаЗадолженности ,@ДопустимоеЧислоДнейЗадолженности ,@Организация ,@КонтролироватьСуммуЗадолженности ,@КонтролироватьЧислоДнейЗадолженности ,@ОбособленныйУчетТоваровПоЗаказамПокупателей ,@ПроцентКомиссионногоВознаграждения ,@СпособРасчетаКомиссионногоВознаграждения ,@ПроцентПредоплаты ,@ВидДоговора ,@ЧислоДнейРезерваБезОплаты ,@УчетАгентскогоНДС ,@ВидАгентскогоДоговора ,@РасчетыВУсловныхЕдиницах ,@КонтролироватьДенежныеСредстваКомитента ,@РеализацияНаЭкспорт ,@Дата ,@Номер ,@ВидВзаиморасчетов ,@ВестиПоДокументамРасчетовСКонтрагентом ,@ОсновнаяСтатьяДвиженияДенежныхСредств ,@СрокДействия ,@НаименованиеДляСчетаФактурыНаАванс ,@ПорядокРегистрацииСчетовФактурНаАвансПоДоговору ,@НалоговыйАгентПоОплате ,@УстановленСрокОплатыДляРезервовПоСомнительнымДолгам ,@СрокОплатыДляРезервовПоСомнительнымДолгам)" ; } else { Команда.CommandText = @" Update _Reference45 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_OwnerIDRRef = @Владелец ,_ParentIDRRef = @Родитель ,_Folder = @ЭтоГруппа ,_Code = @Код ,_Description = @Наименование ,_Fld1062RRef = @ВалютаВзаиморасчетов ,_Fld1063RRef = @ВедениеВзаиморасчетов ,_Fld1069 = @Комментарий ,_Fld1065RRef = @ВидУсловийДоговора ,_Fld1066 = @ДержатьРезервБезОплатыОграниченноеВремя ,_Fld1067 = @ДопустимаяСуммаЗадолженности ,_Fld1068 = @ДопустимоеЧислоДнейЗадолженности ,_Fld1073RRef = @Организация ,_Fld1070 = @КонтролироватьСуммуЗадолженности ,_Fld1071 = @КонтролироватьЧислоДнейЗадолженности ,_Fld1072 = @ОбособленныйУчетТоваровПоЗаказамПокупателей ,_Fld1074 = @ПроцентКомиссионногоВознаграждения ,_Fld1076RRef = @СпособРасчетаКомиссионногоВознаграждения ,_Fld1075 = @ПроцентПредоплаты ,_Fld1079RRef = @ВидДоговора ,_Fld1078 = @ЧислоДнейРезерваБезОплаты ,_Fld1080 = @УчетАгентскогоНДС ,_Fld1081RRef = @ВидАгентскогоДоговора ,_Fld1083 = @РасчетыВУсловныхЕдиницах ,_Fld1082 = @КонтролироватьДенежныеСредстваКомитента ,_Fld1086 = @РеализацияНаЭкспорт ,_Fld1084 = @Дата ,_Fld1085 = @Номер ,_Fld1064RRef = @ВидВзаиморасчетов ,_Fld1087 = @ВестиПоДокументамРасчетовСКонтрагентом ,_Fld1090RRef = @ОсновнаяСтатьяДвиженияДенежныхСредств ,_Fld1091 = @СрокДействия ,_Fld26523RRef = @НаименованиеДляСчетаФактурыНаАванс ,_Fld26524RRef = @ПорядокРегистрацииСчетовФактурНаАвансПоДоговору ,_Fld26525 = @НалоговыйАгентПоОплате ,_Fld26526 = @УстановленСрокОплатыДляРезервовПоСомнительнымДолгам ,_Fld26527 = @СрокОплатыДляРезервовПоСомнительнымДолгам Where _IDRRef = @Ссылка" ; } Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray()); /*Команда.Parameters.AddWithValue("Версия", Версия);*/ Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления); Команда.Parameters.AddWithValue("Предопределенный", Предопределенный); Команда.Parameters.AddWithValue("Владелец", Владелец); Команда.Parameters.AddWithValue("Родитель", одитель); Команда.Parameters.AddWithValue("ЭтоГруппа", ЭтоГруппа?new byte[] { 0 }:new byte[] { 1 }); Команда.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(); } } }
} //Является студентом работающим в студотряде public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для справочников. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Reference19650( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_ParentIDRRef ,_Folder ,_Code ,_Description ,_Fld19823RRef ,_Fld19824 ,_Fld19825RRef ,_Fld19826RRef ,_Fld19827RRef ,_Fld19828RRef ,_Fld19829 ,_Fld19830 ,_Fld19831RRef ,_Fld19832RRef ,_Fld19833RRef ,_Fld19834 ,_Fld19835 ,_Fld19836 ,_Fld19837 ,_Fld19838RRef ,_Fld19839 ,_Fld19840RRef ,_Fld19841 ,_Fld19842RRef ,_Fld26595RRef ,_Fld26596RRef ,_Fld26597RRef ,_Fld26598 ,_Fld26599 ,_Fld26600RRef ,_Fld26601RRef ,_Fld26602 ,_Fld26603 ,_Fld26604) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Родитель ,@ЭтоГруппа ,@Код ,@Наименование ,@Физлицо ,@Актуальность ,@Организация ,@ОбособленноеПодразделение ,@ВидДоговора ,@ВидЗанятости ,@НомерДоговора ,@ДатаДоговора ,@ГрафикРаботы ,@ПодразделениеОрганизации ,@Должность ,@ЗанимаемыхСтавок ,@ДатаНачала ,@ДатаОкончания ,@ИспытательныйСрок ,@ВидРасчета ,@ТарифнаяСтавка ,@ВалютаТарифнойСтавки ,@ПостфиксНаименования ,@ТарифныйРазряд ,@ТекущееОбособленноеПодразделение ,@ТекущееПодразделениеОрганизации ,@ТекущаяДолжностьОрганизации ,@ДатаПриемаНаРаботу ,@ДатаУвольнения ,@ТекущееПодразделениеКомпании ,@ТекущаяДолжностьКомпании ,@ДатаПриемаНаРаботуВКомпанию ,@ДатаУвольненияИзКомпании ,@ЯвляетсяСтудентомРаботающимВСтудотряде)" ; } else { Команда.CommandText = @" Update _Reference19650 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_ParentIDRRef = @Родитель ,_Folder = @ЭтоГруппа ,_Code = @Код ,_Description = @Наименование ,_Fld19823RRef = @Физлицо ,_Fld19824 = @Актуальность ,_Fld19825RRef = @Организация ,_Fld19826RRef = @ОбособленноеПодразделение ,_Fld19827RRef = @ВидДоговора ,_Fld19828RRef = @ВидЗанятости ,_Fld19829 = @НомерДоговора ,_Fld19830 = @ДатаДоговора ,_Fld19831RRef = @ГрафикРаботы ,_Fld19832RRef = @ПодразделениеОрганизации ,_Fld19833RRef = @Должность ,_Fld19834 = @ЗанимаемыхСтавок ,_Fld19835 = @ДатаНачала ,_Fld19836 = @ДатаОкончания ,_Fld19837 = @ИспытательныйСрок ,_Fld19838RRef = @ВидРасчета ,_Fld19839 = @ТарифнаяСтавка ,_Fld19840RRef = @ВалютаТарифнойСтавки ,_Fld19841 = @ПостфиксНаименования ,_Fld19842RRef = @ТарифныйРазряд ,_Fld26595RRef = @ТекущееОбособленноеПодразделение ,_Fld26596RRef = @ТекущееПодразделениеОрганизации ,_Fld26597RRef = @ТекущаяДолжностьОрганизации ,_Fld26598 = @ДатаПриемаНаРаботу ,_Fld26599 = @ДатаУвольнения ,_Fld26600RRef = @ТекущееПодразделениеКомпании ,_Fld26601RRef = @ТекущаяДолжностьКомпании ,_Fld26602 = @ДатаПриемаНаРаботуВКомпанию ,_Fld26603 = @ДатаУвольненияИзКомпании ,_Fld26604 = @ЯвляетсяСтудентомРаботающимВСтудотряде Where _IDRRef = @Ссылка" ; } Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray()); /*Команда.Parameters.AddWithValue("Версия", Версия);*/ Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления); Команда.Parameters.AddWithValue("Предопределенный", Предопределенный); Команда.Parameters.AddWithValue("Родитель", одитель); Команда.Parameters.AddWithValue("ЭтоГруппа", ЭтоГруппа?new byte[] { 0 }:new byte[] { 1 }); Команда.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("ТарифнаяСтавка", ТарифнаяСтавка); Команда.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(); } } }