public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для справочников. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Reference23113( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_ParentIDRRef ,_Folder ,_Description ,_Fld23629 ,_Fld23630RRef ,_Fld23631RRef ,_Fld23632RRef ,_Fld23633RRef ,_Fld23634 ,_Fld23635 ,_Fld23636 ,_Fld23637 ,_Fld23638) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Родитель ,@ЭтоГруппа ,@Наименование ,@ГраницаОбработки ,@ПериодДетализации ,@Организация ,@СпособВводаДанных ,@ПодразделениеОрганизации ,@ФормироватьДокументыАвтоматически ,@РегламентноеЗадание ,@НеОбрабатыватьВсеДокументы ,@Комментарий ,@Задержка)" ; } else { Команда.CommandText = @" Update _Reference23113 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_ParentIDRRef = @Родитель ,_Folder = @ЭтоГруппа ,_Description = @Наименование ,_Fld23629 = @ГраницаОбработки ,_Fld23630RRef = @ПериодДетализации ,_Fld23631RRef = @Организация ,_Fld23632RRef = @СпособВводаДанных ,_Fld23633RRef = @ПодразделениеОрганизации ,_Fld23634 = @ФормироватьДокументыАвтоматически ,_Fld23635 = @РегламентноеЗадание ,_Fld23636 = @НеОбрабатыватьВсеДокументы ,_Fld23637 = @Комментарий ,_Fld23638 = @Задержка 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("Задержка", Задержка); Команда.ExecuteNonQuery(); } } }
} //Дата окончания периода public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document19664( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld20206RRef ,_Fld20207 ,_Fld20208RRef ,_Fld20209RRef ,_Fld20210 ,_Fld20211 ,_Fld20212RRef ,_Fld20213RRef ,_Fld20214 ,_Fld20215) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@Организация ,@ПериодРегистрации ,@ПодразделениеОрганизации ,@Ответственный ,@Комментарий ,@КраткийСоставДокумента ,@СпособВводаДанных ,@СпособУказанияПериода ,@ДатаНачалаПериода ,@ДатаОкончанияПериода)" ; } else { Команда.CommandText = @" Update _Document19664 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld20206RRef = @Организация ,_Fld20207 = @ПериодРегистрации ,_Fld20208RRef = @ПодразделениеОрганизации ,_Fld20209RRef = @Ответственный ,_Fld20210 = @Комментарий ,_Fld20211 = @КраткийСоставДокумента ,_Fld20212RRef = @СпособВводаДанных ,_Fld20213RRef = @СпособУказанияПериода ,_Fld20214 = @ДатаНачалаПериода ,_Fld20215 = @ДатаОкончанияПериода 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("ДатаОкончанияПериода", ДатаОкончанияПериода); Команда.ExecuteNonQuery(); } } }
} //Учитывать время только при расчете public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document450( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld11431RRef ,_Fld11432 ,_Fld11433 ,_Fld11434 ,_Fld11435 ,_Fld11436RRef ,_Fld11437RRef ,_Fld11439RRef ,_Fld11440 ,_Fld11441 ,_Fld22037 ,_Fld22038 ,_Fld22039 ,_Fld22040 ,_Fld22041RRef ,_Fld22042 ,_Fld22043 ,_Fld27316) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@Организация ,@ОтражатьВУправленческомУчете ,@ОтражатьВБухгалтерскомУчете ,@ОтражатьВНалоговомУчете ,@Комментарий ,@Ответственный ,@Подразделение ,@ПодразделениеОрганизации ,@КраткийСоставДокумента ,@УдалитьРазвернутыйПериод ,@УчитыватьКТУ ,@УчитыватьТариф ,@УчитыватьОтработанноеВремя ,@РаспределятьТолькоПриработок ,@СпособВводаДанных ,@ПериодРегистрации ,@ДатаНачалаПериода ,@УчитыватьВремяТолькоПриРасчете)" ; } else { Команда.CommandText = @" Update _Document450 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld11431RRef = @Организация ,_Fld11432 = @ОтражатьВУправленческомУчете ,_Fld11433 = @ОтражатьВБухгалтерскомУчете ,_Fld11434 = @ОтражатьВНалоговомУчете ,_Fld11435 = @Комментарий ,_Fld11436RRef = @Ответственный ,_Fld11437RRef = @Подразделение ,_Fld11439RRef = @ПодразделениеОрганизации ,_Fld11440 = @КраткийСоставДокумента ,_Fld11441 = @УдалитьРазвернутыйПериод ,_Fld22037 = @УчитыватьКТУ ,_Fld22038 = @УчитыватьТариф ,_Fld22039 = @УчитыватьОтработанноеВремя ,_Fld22040 = @РаспределятьТолькоПриработок ,_Fld22041RRef = @СпособВводаДанных ,_Fld22042 = @ПериодРегистрации ,_Fld22043 = @ДатаНачалаПериода ,_Fld27316 = @УчитыватьВремяТолькоПриРасчете 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("УчитыватьВремяТолькоПриРасчете", УчитыватьВремяТолькоПриРасчете); Команда.ExecuteNonQuery(); } } }