}                                                                                                       //Вид приема розничной выручки
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для Документов.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if (_ЭтоНовый)
                    {
                        Команда.CommandText = @"
						Insert Into _Document384(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_Number
						,_Fld8369RRef
						,_Fld8370RRef
						,_Fld8372
						,_Fld8374RRef
						,_Fld8376RRef
						,_Fld8377
						,_Fld8378
						,_Fld8379
						,_Fld8380RRef
						,_Fld8381
						,_Fld8382RRef
						,_Fld8383
						,_Fld8384RRef
						,_Fld8385RRef
						,_Fld8386RRef
						,_Fld8387
						,_Fld8388RRef)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Номер
						,@ВидОперации
						,@Контрагент
						,@ДатаПоступления
						,@ФормаОплаты
						,@ВалютаДокумента
						,@КурсДокумента
						,@КратностьДокумента
						,@СуммаДокумента
						,@Состояние
						,@Описание
						,@Ответственный
						,@Комментарий
						,@Организация
						,@СтатьяОборотов
						,@ЦФО
						,@ВключатьВПлатежныйКалендарь
						,@ВидПриемаРозничнойВыручки)"                        ;
                    }
                    else
                    {
                        Команда.CommandText = @"
						Update _Document384
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_Number	= @Номер
						,_Fld8369RRef	= @ВидОперации
						,_Fld8370RRef	= @Контрагент
						,_Fld8372	= @ДатаПоступления
						,_Fld8374RRef	= @ФормаОплаты
						,_Fld8376RRef	= @ВалютаДокумента
						,_Fld8377	= @КурсДокумента
						,_Fld8378	= @КратностьДокумента
						,_Fld8379	= @СуммаДокумента
						,_Fld8380RRef	= @Состояние
						,_Fld8381	= @Описание
						,_Fld8382RRef	= @Ответственный
						,_Fld8383	= @Комментарий
						,_Fld8384RRef	= @Организация
						,_Fld8385RRef	= @СтатьяОборотов
						,_Fld8386RRef	= @ЦФО
						,_Fld8387	= @ВключатьВПлатежныйКалендарь
						,_Fld8388RRef	= @ВидПриемаРозничнойВыручки
						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();
                }
            }
        }
        }                                                          //Кратность валюты приемника
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для Документов.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if (_ЭтоНовый)
                    {
                        Команда.CommandText = @"
						Insert Into _Document230(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_Number
						,_Fld3489RRef
						,_Fld3490
						,_Fld3491RRef
						,_Fld3492RRef
						,_Fld3493RRef
						,_Fld3494RRef
						,_Fld3495RRef
						,_Fld3496RRef
						,_Fld3497RRef
						,_Fld3498RRef
						,_Fld3500RRef
						,_Fld3501
						,_Fld3502
						,_Fld3503
						,_Fld3504
						,_Fld3505
						,_Fld3506RRef
						,_Fld3507RRef
						,_Fld3508
						,_Fld3509RRef
						,_Fld3511RRef
						,_Fld3512
						,_Fld3513)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Номер
						,@Сценарий
						,@ПериодПланирования
						,@СтатьяОборотов
						,@ЕдиницаИзмеренияИсточник
						,@ЕдиницаИзмеренияПриемник
						,@ЦФОИсточник
						,@ЦФОПриемник
						,@ПроектИсточник
						,@ПроектПриемник
						,@КонтрагентИсточник
						,@ВалютаИсточник
						,@КоличествоИсточник
						,@КоличествоПриемник
						,@Сумма
						,@КурсИсточник
						,@КратностьИсточник
						,@Состояние
						,@Ответственный
						,@Комментарий
						,@КонтрагентПриемник
						,@ВалютаПриемник
						,@КурсПриемник
						,@КратностьПриемник)"                        ;
                    }
                    else
                    {
                        Команда.CommandText = @"
						Update _Document230
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_Number	= @Номер
						,_Fld3489RRef	= @Сценарий
						,_Fld3490	= @ПериодПланирования
						,_Fld3491RRef	= @СтатьяОборотов
						,_Fld3492RRef	= @ЕдиницаИзмеренияИсточник
						,_Fld3493RRef	= @ЕдиницаИзмеренияПриемник
						,_Fld3494RRef	= @ЦФОИсточник
						,_Fld3495RRef	= @ЦФОПриемник
						,_Fld3496RRef	= @ПроектИсточник
						,_Fld3497RRef	= @ПроектПриемник
						,_Fld3498RRef	= @КонтрагентИсточник
						,_Fld3500RRef	= @ВалютаИсточник
						,_Fld3501	= @КоличествоИсточник
						,_Fld3502	= @КоличествоПриемник
						,_Fld3503	= @Сумма
						,_Fld3504	= @КурсИсточник
						,_Fld3505	= @КратностьИсточник
						,_Fld3506RRef	= @Состояние
						,_Fld3507RRef	= @Ответственный
						,_Fld3508	= @Комментарий
						,_Fld3509RRef	= @КонтрагентПриемник
						,_Fld3511RRef	= @ВалютаПриемник
						,_Fld3512	= @КурсПриемник
						,_Fld3513	= @КратностьПриемник
						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("КратностьПриемник", КратностьПриемник);
                    Команда.ExecuteNonQuery();
                }
            }
        }
        }                                              //Дата конца отбора
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для Документов.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if (_ЭтоНовый)
                    {
                        Команда.CommandText = @"
						Insert Into _Document264(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_Number
						,_Fld4601RRef
						,_Fld4602
						,_Fld4603RRef
						,_Fld4604
						,_Fld4605RRef
						,_Fld4606
						,_Fld4607RRef
						,_Fld4608
						,_Fld4609RRef
						,_Fld4610RRef
						,_Fld4611
						,_Fld4612
						,_Fld4613)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Номер
						,@Ответственный
						,@ОтборЦФО
						,@ЦФО
						,@ОтборПроект
						,@Проект
						,@ОтборОтветственный
						,@ОтветственныйПоступление
						,@ОтборКонтрагент
						,@Контрагент
						,@Состояние
						,@Комментарий
						,@ОтборДатаНач
						,@ОтборДатаКон)"                        ;
                    }
                    else
                    {
                        Команда.CommandText = @"
						Update _Document264
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_Number	= @Номер
						,_Fld4601RRef	= @Ответственный
						,_Fld4602	= @ОтборЦФО
						,_Fld4603RRef	= @ЦФО
						,_Fld4604	= @ОтборПроект
						,_Fld4605RRef	= @Проект
						,_Fld4606	= @ОтборОтветственный
						,_Fld4607RRef	= @ОтветственныйПоступление
						,_Fld4608	= @ОтборКонтрагент
						,_Fld4609RRef	= @Контрагент
						,_Fld4610RRef	= @Состояние
						,_Fld4611	= @Комментарий
						,_Fld4612	= @ОтборДатаНач
						,_Fld4613	= @ОтборДатаКон
						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("ОтборДатаКон", ОтборДатаКон);
                    Команда.ExecuteNonQuery();
                }
            }
        }
        }                                                 //Дата утверждения
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для справочников.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if (_ЭтоНовый)
                    {
                        Команда.CommandText = @"
						Insert Into _Reference97(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_Code
						,_Description
						,_Fld1473RRef
						,_Fld1474)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Предопределенный
						,@Код
						,@Наименование
						,@Состояние
						,@ДатаУтверждения)"                        ;
                    }
                    else
                    {
                        Команда.CommandText = @"
						Update _Reference97
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_IsMetadata	= @Предопределенный
						,_Code	= @Код
						,_Description	= @Наименование
						,_Fld1473RRef	= @Состояние
						,_Fld1474	= @ДатаУтверждения
						Where _IDRRef = @Ссылка"                        ;
                    }
                    Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray());
                    /*Команда.Parameters.AddWithValue("Версия", Версия);*/
                    Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления);
                    Команда.Parameters.AddWithValue("Предопределенный", Предопределенный);
                    Команда.Parameters.AddWithValue("Код", Код);
                    Команда.Parameters.AddWithValue("Наименование", Наименование);
                    Команда.Parameters.AddWithValue("Состояние", Состояние.Ключ());
                    Команда.Parameters.AddWithValue("ДатаУтверждения", ДатаУтверждения);
                    Команда.ExecuteNonQuery();
                }
            }
        }
