} //Сумма передачи public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document299( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld18967RRef ,_Fld5498RRef ,_Fld5499RRef ,_Fld5501 ,_Fld5502 ,_Fld5503 ,_Fld5504RRef ,_Fld5505RRef ,_Fld18406RRef ,_Fld5506RRef ,_Fld5507RRef ,_Fld5508 ,_Fld5509 ,_Fld5510 ,_Fld5511RRef ,_Fld18408RRef ,_Fld5512RRef ,_Fld5513RRef ,_Fld18969RRef ,_Fld5514RRef ,_Fld5515RRef ,_Fld18407RRef ,_Fld5517RRef ,_Fld5518RRef ,_Fld18398RRef ,_Fld18399RRef ,_Fld18400RRef ,_Fld18401RRef ,_Fld18402RRef ,_Fld18403RRef ,_Fld18404RRef ,_Fld18405RRef ,_Fld5519RRef ,_Fld18970RRef ,_Fld18971RRef ,_Fld18972RRef ,_Fld18973RRef ,_Fld18974RRef ,_Fld18976 ,_Fld18977) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@ВидКомплектации ,@ВидОперации ,@ЕдиницаИзмерения ,@Количество ,@Комментарий ,@Коэффициент ,@НДСвСтоимостиТоваров ,@Номенклатура ,@НоменклатурнаяГруппа ,@Организация ,@Ответственный ,@ОтражатьВБухгалтерскомУчете ,@ОтражатьВНалоговомУчете ,@ОтражатьВУправленческомУчете ,@Подразделение ,@ПодразделениеОрганизации ,@СерияНоменклатуры ,@Склад ,@Спецификация ,@СпособСписанияОстаткаТоваров ,@СтатусПартии ,@СтатьяЗатратСписанияНДС ,@СчетУчетаБУ ,@СчетУчетаНУ ,@СчетСписанияНДС ,@СубконтоСписанияНДС1 ,@СубконтоСписанияНДС2 ,@СубконтоСписанияНДС3 ,@СчетСписанияНДСНУ ,@СубконтоСписанияНДСНУ1 ,@СубконтоСписанияНДСНУ2 ,@СубконтоСписанияНДСНУ3 ,@ХарактеристикаНоменклатуры ,@Контрагент ,@ДоговорКонтрагента ,@СчетЗатрат ,@СчетЗатратНУ ,@СтатьяЗатрат ,@ЦенаПередачи ,@СуммаПередачи)" ; } else { Команда.CommandText = @" Update _Document299 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld18967RRef = @ВидКомплектации ,_Fld5498RRef = @ВидОперации ,_Fld5499RRef = @ЕдиницаИзмерения ,_Fld5501 = @Количество ,_Fld5502 = @Комментарий ,_Fld5503 = @Коэффициент ,_Fld5504RRef = @НДСвСтоимостиТоваров ,_Fld5505RRef = @Номенклатура ,_Fld18406RRef = @НоменклатурнаяГруппа ,_Fld5506RRef = @Организация ,_Fld5507RRef = @Ответственный ,_Fld5508 = @ОтражатьВБухгалтерскомУчете ,_Fld5509 = @ОтражатьВНалоговомУчете ,_Fld5510 = @ОтражатьВУправленческомУчете ,_Fld5511RRef = @Подразделение ,_Fld18408RRef = @ПодразделениеОрганизации ,_Fld5512RRef = @СерияНоменклатуры ,_Fld5513RRef = @Склад ,_Fld18969RRef = @Спецификация ,_Fld5514RRef = @СпособСписанияОстаткаТоваров ,_Fld5515RRef = @СтатусПартии ,_Fld18407RRef = @СтатьяЗатратСписанияНДС ,_Fld5517RRef = @СчетУчетаБУ ,_Fld5518RRef = @СчетУчетаНУ ,_Fld18398RRef = @СчетСписанияНДС ,_Fld18399RRef = @СубконтоСписанияНДС1 ,_Fld18400RRef = @СубконтоСписанияНДС2 ,_Fld18401RRef = @СубконтоСписанияНДС3 ,_Fld18402RRef = @СчетСписанияНДСНУ ,_Fld18403RRef = @СубконтоСписанияНДСНУ1 ,_Fld18404RRef = @СубконтоСписанияНДСНУ2 ,_Fld18405RRef = @СубконтоСписанияНДСНУ3 ,_Fld5519RRef = @ХарактеристикаНоменклатуры ,_Fld18970RRef = @Контрагент ,_Fld18971RRef = @ДоговорКонтрагента ,_Fld18972RRef = @СчетЗатрат ,_Fld18973RRef = @СчетЗатратНУ ,_Fld18974RRef = @СтатьяЗатрат ,_Fld18976 = @ЦенаПередачи ,_Fld18977 = @СуммаПередачи 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("СчетУчетаБУ", Guid.Empty); Команда.Parameters.AddWithValue("СчетУчетаНУ", Guid.Empty); Команда.Parameters.AddWithValue("СчетСписанияНДС", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоСписанияНДС1", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоСписанияНДС2", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоСписанияНДС3", Guid.Empty); Команда.Parameters.AddWithValue("СчетСписанияНДСНУ", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоСписанияНДСНУ1", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоСписанияНДСНУ2", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоСписанияНДСНУ3", Guid.Empty); Команда.Parameters.AddWithValue("СчетЗатрат", Guid.Empty); Команда.Parameters.AddWithValue("СчетЗатратНУ", Guid.Empty); Команда.Parameters.AddWithValue("ЦенаПередачи", ЦенаПередачи); Команда.Parameters.AddWithValue("СуммаПередачи", СуммаПередачи); Команда.ExecuteNonQuery(); } } }
public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document467( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld11982 ,_Fld11983 ,_Fld11984 ,_Fld11985RRef ,_Fld11986RRef ,_Fld11987RRef ,_Fld11988RRef ,_Fld11989 ,_Fld11992RRef ,_Fld11993RRef ,_Fld11994RRef ,_Fld11995RRef ,_Fld11996RRef ,_Fld11997RRef ,_Fld11998RRef ,_Fld11999RRef ,_Fld12000RRef ,_Fld12003 ,_Fld12001RRef ,_Fld12002RRef ,_Fld11990RRef ,_Fld12004) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@ОтражатьВУправленческомУчете ,@ОтражатьВБухгалтерскомУчете ,@ОтражатьВНалоговомУчете ,@Организация ,@Склад ,@Подразделение ,@Ответственный ,@Комментарий ,@НДСвСтоимостиТоваров ,@СчетСписанияНДС ,@СубконтоСписанияНДС1 ,@СубконтоСписанияНДС2 ,@СубконтоСписанияНДС3 ,@СчетСписанияНДСНУ ,@СубконтоСписанияНДСНУ1 ,@СубконтоСписанияНДСНУ2 ,@СубконтоСписанияНДСНУ3 ,@ДляСписанияНДСиспользоватьСчетИАналитикуУчетаЗатрат ,@НоменклатурнаяГруппа ,@СтатьяЗатратСписанияНДС ,@ПодразделениеОрганизации ,@РазрешитьПревышениеЛимита)" ; } else { Команда.CommandText = @" Update _Document467 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld11982 = @ОтражатьВУправленческомУчете ,_Fld11983 = @ОтражатьВБухгалтерскомУчете ,_Fld11984 = @ОтражатьВНалоговомУчете ,_Fld11985RRef = @Организация ,_Fld11986RRef = @Склад ,_Fld11987RRef = @Подразделение ,_Fld11988RRef = @Ответственный ,_Fld11989 = @Комментарий ,_Fld11992RRef = @НДСвСтоимостиТоваров ,_Fld11993RRef = @СчетСписанияНДС ,_Fld11994RRef = @СубконтоСписанияНДС1 ,_Fld11995RRef = @СубконтоСписанияНДС2 ,_Fld11996RRef = @СубконтоСписанияНДС3 ,_Fld11997RRef = @СчетСписанияНДСНУ ,_Fld11998RRef = @СубконтоСписанияНДСНУ1 ,_Fld11999RRef = @СубконтоСписанияНДСНУ2 ,_Fld12000RRef = @СубконтоСписанияНДСНУ3 ,_Fld12003 = @ДляСписанияНДСиспользоватьСчетИАналитикуУчетаЗатрат ,_Fld12001RRef = @НоменклатурнаяГруппа ,_Fld12002RRef = @СтатьяЗатратСписанияНДС ,_Fld11990RRef = @ПодразделениеОрганизации ,_Fld12004 = @РазрешитьПревышениеЛимита Where _IDRRef = @Ссылка" ; } Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray()); /*Команда.Parameters.AddWithValue("Версия", Версия);*/ Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления); Команда.Parameters.AddWithValue("Номер", Номер); Команда.Parameters.AddWithValue("ОтражатьВУправленческомУчете", ОтражатьВУправленческомУчете); Команда.Parameters.AddWithValue("ОтражатьВБухгалтерскомУчете", ОтражатьВБухгалтерскомУчете); Команда.Parameters.AddWithValue("ОтражатьВНалоговомУчете", ОтражатьВНалоговомУчете); Команда.Parameters.AddWithValue("Комментарий", Комментарий); Команда.Parameters.AddWithValue("НДСвСтоимостиТоваров", НДСвСтоимостиТоваров.Ключ()); Команда.Parameters.AddWithValue("СчетСписанияНДС", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоСписанияНДС1", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоСписанияНДС2", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоСписанияНДС3", Guid.Empty); Команда.Parameters.AddWithValue("СчетСписанияНДСНУ", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоСписанияНДСНУ1", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоСписанияНДСНУ2", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоСписанияНДСНУ3", Guid.Empty); Команда.Parameters.AddWithValue("ДляСписанияНДСиспользоватьСчетИАналитикуУчетаЗатрат", ДляСписанияНДСиспользоватьСчетИАналитикуУчетаЗатрат); Команда.Parameters.AddWithValue("РазрешитьПревышениеЛимита", азрешитьПревышениеЛимита); Команда.ExecuteNonQuery(); } } }