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();
                }
            }
        }
Ejemplo n.º 3
0
        }                                                            //Учитывать время только при расчете
        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();
                }
            }
        }