Example #5
0
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для Документов.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if (_ЭтоНовый)
                    {
                        Команда.CommandText = @"
						Insert Into _Document301(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_Number
						,_Fld5546RRef
						,_Fld5547RRef
						,_Fld5548RRef
						,_Fld5549RRef
						,_Fld5550RRef
						,_Fld5551RRef
						,_Fld5552
						,_Fld5553RRef
						,_Fld5554
						,_Fld5555
						,_Fld5556
						,_Fld5557
						,_Fld5558
						,_Fld5559
						,_Fld5560RRef
						,_Fld5561)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Номер
						,@Сценарий
						,@ВидКонтролируемыхЗначений
						,@ИспользованиеКонтролируемыхЗначений
						,@ВидОграниченияОборотов
						,@КонтролирующийСценарий
						,@Ответственный
						,@Комментарий
						,@Состояние
						,@ДатаНачалаКонтролирующегоСценария
						,@ДатаКонцаКонтролирующегоСценария
						,@КонтролироватьЦФО
						,@КонтролироватьПроекты
						,@КонтролироватьКонтрагентов
						,@КонтролироватьНоменклатуру
						,@ВидОтклоненияКонтролируемыхЗначений
						,@Отклонение)"                        ;
                    }
                    else
                    {
                        Команда.CommandText = @"
						Update _Document301
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_Number	= @Номер
						,_Fld5546RRef	= @Сценарий
						,_Fld5547RRef	= @ВидКонтролируемыхЗначений
						,_Fld5548RRef	= @ИспользованиеКонтролируемыхЗначений
						,_Fld5549RRef	= @ВидОграниченияОборотов
						,_Fld5550RRef	= @КонтролирующийСценарий
						,_Fld5551RRef	= @Ответственный
						,_Fld5552	= @Комментарий
						,_Fld5553RRef	= @Состояние
						,_Fld5554	= @ДатаНачалаКонтролирующегоСценария
						,_Fld5555	= @ДатаКонцаКонтролирующегоСценария
						,_Fld5556	= @КонтролироватьЦФО
						,_Fld5557	= @КонтролироватьПроекты
						,_Fld5558	= @КонтролироватьКонтрагентов
						,_Fld5559	= @КонтролироватьНоменклатуру
						,_Fld5560RRef	= @ВидОтклоненияКонтролируемыхЗначений
						,_Fld5561	= @Отклонение
						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("Отклонение", Отклонение);
                    Команда.ExecuteNonQuery();
                }
            }
        }
