}                                                                                        //Вид объекта учета
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для справочников.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if (_ЭтоНовый)
                    {
                        Команда.CommandText = @"
						Insert Into _Reference94(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_ParentIDRRef
						,_Folder
						,_Code
						,_Description
						,_Fld1415
						,_Fld1416RRef
						,_Fld1417RRef
						,_Fld1418
						,_Fld1419RRef)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Предопределенный
						,@Родитель
						,@ЭтоГруппа
						,@Код
						,@Наименование
						,@НаименованиеПолное
						,@ВидНМА
						,@АмортизационнаяГруппа
						,@ПрочиеСведения
						,@ВидОбъектаУчета)"                        ;
                    }
                    else
                    {
                        Команда.CommandText = @"
						Update _Reference94
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_IsMetadata	= @Предопределенный
						,_ParentIDRRef	= @Родитель
						,_Folder	= @ЭтоГруппа
						,_Code	= @Код
						,_Description	= @Наименование
						,_Fld1415	= @НаименованиеПолное
						,_Fld1416RRef	= @ВидНМА
						,_Fld1417RRef	= @АмортизационнаяГруппа
						,_Fld1418	= @ПрочиеСведения
						,_Fld1419RRef	= @ВидОбъектаУчета
						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("ВидОбъектаУчета", ВидОбъектаУчета.Ключ());
                    Команда.ExecuteNonQuery();
                }
            }
        }
예제 #2
0
        }                                                                                           //Назначение помещения
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для справочников.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if (_ЭтоНовый)
                    {
                        Команда.CommandText = @"
						Insert Into _Reference111(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_ParentIDRRef
						,_Folder
						,_Code
						,_Description
						,_Fld1584
						,_Fld18594
						,_Fld1581RRef
						,_Fld1579RRef
						,_Fld1578
						,_Fld1577
						,_Fld1575
						,_Fld1580RRef
						,_Fld18595
						,_Fld1583
						,_Fld1574
						,_Fld1576
						,_Fld26568
						,_Fld26569
						,_Fld26570
						,_Fld26571RRef)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Предопределенный
						,@Родитель
						,@ЭтоГруппа
						,@Код
						,@Наименование
						,@Автотранспорт
						,@АдресМестонахождения
						,@АмортизационнаяГруппа
						,@ГруппаОС
						,@ДатаВыпуска
						,@ЗаводскойНомер
						,@Изготовитель
						,@КодПоОКОФ
						,@КодРегиона
						,@Комментарий
						,@НаименованиеПолное
						,@НомерПаспорта
						,@Помещение
						,@КадастровыйНомер
						,@УсловныйНомер
						,@НазначениеПомещения)"                        ;
                    }
                    else
                    {
                        Команда.CommandText = @"
						Update _Reference111
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_IsMetadata	= @Предопределенный
						,_ParentIDRRef	= @Родитель
						,_Folder	= @ЭтоГруппа
						,_Code	= @Код
						,_Description	= @Наименование
						,_Fld1584	= @Автотранспорт
						,_Fld18594	= @АдресМестонахождения
						,_Fld1581RRef	= @АмортизационнаяГруппа
						,_Fld1579RRef	= @ГруппаОС
						,_Fld1578	= @ДатаВыпуска
						,_Fld1577	= @ЗаводскойНомер
						,_Fld1575	= @Изготовитель
						,_Fld1580RRef	= @КодПоОКОФ
						,_Fld18595	= @КодРегиона
						,_Fld1583	= @Комментарий
						,_Fld1574	= @НаименованиеПолное
						,_Fld1576	= @НомерПаспорта
						,_Fld26568	= @Помещение
						,_Fld26569	= @КадастровыйНомер
						,_Fld26570	= @УсловныйНомер
						,_Fld26571RRef	= @НазначениеПомещения
						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("НазначениеПомещения", НазначениеПомещения.Ключ());
                    Команда.ExecuteNonQuery();
                }
            }
        }