} //Тип цен public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document235( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld3609RRef ,_Fld3610RRef ,_Fld3611RRef ,_Fld3612RRef ,_Fld3614 ,_Fld3615RRef ,_Fld3616 ,_Fld3617 ,_Fld3619RRef ,_Fld3620RRef ,_Fld3621 ,_Fld3622 ,_Fld3623 ,_Fld3626 ,_Fld3627RRef ,_Fld3628RRef) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@ВалютаДокумента ,@ВидОперации ,@ВидПоступления ,@ДоговорКонтрагента ,@Комментарий ,@Контрагент ,@КратностьВзаиморасчетов ,@КурсВзаиморасчетов ,@Организация ,@Ответственный ,@ОтражатьВБухгалтерскомУчете ,@ОтражатьВНалоговомУчете ,@ОтражатьВУправленческомУчете ,@СуммаДокумента ,@СчетУчетаРасчетовПоТаре ,@ТипЦен)" ; } else { Команда.CommandText = @" Update _Document235 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld3609RRef = @ВалютаДокумента ,_Fld3610RRef = @ВидОперации ,_Fld3611RRef = @ВидПоступления ,_Fld3612RRef = @ДоговорКонтрагента ,_Fld3614 = @Комментарий ,_Fld3615RRef = @Контрагент ,_Fld3616 = @КратностьВзаиморасчетов ,_Fld3617 = @КурсВзаиморасчетов ,_Fld3619RRef = @Организация ,_Fld3620RRef = @Ответственный ,_Fld3621 = @ОтражатьВБухгалтерскомУчете ,_Fld3622 = @ОтражатьВНалоговомУчете ,_Fld3623 = @ОтражатьВУправленческомУчете ,_Fld3626 = @СуммаДокумента ,_Fld3627RRef = @СчетУчетаРасчетовПоТаре ,_Fld3628RRef = @ТипЦен 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("СчетУчетаРасчетовПоТаре", Guid.Empty); Команда.ExecuteNonQuery(); } } }
} //Дата входящего документа электронного обмена public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document236( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld3667RRef ,_Fld3661 ,_Fld3662 ,_Fld3660RRef ,_Fld3672RRef ,_Fld3676 ,_Fld3671RRef ,_Fld3677 ,_Fld3674 ,_Fld3664RRef ,_Fld3678RRef ,_Fld3663 ,_Fld18947 ,_Fld18948 ,_Fld3675RRef ,_Fld3669 ,_Fld3670 ,_Fld3679RRef ,_Fld18949RRef ,_Fld3681RRef ,_Fld3682RRef ,_Fld3684RRef ,_Fld3685RRef ,_Fld3680RRef ,_Fld3666RRef ,_Fld3668 ,_Fld21409 ,_Fld21410) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@ВалютаДокумента ,@ОтражатьВУправленческомУчете ,@ОтражатьВБухгалтерскомУчете ,@ВидОперации ,@ДоговорКонтрагента ,@Комментарий ,@Контрагент ,@КратностьВзаиморасчетов ,@КурсВзаиморасчетов ,@Организация ,@Ответственный ,@ОтражатьВНалоговомУчете ,@ОтразитьВКнигеПокупок ,@ПокупателемВыставляетсяСчетФактураНаВозврат ,@Подразделение ,@СуммаВключаетНДС ,@СуммаДокумента ,@ВидПоступления ,@СчетУчетаНДС ,@СчетУчетаРасчетовПоАвансам ,@СчетУчетаРасчетовПоТаре ,@УсловиеПродаж ,@ДисконтнаяКарта ,@СчетУчетаРасчетовСКонтрагентом ,@ТипЦен ,@УчитыватьНДС ,@НомерВходящегоДокументаЭлектронногоОбмена ,@ДатаВходящегоДокументаЭлектронногоОбмена)" ; } else { Команда.CommandText = @" Update _Document236 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld3667RRef = @ВалютаДокумента ,_Fld3661 = @ОтражатьВУправленческомУчете ,_Fld3662 = @ОтражатьВБухгалтерскомУчете ,_Fld3660RRef = @ВидОперации ,_Fld3672RRef = @ДоговорКонтрагента ,_Fld3676 = @Комментарий ,_Fld3671RRef = @Контрагент ,_Fld3677 = @КратностьВзаиморасчетов ,_Fld3674 = @КурсВзаиморасчетов ,_Fld3664RRef = @Организация ,_Fld3678RRef = @Ответственный ,_Fld3663 = @ОтражатьВНалоговомУчете ,_Fld18947 = @ОтразитьВКнигеПокупок ,_Fld18948 = @ПокупателемВыставляетсяСчетФактураНаВозврат ,_Fld3675RRef = @Подразделение ,_Fld3669 = @СуммаВключаетНДС ,_Fld3670 = @СуммаДокумента ,_Fld3679RRef = @ВидПоступления ,_Fld18949RRef = @СчетУчетаНДС ,_Fld3681RRef = @СчетУчетаРасчетовПоАвансам ,_Fld3682RRef = @СчетУчетаРасчетовПоТаре ,_Fld3684RRef = @УсловиеПродаж ,_Fld3685RRef = @ДисконтнаяКарта ,_Fld3680RRef = @СчетУчетаРасчетовСКонтрагентом ,_Fld3666RRef = @ТипЦен ,_Fld3668 = @УчитыватьНДС ,_Fld21409 = @НомерВходящегоДокументаЭлектронногоОбмена ,_Fld21410 = @ДатаВходящегоДокументаЭлектронногоОбмена 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("СчетУчетаНДС", Guid.Empty); Команда.Parameters.AddWithValue("СчетУчетаРасчетовПоАвансам", Guid.Empty); Команда.Parameters.AddWithValue("СчетУчетаРасчетовПоТаре", Guid.Empty); Команда.Parameters.AddWithValue("СчетУчетаРасчетовСКонтрагентом", Guid.Empty); Команда.Parameters.AddWithValue("УчитыватьНДС", УчитыватьНДС); Команда.Parameters.AddWithValue("НомерВходящегоДокументаЭлектронногоОбмена", НомерВходящегоДокументаЭлектронногоОбмена); Команда.Parameters.AddWithValue("ДатаВходящегоДокументаЭлектронногоОбмена", ДатаВходящегоДокументаЭлектронногоОбмена); Команда.ExecuteNonQuery(); } } }
} //Склад отходов public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document404( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld9417 ,_Fld9418 ,_Fld9419RRef ,_Fld9420 ,_Fld9421RRef ,_Fld9422RRef ,_Fld9423RRef ,_Fld9424 ,_Fld9425RRef ,_Fld9426 ,_Fld9427 ,_Fld9428 ,_Fld9429RRef ,_Fld9430RRef ,_Fld9431 ,_Fld9432 ,_Fld9433 ,_Fld9434RRef ,_Fld9435RRef ,_Fld9437RRef ,_Fld9438 ,_Fld9439RRef ,_Fld9440RRef ,_Fld9441 ,_Fld9442 ,_Fld9443 ,_Fld9444 ,_Fld9445 ,_Fld9446 ,_Fld9447RRef) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@АвтораспределениеМатериалов ,@АвтораспределениеПрочихЗатрат ,@ВалютаДокумента ,@ВводитьСтатьиЗатратПоСтрокам ,@ВидПоступления ,@ДоговорКонтрагента ,@Заказ ,@Комментарий ,@Контрагент ,@КратностьВзаиморасчетов ,@КурсВзаиморасчетов ,@НДСВключенВСтоимость ,@Организация ,@Ответственный ,@ОтражатьВБухгалтерскомУчете ,@ОтражатьВНалоговомУчете ,@ОтражатьВУправленческомУчете ,@Подразделение ,@ПодразделениеОрганизации ,@СтатьяЗатрат ,@СуммаВключаетНДС ,@СчетУчетаРасчетовПоТаре ,@ТипЦен ,@УчитыватьНДС ,@ИспользоватьЗаказы ,@ИспользоватьМатериалы ,@ИспользоватьПрочиеЗатраты ,@АвтораспределениеВозвратныхОтходов ,@ИспользоватьВозвратныеОтходы ,@СкладОтходов)" ; } else { Команда.CommandText = @" Update _Document404 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld9417 = @АвтораспределениеМатериалов ,_Fld9418 = @АвтораспределениеПрочихЗатрат ,_Fld9419RRef = @ВалютаДокумента ,_Fld9420 = @ВводитьСтатьиЗатратПоСтрокам ,_Fld9421RRef = @ВидПоступления ,_Fld9422RRef = @ДоговорКонтрагента ,_Fld9423RRef = @Заказ ,_Fld9424 = @Комментарий ,_Fld9425RRef = @Контрагент ,_Fld9426 = @КратностьВзаиморасчетов ,_Fld9427 = @КурсВзаиморасчетов ,_Fld9428 = @НДСВключенВСтоимость ,_Fld9429RRef = @Организация ,_Fld9430RRef = @Ответственный ,_Fld9431 = @ОтражатьВБухгалтерскомУчете ,_Fld9432 = @ОтражатьВНалоговомУчете ,_Fld9433 = @ОтражатьВУправленческомУчете ,_Fld9434RRef = @Подразделение ,_Fld9435RRef = @ПодразделениеОрганизации ,_Fld9437RRef = @СтатьяЗатрат ,_Fld9438 = @СуммаВключаетНДС ,_Fld9439RRef = @СчетУчетаРасчетовПоТаре ,_Fld9440RRef = @ТипЦен ,_Fld9441 = @УчитыватьНДС ,_Fld9442 = @ИспользоватьЗаказы ,_Fld9443 = @ИспользоватьМатериалы ,_Fld9444 = @ИспользоватьПрочиеЗатраты ,_Fld9445 = @АвтораспределениеВозвратныхОтходов ,_Fld9446 = @ИспользоватьВозвратныеОтходы ,_Fld9447RRef = @СкладОтходов 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("СчетУчетаРасчетовПоТаре", Guid.Empty); Команда.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 _Document405( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld9609RRef ,_Fld9599RRef ,_Fld9600RRef ,_Fld9601 ,_Fld9602RRef ,_Fld9626RRef ,_Fld9598RRef ,_Fld9604RRef ,_Fld9605 ,_Fld9606 ,_Fld9607 ,_Fld9608 ,_Fld9620 ,_Fld9610RRef ,_Fld9611 ,_Fld9612 ,_Fld9613 ,_Fld9615RRef ,_Fld9614RRef ,_Fld9616 ,_Fld9619 ,_Fld9603 ,_Fld9621RRef ,_Fld9622RRef ,_Fld9623RRef ,_Fld9624RRef ,_Fld9625 ,_Fld9628RRef ,_Fld9629RRef ,_Fld9630RRef ,_Fld21860 ,_Fld21861) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@Организация ,@ВидОперации ,@ВидПоступления ,@ДатаВходящегоДокумента ,@ДоговорКонтрагента ,@БанковскийСчетКонтрагента ,@ВалютаДокумента ,@Контрагент ,@КратностьВзаиморасчетов ,@КурсВзаиморасчетов ,@НДСВключенВСтоимость ,@НомерВходящегоДокумента ,@СуммаДокумента ,@Ответственный ,@ОтражатьВБухгалтерскомУчете ,@ОтражатьВНалоговомУчете ,@ОтражатьВУправленческомУчете ,@ПодразделениеОрганизации ,@Подразделение ,@РегистрироватьЦеныПоставщика ,@СуммаВключаетНДС ,@Комментарий ,@СчетУчетаРасчетовПоАвансам ,@СчетУчетаРасчетовПоТаре ,@СчетУчетаРасчетовСКонтрагентом ,@ТипЦен ,@УчитыватьНДС ,@УсловиеПродаж ,@Грузоотправитель ,@Грузополучатель ,@НомерВходящегоДокументаЭлектронногоОбмена ,@ДатаВходящегоДокументаЭлектронногоОбмена)" ; } else { Команда.CommandText = @" Update _Document405 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld9609RRef = @Организация ,_Fld9599RRef = @ВидОперации ,_Fld9600RRef = @ВидПоступления ,_Fld9601 = @ДатаВходящегоДокумента ,_Fld9602RRef = @ДоговорКонтрагента ,_Fld9626RRef = @БанковскийСчетКонтрагента ,_Fld9598RRef = @ВалютаДокумента ,_Fld9604RRef = @Контрагент ,_Fld9605 = @КратностьВзаиморасчетов ,_Fld9606 = @КурсВзаиморасчетов ,_Fld9607 = @НДСВключенВСтоимость ,_Fld9608 = @НомерВходящегоДокумента ,_Fld9620 = @СуммаДокумента ,_Fld9610RRef = @Ответственный ,_Fld9611 = @ОтражатьВБухгалтерскомУчете ,_Fld9612 = @ОтражатьВНалоговомУчете ,_Fld9613 = @ОтражатьВУправленческомУчете ,_Fld9615RRef = @ПодразделениеОрганизации ,_Fld9614RRef = @Подразделение ,_Fld9616 = @РегистрироватьЦеныПоставщика ,_Fld9619 = @СуммаВключаетНДС ,_Fld9603 = @Комментарий ,_Fld9621RRef = @СчетУчетаРасчетовПоАвансам ,_Fld9622RRef = @СчетУчетаРасчетовПоТаре ,_Fld9623RRef = @СчетУчетаРасчетовСКонтрагентом ,_Fld9624RRef = @ТипЦен ,_Fld9625 = @УчитыватьНДС ,_Fld9628RRef = @УсловиеПродаж ,_Fld9629RRef = @Грузоотправитель ,_Fld9630RRef = @Грузополучатель ,_Fld21860 = @НомерВходящегоДокументаЭлектронногоОбмена ,_Fld21861 = @ДатаВходящегоДокументаЭлектронногоОбмена 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("СчетУчетаРасчетовПоАвансам", Guid.Empty); Команда.Parameters.AddWithValue("СчетУчетаРасчетовПоТаре", Guid.Empty); Команда.Parameters.AddWithValue("СчетУчетаРасчетовСКонтрагентом", Guid.Empty); Команда.Parameters.AddWithValue("УчитыватьНДС", УчитыватьНДС); Команда.Parameters.AddWithValue("НомерВходящегоДокументаЭлектронногоОбмена", НомерВходящегоДокументаЭлектронногоОбмена); Команда.Parameters.AddWithValue("ДатаВходящегоДокументаЭлектронногоОбмена", ДатаВходящегоДокументаЭлектронногоОбмена); Команда.ExecuteNonQuery(); } } }
} //Количество листов public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document202( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld2295RRef ,_Fld2296 ,_Fld2297 ,_Fld2298 ,_Fld2299RRef ,_Fld2300 ,_Fld2301 ,_Fld2302 ,_Fld2303RRef ,_Fld2305 ,_Fld2306 ,_Fld2307RRef ,_Fld2308 ,_Fld2309RRef ,_Fld2310RRef ,_Fld2311RRef ,_Fld2312 ,_Fld2313 ,_Fld18929 ,_Fld18930) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@ВалютаДокумента ,@Комментарий ,@КурсДокумента ,@КратностьДокумента ,@Организация ,@ОтражатьВУправленческомУчете ,@ОтражатьВБухгалтерскомУчете ,@ОтражатьВНалоговомУчете ,@Подразделение ,@СуммаВключаетНДС ,@СуммаДокумента ,@ТипЦен ,@УчитыватьНДС ,@ФизЛицо ,@Ответственный ,@ВидПоступления ,@НДСВключенВСтоимость ,@НазначениеАванса ,@КоличествоДокументов ,@КоличествоЛистов)" ; } else { Команда.CommandText = @" Update _Document202 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld2295RRef = @ВалютаДокумента ,_Fld2296 = @Комментарий ,_Fld2297 = @КурсДокумента ,_Fld2298 = @КратностьДокумента ,_Fld2299RRef = @Организация ,_Fld2300 = @ОтражатьВУправленческомУчете ,_Fld2301 = @ОтражатьВБухгалтерскомУчете ,_Fld2302 = @ОтражатьВНалоговомУчете ,_Fld2303RRef = @Подразделение ,_Fld2305 = @СуммаВключаетНДС ,_Fld2306 = @СуммаДокумента ,_Fld2307RRef = @ТипЦен ,_Fld2308 = @УчитыватьНДС ,_Fld2309RRef = @ФизЛицо ,_Fld2310RRef = @Ответственный ,_Fld2311RRef = @ВидПоступления ,_Fld2312 = @НДСВключенВСтоимость ,_Fld2313 = @НазначениеАванса ,_Fld18929 = @КоличествоДокументов ,_Fld18930 = @КоличествоЛистов 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(); } } }