Example #6
0
        public void Записать()
        {
            //Установка блокировки элемента на горизантально масштабированный кластер.
            //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
            //Выделение сервиса для блокировки элемента и генерации кода
            //Выполнение операций контроля без обращений к sql-серверу.
            //Контроль конфликта блокировок.
            //Контроль загрузки булкинсертом гетерогенной коллекции.
            //Контроль уникальности кода для справочников.
            //Контроль уникальности номера для документов, в границах префикса.
            //Контроль владельца, он не может быть группой.
            //Контроль владельца он должен быть задан.
            //Контроль родителя он должен быть группой.
            //Контроль количества уровней, должен соотвествовать метаданным.
            //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
            //Контроль уникальности ссылки
            //Контроль зацикливания
            //Опционально контроль битых ссылок.
            //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
            using (var Подключение = new SqlConnection(СтрокаСоединения))
            {
                Подключение.Open();
                using (var Команда = Подключение.CreateCommand())
                {
                    if (_ЭтоНовый)
                    {
                        Команда.CommandText = @"
						Insert Into _Reference153(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_ParentIDRRef
						,_Folder
						,_Code
						,_Description
						,_Fld1767RRef
						,_Fld1768
						,_Fld1769RRef
						,_Fld1770
						,_Fld1771
						,_Fld1772
						,_Fld1773RRef
						,_Fld1774
						,_Fld1775
						,_Fld1776
						,_Fld1777
						,_Fld1778
						,_Fld1779
						,_Fld1780
						,_Fld1781
						,_Fld26610RRef)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Предопределенный
						,@Родитель
						,@ЭтоГруппа
						,@Код
						,@Наименование
						,@Состояние
						,@ДатаУтверждения
						,@ВидСпецификации
						,@Активная
						,@КодВерсии
						,@Комментарий
						,@Ответственный
						,@ИспользоватьВозвратныеОтходы
						,@ИспользоватьПараметрыВыпускаПродукции
						,@ИспользоватьДокументацию
						,@ИспользоватьВидНорматива
						,@ИспользоватьВидВоспроизводства
						,@ИспользоватьУказаниеНорматива
						,@ИспользоватьФормулы
						,@ИспользоватьУправлениеСписанием
						,@Назначение)"                        ;
                    }
                    else
                    {
                        Команда.CommandText = @"
						Update _Reference153
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_IsMetadata	= @Предопределенный
						,_ParentIDRRef	= @Родитель
						,_Folder	= @ЭтоГруппа
						,_Code	= @Код
						,_Description	= @Наименование
						,_Fld1767RRef	= @Состояние
						,_Fld1768	= @ДатаУтверждения
						,_Fld1769RRef	= @ВидСпецификации
						,_Fld1770	= @Активная
						,_Fld1771	= @КодВерсии
						,_Fld1772	= @Комментарий
						,_Fld1773RRef	= @Ответственный
						,_Fld1774	= @ИспользоватьВозвратныеОтходы
						,_Fld1775	= @ИспользоватьПараметрыВыпускаПродукции
						,_Fld1776	= @ИспользоватьДокументацию
						,_Fld1777	= @ИспользоватьВидНорматива
						,_Fld1778	= @ИспользоватьВидВоспроизводства
						,_Fld1779	= @ИспользоватьУказаниеНорматива
						,_Fld1780	= @ИспользоватьФормулы
						,_Fld1781	= @ИспользоватьУправлениеСписанием
						,_Fld26610RRef	= @Назначение
						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();
                }
            }
        }