}                                                                                 //Срок оплаты для резервов по сомнительным долгам
        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();
                }
            }
        }
Example #2
0
        }                                                                    //Является студентом работающим в студотряде
        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();
                }
            }
        }