} //Тип базы public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для справочников. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Reference158( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Code ,_Description ,_Fld1924 ,_Fld1925RRef ,_Fld1926RRef ,_Fld1927RRef ,_Fld1928RRef ,_Fld1929RRef ,_Fld1930RRef ,_Fld1931RRef ,_Fld1932 ,_Fld1933 ,_Fld1934 ,_Fld1935 ,_Fld1936 ,_Fld1937 ,_Fld1938 ,_Fld1939RRef ,_Fld1940 ,_Fld1941 ,_Fld1942 ,_Fld1943 ,_Fld26614 ,_Fld26615RRef ,_Fld26616 ,_Fld26617RRef ,_Fld26618 ,_Fld26619RRef) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Код ,@Наименование ,@Комментарий ,@СпособРаспределенияЗатратНаВыпуск ,@ТипФильтраПриРаспределенииЗатратНаВыпуск ,@БазаРаспределенияЗатрат ,@ПоказательБазыРаспределения ,@ТипЦен ,@ОсновноеСырье ,@СпособРаспределенияЗатратПоПодразделениям ,@РаспределятьНаСобственнуюПродукцию ,@РаспределятьНаПродукциюСтороннегоПереработчика ,@РаспределятьНаПродукциюИзДавальческогоСырья ,@РаспределятьНаПодчиненныеПодразделения ,@РаспределятьНаНаработку ,@Процент ,@Коэффициент ,@ПорядокОкругления ,@НастройкиПостроителя ,@ИзменитьНаПроцент ,@ИзменитьНаКоэффициент ,@ОкруглитьДо ,@СхемаКомпоновкиДанных ,@Применимость ,@ИспользоватьПростоеРаспределение ,@НаправлениеРаспределения ,@КогдаПрименять ,@ТипБазыРаспределения)" ; } else { Команда.CommandText = @" Update _Reference158 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_Code = @Код ,_Description = @Наименование ,_Fld1924 = @Комментарий ,_Fld1925RRef = @СпособРаспределенияЗатратНаВыпуск ,_Fld1926RRef = @ТипФильтраПриРаспределенииЗатратНаВыпуск ,_Fld1927RRef = @БазаРаспределенияЗатрат ,_Fld1928RRef = @ПоказательБазыРаспределения ,_Fld1929RRef = @ТипЦен ,_Fld1930RRef = @ОсновноеСырье ,_Fld1931RRef = @СпособРаспределенияЗатратПоПодразделениям ,_Fld1932 = @РаспределятьНаСобственнуюПродукцию ,_Fld1933 = @РаспределятьНаПродукциюСтороннегоПереработчика ,_Fld1934 = @РаспределятьНаПродукциюИзДавальческогоСырья ,_Fld1935 = @РаспределятьНаПодчиненныеПодразделения ,_Fld1936 = @РаспределятьНаНаработку ,_Fld1937 = @Процент ,_Fld1938 = @Коэффициент ,_Fld1939RRef = @ПорядокОкругления ,_Fld1940 = @НастройкиПостроителя ,_Fld1941 = @ИзменитьНаПроцент ,_Fld1942 = @ИзменитьНаКоэффициент ,_Fld1943 = @ОкруглитьДо ,_Fld26614 = @СхемаКомпоновкиДанных ,_Fld26615RRef = @Применимость ,_Fld26616 = @ИспользоватьПростоеРаспределение ,_Fld26617RRef = @НаправлениеРаспределения ,_Fld26618 = @КогдаПрименять ,_Fld26619RRef = @ТипБазыРаспределения 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("НастройкиПостроителя", new byte[0]); Команда.Parameters.AddWithValue("ИзменитьНаПроцент", ИзменитьНаПроцент); Команда.Parameters.AddWithValue("ИзменитьНаКоэффициент", ИзменитьНаКоэффициент); Команда.Parameters.AddWithValue("ОкруглитьДо", ОкруглитьДо); Команда.Parameters.AddWithValue("СхемаКомпоновкиДанных", new byte[0]); Команда.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 _Reference181( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Code ,_Description ,_Fld2107RRef ,_Fld2108RRef ,_Fld2109 ,_Fld2110 ,_Fld2111 ,_Fld2112RRef ,_Fld2113 ,_Fld2114 ,_Fld2115RRef) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Код ,@Наименование ,@ВалютаЦены ,@БазовыйТипЦен ,@Рассчитывается ,@ПроцентСкидкиНаценки ,@ЦенаВключаетНДС ,@ПорядокОкругления ,@ОкруглятьВБольшуюСторону ,@Комментарий ,@СпособРасчетаЦены)" ; } else { Команда.CommandText = @" Update _Reference181 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_Code = @Код ,_Description = @Наименование ,_Fld2107RRef = @ВалютаЦены ,_Fld2108RRef = @БазовыйТипЦен ,_Fld2109 = @Рассчитывается ,_Fld2110 = @ПроцентСкидкиНаценки ,_Fld2111 = @ЦенаВключаетНДС ,_Fld2112RRef = @ПорядокОкругления ,_Fld2113 = @ОкруглятьВБольшуюСторону ,_Fld2114 = @Комментарий ,_Fld2115RRef = @СпособРасчетаЦены 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("СпособРасчетаЦены", СпособРасчетаЦены.Ключ()); Команда.ExecuteNonQuery(); } } }