} //Номер документа сторонней организации public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document400( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld9244RRef ,_Fld9245RRef ,_Fld9246RRef ,_Fld9247 ,_Fld9248RRef ,_Fld9249 ,_Fld9250 ,_Fld9251RRef ,_Fld9252 ,_Fld9253 ,_Fld9254 ,_Fld9255RRef ,_Fld9257 ,_Fld9258RRef ,_Fld9259RRef ,_Fld9260 ,_Fld9261 ,_Fld9262 ,_Fld9263 ,_Fld9264 ,_Fld9265RRef ,_Fld9266RRef ,_Fld9267RRef ,_Fld9268 ,_Fld9270 ,_Fld9269) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@ВалютаДокумента ,@ВидОперации ,@ДоговорКонтрагента ,@Комментарий ,@Контрагент ,@КратностьВзаиморасчетов ,@КурсВзаиморасчетов ,@Организация ,@ОтражатьВУправленческомУчете ,@ОтражатьВБухгалтерскомУчете ,@ОтражатьВНалоговомУчете ,@Подразделение ,@Содержание ,@СпособРаспределения ,@СтавкаНДС ,@Сумма ,@СуммаВключаетНДС ,@СуммаДокумента ,@СуммаНДС ,@УчитыватьНДС ,@Ответственный ,@СчетУчетаРасчетовСКонтрагентом ,@СчетУчетаРасчетовПоАвансам ,@НДСВключенВСтоимость ,@ДатаВходящегоДокумента ,@НомерВходящегоДокумента)" ; } else { Команда.CommandText = @" Update _Document400 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld9244RRef = @ВалютаДокумента ,_Fld9245RRef = @ВидОперации ,_Fld9246RRef = @ДоговорКонтрагента ,_Fld9247 = @Комментарий ,_Fld9248RRef = @Контрагент ,_Fld9249 = @КратностьВзаиморасчетов ,_Fld9250 = @КурсВзаиморасчетов ,_Fld9251RRef = @Организация ,_Fld9252 = @ОтражатьВУправленческомУчете ,_Fld9253 = @ОтражатьВБухгалтерскомУчете ,_Fld9254 = @ОтражатьВНалоговомУчете ,_Fld9255RRef = @Подразделение ,_Fld9257 = @Содержание ,_Fld9258RRef = @СпособРаспределения ,_Fld9259RRef = @СтавкаНДС ,_Fld9260 = @Сумма ,_Fld9261 = @СуммаВключаетНДС ,_Fld9262 = @СуммаДокумента ,_Fld9263 = @СуммаНДС ,_Fld9264 = @УчитыватьНДС ,_Fld9265RRef = @Ответственный ,_Fld9266RRef = @СчетУчетаРасчетовСКонтрагентом ,_Fld9267RRef = @СчетУчетаРасчетовПоАвансам ,_Fld9268 = @НДСВключенВСтоимость ,_Fld9270 = @ДатаВходящегоДокумента ,_Fld9269 = @НомерВходящегоДокумента 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("УчитыватьНДС", УчитыватьНДС); Команда.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 _Document411( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld10018RRef ,_Fld10019 ,_Fld10020 ,_Fld10021RRef ,_Fld10022RRef ,_Fld10023 ,_Fld10024RRef ,_Fld10025 ,_Fld10026 ,_Fld10027 ,_Fld10028RRef ,_Fld10029RRef ,_Fld10030RRef ,_Fld10031 ,_Fld10032 ,_Fld10033 ,_Fld10034 ,_Fld10035 ,_Fld10036RRef ,_Fld10038RRef ,_Fld10039RRef ,_Fld10040RRef ,_Fld10042 ,_Fld10041 ,_Fld10045RRef ,_Fld10043 ,_Fld10044 ,_Fld10048RRef ,_Fld10046RRef ,_Fld10047RRef ,_Fld10094RRef ,_Fld10050 ,_Fld10052 ,_Fld10051 ,_Fld10057RRef ,_Fld10053 ,_Fld10063RRef ,_Fld10055RRef ,_Fld10056RRef ,_Fld10064 ,_Fld10066RRef ,_Fld10059RRef ,_Fld10060RRef ,_Fld10061RRef ,_Fld10062RRef ,_Fld10067RRef ,_Fld10069RRef ,_Fld10065 ,_Fld10070RRef ,_Fld10071 ,_Fld10068RRef ,_Fld10072 ,_Fld10073 ,_Fld10077 ,_Fld10078 ,_Fld10079 ,_Fld10074 ,_Fld10075RRef ,_Fld10076 ,_Fld10080 ,_Fld10095 ,_Fld10096 ,_Fld10097 ,_Fld10098 ,_Fld10082 ,_Fld10081 ,_Fld10083RRef ,_Fld10084RRef ,_Fld10085RRef ,_Fld10087RRef ,_Fld10086RRef ,_Fld10089RRef ,_Fld10091RRef ,_Fld10092RRef ,_Fld10093RRef ,_Fld10090RRef ,_Fld10054 ,_Fld10049RRef ,_Fld10037RRef ,_Fld10058RRef ,_Fld18829RRef ,_Fld18830RRef ,_Fld18831RRef ,_Fld18832RRef ,_Fld27258RRef) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@ВидОперации ,@ГодоваяНормаАмортизацииБУ ,@ГодоваяНормаАмортизацииУУ ,@ГрафикАмортизацииПоГодуБУ ,@ГрафикАмортизацииПоГодуУУ ,@ДатаПриобретения ,@ИндивидуальныйГрафикАмортизации ,@Комментарий ,@КоэффициентУскоренияБУ ,@КоэффициентУскоренияУУ ,@МОЛБУ ,@МОЛУУ ,@НаправлениеСписанияПриПринятииКУчету ,@НачислятьАмортизациюБУ ,@НачислятьАмортизациюВТекущемМесяце ,@НачислятьАмортизациюНУ ,@НачислятьАмортизациюУУ ,@НДСВключенВСтоимость ,@Номенклатура ,@ОбъектСтроительства ,@Организация ,@Ответственный ,@ОтражатьВНалоговомУчете ,@ОтражатьВБухгалтерскомУчете ,@ПараметрВыработкиБУ ,@ОтражатьВУправленческомУчете ,@ОтразитьВСоставеМПЗ ,@ПодразделениеОрганизации ,@ПараметрВыработкиУУ ,@Подразделение ,@ПорядокВключенияСтоимостиВСоставРасходовНУ ,@ПредполагаемыйОбъемПродукцииБУ ,@ПринятиеКУчетуОдновременноСВводомВЭксплуатацию ,@ПредполагаемыйОбъемПродукцииУУ ,@Склад ,@ПринятиеКУчетуОдновременноСВводомВЭксплуатациюРегл ,@СоставОсновногоСредства ,@СерияМПЗ ,@СерияНоменклатуры ,@СпециальныйКоэффициентНУ ,@СпособНачисленияАмортизацииБУ ,@СобытиеВводВЭксплуатацию ,@СобытиеВводВЭксплуатациюРегл ,@СобытиеПринятиеКУчету ,@СобытиеПринятиеКУчетуРегл ,@СпособНачисленияАмортизацииНУ ,@СпособПоступления ,@СписыватьПриПринятииКУчету ,@СпособыОтраженияРасходовПоАмортизации ,@СрокПолезногоИспользованияБУ ,@СпособНачисленияАмортизацииУУ ,@СрокПолезногоИспользованияНУ ,@СрокПолезногоИспользованияУСН ,@СтоимостьБУ ,@СтоимостьБУХоз ,@СтоимостьНУ ,@СрокПолезногоИспользованияУУ ,@СтавкаНДС ,@Стоимость ,@СтоимостьНУХоз ,@СтоимостьПР ,@СтоимостьПРХоз ,@СтоимостьВР ,@СтоимостьВРХоз ,@СуммаНДС ,@СтоимостьУСН ,@СчетНачисленияАмортизацииБУ ,@СчетНачисленияАмортизацииНУ ,@СчетУчетаБУ ,@СчетУчетаМПЗБУ ,@СчетУчетаБУВнеоборотногоАктива ,@СчетУчетаНУ ,@ХарактеристикаМПЗ ,@ХарактеристикаНоменклатуры ,@ШифрПоЕНАОФ ,@СчетУчетаНУВнеоборотногоАктива ,@ПроцентКапитальныхВложенийВключаемыхВРасходыНУ ,@ПорядокВключенияСтоимостиВСоставРасходовУСН ,@НоменклатураМПЗ ,@СкладМПЗ ,@СчетУчетаЗатратПоАмортизационнойПремии ,@СубконтоПоАмортизационнойПремии1 ,@СубконтоПоАмортизационнойПремии2 ,@СубконтоПоАмортизационнойПремии3 ,@СпособОтраженияРасходовПриВключенииВСтоимость)" ; } else { Команда.CommandText = @" Update _Document411 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld10018RRef = @ВидОперации ,_Fld10019 = @ГодоваяНормаАмортизацииБУ ,_Fld10020 = @ГодоваяНормаАмортизацииУУ ,_Fld10021RRef = @ГрафикАмортизацииПоГодуБУ ,_Fld10022RRef = @ГрафикАмортизацииПоГодуУУ ,_Fld10023 = @ДатаПриобретения ,_Fld10024RRef = @ИндивидуальныйГрафикАмортизации ,_Fld10025 = @Комментарий ,_Fld10026 = @КоэффициентУскоренияБУ ,_Fld10027 = @КоэффициентУскоренияУУ ,_Fld10028RRef = @МОЛБУ ,_Fld10029RRef = @МОЛУУ ,_Fld10030RRef = @НаправлениеСписанияПриПринятииКУчету ,_Fld10031 = @НачислятьАмортизациюБУ ,_Fld10032 = @НачислятьАмортизациюВТекущемМесяце ,_Fld10033 = @НачислятьАмортизациюНУ ,_Fld10034 = @НачислятьАмортизациюУУ ,_Fld10035 = @НДСВключенВСтоимость ,_Fld10036RRef = @Номенклатура ,_Fld10038RRef = @ОбъектСтроительства ,_Fld10039RRef = @Организация ,_Fld10040RRef = @Ответственный ,_Fld10042 = @ОтражатьВНалоговомУчете ,_Fld10041 = @ОтражатьВБухгалтерскомУчете ,_Fld10045RRef = @ПараметрВыработкиБУ ,_Fld10043 = @ОтражатьВУправленческомУчете ,_Fld10044 = @ОтразитьВСоставеМПЗ ,_Fld10048RRef = @ПодразделениеОрганизации ,_Fld10046RRef = @ПараметрВыработкиУУ ,_Fld10047RRef = @Подразделение ,_Fld10094RRef = @ПорядокВключенияСтоимостиВСоставРасходовНУ ,_Fld10050 = @ПредполагаемыйОбъемПродукцииБУ ,_Fld10052 = @ПринятиеКУчетуОдновременноСВводомВЭксплуатацию ,_Fld10051 = @ПредполагаемыйОбъемПродукцииУУ ,_Fld10057RRef = @Склад ,_Fld10053 = @ПринятиеКУчетуОдновременноСВводомВЭксплуатациюРегл ,_Fld10063RRef = @СоставОсновногоСредства ,_Fld10055RRef = @СерияМПЗ ,_Fld10056RRef = @СерияНоменклатуры ,_Fld10064 = @СпециальныйКоэффициентНУ ,_Fld10066RRef = @СпособНачисленияАмортизацииБУ ,_Fld10059RRef = @СобытиеВводВЭксплуатацию ,_Fld10060RRef = @СобытиеВводВЭксплуатациюРегл ,_Fld10061RRef = @СобытиеПринятиеКУчету ,_Fld10062RRef = @СобытиеПринятиеКУчетуРегл ,_Fld10067RRef = @СпособНачисленияАмортизацииНУ ,_Fld10069RRef = @СпособПоступления ,_Fld10065 = @СписыватьПриПринятииКУчету ,_Fld10070RRef = @СпособыОтраженияРасходовПоАмортизации ,_Fld10071 = @СрокПолезногоИспользованияБУ ,_Fld10068RRef = @СпособНачисленияАмортизацииУУ ,_Fld10072 = @СрокПолезногоИспользованияНУ ,_Fld10073 = @СрокПолезногоИспользованияУСН ,_Fld10077 = @СтоимостьБУ ,_Fld10078 = @СтоимостьБУХоз ,_Fld10079 = @СтоимостьНУ ,_Fld10074 = @СрокПолезногоИспользованияУУ ,_Fld10075RRef = @СтавкаНДС ,_Fld10076 = @Стоимость ,_Fld10080 = @СтоимостьНУХоз ,_Fld10095 = @СтоимостьПР ,_Fld10096 = @СтоимостьПРХоз ,_Fld10097 = @СтоимостьВР ,_Fld10098 = @СтоимостьВРХоз ,_Fld10082 = @СуммаНДС ,_Fld10081 = @СтоимостьУСН ,_Fld10083RRef = @СчетНачисленияАмортизацииБУ ,_Fld10084RRef = @СчетНачисленияАмортизацииНУ ,_Fld10085RRef = @СчетУчетаБУ ,_Fld10087RRef = @СчетУчетаМПЗБУ ,_Fld10086RRef = @СчетУчетаБУВнеоборотногоАктива ,_Fld10089RRef = @СчетУчетаНУ ,_Fld10091RRef = @ХарактеристикаМПЗ ,_Fld10092RRef = @ХарактеристикаНоменклатуры ,_Fld10093RRef = @ШифрПоЕНАОФ ,_Fld10090RRef = @СчетУчетаНУВнеоборотногоАктива ,_Fld10054 = @ПроцентКапитальныхВложенийВключаемыхВРасходыНУ ,_Fld10049RRef = @ПорядокВключенияСтоимостиВСоставРасходовУСН ,_Fld10037RRef = @НоменклатураМПЗ ,_Fld10058RRef = @СкладМПЗ ,_Fld18829RRef = @СчетУчетаЗатратПоАмортизационнойПремии ,_Fld18830RRef = @СубконтоПоАмортизационнойПремии1 ,_Fld18831RRef = @СубконтоПоАмортизационнойПремии2 ,_Fld18832RRef = @СубконтоПоАмортизационнойПремии3 ,_Fld27258RRef = @СпособОтраженияРасходовПриВключенииВСтоимость 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("ОтражатьВУправленческомУчете", ОтражатьВУправленческомУчете); Команда.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("СтоимостьНУ", СтоимостьНУ); Команда.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("СчетУчетаБУВнеоборотногоАктива", Guid.Empty); Команда.Parameters.AddWithValue("СчетУчетаНУ", Guid.Empty); Команда.Parameters.AddWithValue("СчетУчетаНУВнеоборотногоАктива", Guid.Empty); Команда.Parameters.AddWithValue("ПроцентКапитальныхВложенийВключаемыхВРасходыНУ", ПроцентКапитальныхВложенийВключаемыхВРасходыНУ); Команда.Parameters.AddWithValue("ПорядокВключенияСтоимостиВСоставРасходовУСН", ПорядокВключенияСтоимостиВСоставРасходовУСН.Ключ()); Команда.Parameters.AddWithValue("СчетУчетаЗатратПоАмортизационнойПремии", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоПоАмортизационнойПремии1", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоПоАмортизационнойПремии2", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоПоАмортизационнойПремии3", Guid.Empty); Команда.ExecuteNonQuery(); } } }
public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для справочников. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Reference95( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_ParentIDRRef ,_Folder ,_Code ,_Description ,_Fld1421 ,_Fld1437 ,_Fld1423 ,_Fld1424 ,_Fld1425 ,_Fld1426 ,_Fld1427 ,_Fld1428 ,_Fld1429 ,_Fld1430RRef ,_Fld1431RRef ,_Fld1432RRef ,_Fld1433RRef ,_Fld1422RRef ,_Fld1435 ,_Fld1436RRef ,_Fld1444RRef ,_Fld1434 ,_Fld1439RRef ,_Fld1449 ,_Fld1441RRef ,_Fld1442RRef ,_Fld1443RRef ,_Fld1438RRef ,_Fld1446RRef ,_Fld1440RRef ,_Fld1447 ,_Fld1448 ,_Fld1445RRef ,_Fld1450 ,_Fld1451 ,_Fld1452RRef ,_Fld1453RRef ,_Fld1454RRef ,_Fld1455RRef ,_Fld1456RRef ,_Fld18593RRef ,_Fld22975 ,_Fld26548RRef ,_Fld26549RRef) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Родитель ,@ЭтоГруппа ,@Код ,@Наименование ,@Артикул ,@НаименованиеПолное ,@Весовой ,@ВесовойКоэффициентВхождения ,@ВестиОперативныйУчетОстатковНЗП ,@ВестиПартионныйУчетПоСериям ,@ВестиУчетПоСериям ,@ВестиУчетПоСериямВНЗП ,@ВестиУчетПоХарактеристикам ,@ВидВоспроизводства ,@ВидНоменклатуры ,@ЕдиницаДляОтчетов ,@ЕдиницаХраненияОстатков ,@БазоваяЕдиницаИзмерения ,@Набор ,@НазначениеИспользования ,@СтавкаНДС ,@Комментарий ,@НоменклатурнаяГруппаЗатрат ,@Услуга ,@ОсновноеИзображение ,@ОсновнойПоставщик ,@ОтветственныйМенеджерЗаПокупки ,@НоменклатурнаяГруппа ,@СтранаПроисхождения ,@НомерГТД ,@ТребуетсяВнешняяСертификация ,@ТребуетсяВнутренняяСертификация ,@СтатьяЗатрат ,@ВестиСерийныеНомера ,@Комплект ,@НаправлениеВыпуска ,@НаправлениеСписанияВыпущеннойПродукции ,@ПорядокПрисвоенияСерийногоНомера ,@ЦеноваяГруппа ,@ОКП ,@ЕдиницаИзмеренияМест ,@ДополнительноеОписаниеНоменклатуры ,@Производитель ,@Импортер)" ; } else { Команда.CommandText = @" Update _Reference95 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_ParentIDRRef = @Родитель ,_Folder = @ЭтоГруппа ,_Code = @Код ,_Description = @Наименование ,_Fld1421 = @Артикул ,_Fld1437 = @НаименованиеПолное ,_Fld1423 = @Весовой ,_Fld1424 = @ВесовойКоэффициентВхождения ,_Fld1425 = @ВестиОперативныйУчетОстатковНЗП ,_Fld1426 = @ВестиПартионныйУчетПоСериям ,_Fld1427 = @ВестиУчетПоСериям ,_Fld1428 = @ВестиУчетПоСериямВНЗП ,_Fld1429 = @ВестиУчетПоХарактеристикам ,_Fld1430RRef = @ВидВоспроизводства ,_Fld1431RRef = @ВидНоменклатуры ,_Fld1432RRef = @ЕдиницаДляОтчетов ,_Fld1433RRef = @ЕдиницаХраненияОстатков ,_Fld1422RRef = @БазоваяЕдиницаИзмерения ,_Fld1435 = @Набор ,_Fld1436RRef = @НазначениеИспользования ,_Fld1444RRef = @СтавкаНДС ,_Fld1434 = @Комментарий ,_Fld1439RRef = @НоменклатурнаяГруппаЗатрат ,_Fld1449 = @Услуга ,_Fld1441RRef = @ОсновноеИзображение ,_Fld1442RRef = @ОсновнойПоставщик ,_Fld1443RRef = @ОтветственныйМенеджерЗаПокупки ,_Fld1438RRef = @НоменклатурнаяГруппа ,_Fld1446RRef = @СтранаПроисхождения ,_Fld1440RRef = @НомерГТД ,_Fld1447 = @ТребуетсяВнешняяСертификация ,_Fld1448 = @ТребуетсяВнутренняяСертификация ,_Fld1445RRef = @СтатьяЗатрат ,_Fld1450 = @ВестиСерийныеНомера ,_Fld1451 = @Комплект ,_Fld1452RRef = @НаправлениеВыпуска ,_Fld1453RRef = @НаправлениеСписанияВыпущеннойПродукции ,_Fld1454RRef = @ПорядокПрисвоенияСерийногоНомера ,_Fld1455RRef = @ЦеноваяГруппа ,_Fld1456RRef = @ОКП ,_Fld18593RRef = @ЕдиницаИзмеренияМест ,_Fld22975 = @ДополнительноеОписаниеНоменклатуры ,_Fld26548RRef = @Производитель ,_Fld26549RRef = @Импортер 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("НазначениеИспользования", НазначениеИспользования.Ссылка); Команда.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("ПорядокПрисвоенияСерийногоНомера", ПорядокПрисвоенияСерийногоНомера.Ссылка); Команда.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 _Document362( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld7818RRef ,_Fld7819RRef ,_Fld7820 ,_Fld7821RRef ,_Fld7822 ,_Fld7823 ,_Fld7824RRef ,_Fld7825RRef ,_Fld7826RRef ,_Fld7827 ,_Fld7828 ,_Fld7829 ,_Fld7830RRef ,_Fld7831RRef ,_Fld7832RRef ,_Fld7833RRef ,_Fld7834 ,_Fld7835 ,_Fld7836 ,_Fld7837 ,_Fld7838RRef ,_Fld7839RRef ,_Fld7840RRef ,_Fld7841RRef ,_Fld7842RRef ,_Fld7843RRef ,_Fld7844) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@ВалютаДокумента ,@ДоговорКонтрагента ,@Комментарий ,@Контрагент ,@КратностьВзаиморасчетов ,@КурсВзаиморасчетов ,@НематериальныйАктив ,@Организация ,@Ответственный ,@ОтражатьВБухгалтерскомУчете ,@ОтражатьВНалоговомУчете ,@ОтражатьВУправленческомУчете ,@Склад ,@СтавкаНДС ,@СубконтоБУ ,@СубконтоНУ ,@Сумма ,@СуммаВключаетНДС ,@СуммаДокумента ,@СуммаНДС ,@СчетДоходовБУ ,@СчетДоходовНУ ,@СчетРасходовБУ ,@СчетРасходовНУ ,@СчетУчетаРасчетовПоАвансам ,@СчетУчетаРасчетовСКонтрагентом ,@УчитыватьНДС)" ; } else { Команда.CommandText = @" Update _Document362 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld7818RRef = @ВалютаДокумента ,_Fld7819RRef = @ДоговорКонтрагента ,_Fld7820 = @Комментарий ,_Fld7821RRef = @Контрагент ,_Fld7822 = @КратностьВзаиморасчетов ,_Fld7823 = @КурсВзаиморасчетов ,_Fld7824RRef = @НематериальныйАктив ,_Fld7825RRef = @Организация ,_Fld7826RRef = @Ответственный ,_Fld7827 = @ОтражатьВБухгалтерскомУчете ,_Fld7828 = @ОтражатьВНалоговомУчете ,_Fld7829 = @ОтражатьВУправленческомУчете ,_Fld7830RRef = @Склад ,_Fld7831RRef = @СтавкаНДС ,_Fld7832RRef = @СубконтоБУ ,_Fld7833RRef = @СубконтоНУ ,_Fld7834 = @Сумма ,_Fld7835 = @СуммаВключаетНДС ,_Fld7836 = @СуммаДокумента ,_Fld7837 = @СуммаНДС ,_Fld7838RRef = @СчетДоходовБУ ,_Fld7839RRef = @СчетДоходовНУ ,_Fld7840RRef = @СчетРасходовБУ ,_Fld7841RRef = @СчетРасходовНУ ,_Fld7842RRef = @СчетУчетаРасчетовПоАвансам ,_Fld7843RRef = @СчетУчетаРасчетовСКонтрагентом ,_Fld7844 = @УчитыватьНДС 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("СубконтоБУ", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоНУ", Guid.Empty); Команда.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("СчетУчетаРасчетовПоАвансам", Guid.Empty); Команда.Parameters.AddWithValue("СчетУчетаРасчетовСКонтрагентом", Guid.Empty); Команда.Parameters.AddWithValue("УчитыватьНДС", УчитыватьНДС); Команда.ExecuteNonQuery(); } } }
} //Денежный чек public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document412( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld10111RRef ,_Fld10112RRef ,_Fld10113RRef ,_Fld10114RRef ,_Fld10116RRef ,_Fld10117RRef ,_Fld10118RRef ,_Fld10119 ,_Fld10121 ,_Fld10122 ,_Fld10123 ,_Fld10126RRef ,_Fld10124 ,_Fld10125 ,_Fld10127 ,_Fld10129 ,_Fld10130 ,_Fld10137 ,_Fld10131RRef ,_Fld10132RRef ,_Fld10133RRef ,_Fld10134RRef ,_Fld10136RRef ,_Fld10135RRef ,_Fld10138RRef ,_Fld10140 ,_Fld10141 ,_Fld10142 ,_Fld10143 ,_Fld10144 ,_Fld10145 ,_Fld10146 ,_Fld10147 ,_Fld10148 ,_Fld10139 ,_Fld10149 ,_Fld10150RRef ,_Fld10151RRef) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@Организация ,@Касса ,@Подразделение ,@ВидОперации ,@ДоговорКонтрагента ,@ВалютаВзаиморасчетовПодотчетника ,@ВалютаДокумента ,@СуммаДокумента ,@ПринятоОт ,@Основание ,@Приложение ,@Ответственный ,@ОтраженоВОперУчете ,@Оплачено ,@Комментарий ,@ОтражатьВУправленческомУчете ,@ОтражатьВБухгалтерскомУчете ,@ОтражатьВНалоговомУчете ,@СчетУчетаРасчетовСКонтрагентом ,@СубконтоКт1 ,@СубконтоКт2 ,@СубконтоКт3 ,@СчетОрганизации ,@СтатьяДвиженияДенежныхСредств ,@СтавкаНДС ,@Содержание_УСН ,@Графа4_УСН ,@Графа5_УСН ,@Графа6_УСН ,@Графа7_УСН ,@ДоходыЕНВД_УСН ,@РасходыЕНВД_УСН ,@НДС_УСН ,@РучнаяНастройка_УСН ,@ВыручкаСНТТ ,@НомерЧекаККМ ,@ВидПриемаРозничнойВыручки ,@ДенежныйЧек)" ; } else { Команда.CommandText = @" Update _Document412 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld10111RRef = @Организация ,_Fld10112RRef = @Касса ,_Fld10113RRef = @Подразделение ,_Fld10114RRef = @ВидОперации ,_Fld10116RRef = @ДоговорКонтрагента ,_Fld10117RRef = @ВалютаВзаиморасчетовПодотчетника ,_Fld10118RRef = @ВалютаДокумента ,_Fld10119 = @СуммаДокумента ,_Fld10121 = @ПринятоОт ,_Fld10122 = @Основание ,_Fld10123 = @Приложение ,_Fld10126RRef = @Ответственный ,_Fld10124 = @ОтраженоВОперУчете ,_Fld10125 = @Оплачено ,_Fld10127 = @Комментарий ,_Fld10129 = @ОтражатьВУправленческомУчете ,_Fld10130 = @ОтражатьВБухгалтерскомУчете ,_Fld10137 = @ОтражатьВНалоговомУчете ,_Fld10131RRef = @СчетУчетаРасчетовСКонтрагентом ,_Fld10132RRef = @СубконтоКт1 ,_Fld10133RRef = @СубконтоКт2 ,_Fld10134RRef = @СубконтоКт3 ,_Fld10136RRef = @СчетОрганизации ,_Fld10135RRef = @СтатьяДвиженияДенежныхСредств ,_Fld10138RRef = @СтавкаНДС ,_Fld10140 = @Содержание_УСН ,_Fld10141 = @Графа4_УСН ,_Fld10142 = @Графа5_УСН ,_Fld10143 = @Графа6_УСН ,_Fld10144 = @Графа7_УСН ,_Fld10145 = @ДоходыЕНВД_УСН ,_Fld10146 = @РасходыЕНВД_УСН ,_Fld10147 = @НДС_УСН ,_Fld10148 = @РучнаяНастройка_УСН ,_Fld10139 = @ВыручкаСНТТ ,_Fld10149 = @НомерЧекаККМ ,_Fld10150RRef = @ВидПриемаРозничнойВыручки ,_Fld10151RRef = @ДенежныйЧек 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("СубконтоКт1", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоКт2", Guid.Empty); Команда.Parameters.AddWithValue("СубконтоКт3", Guid.Empty); Команда.Parameters.AddWithValue("СтавкаНДС", СтавкаНДС.Ключ()); Команда.Parameters.AddWithValue("Содержание_УСН", Содержание_УСН); Команда.Parameters.AddWithValue("Графа4_УСН", Графа4_УСН); Команда.Parameters.AddWithValue("Графа5_УСН", Графа5_УСН); Команда.Parameters.AddWithValue("Графа6_УСН", Графа6_УСН); Команда.Parameters.AddWithValue("Графа7_УСН", Графа7_УСН); Команда.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 _Document464( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld27318 ,_Fld11932RRef ,_Fld11936RRef ,_Fld22260RRef ,_Fld11928 ,_Fld11938 ,_Fld11929RRef ,_Fld11930 ,_Fld11931 ,_Fld11923 ,_Fld11922 ,_Fld11933RRef ,_Fld11934 ,_Fld11937 ,_Fld11926RRef ,_Fld11924 ,_Fld27319 ,_Fld27320 ,_Fld27321 ,_Fld27322 ,_Fld27323 ,_Fld27324 ,_Fld27325 ,_Fld27326 ,_Fld27327 ,_Fld27328 ,_Fld27329 ,_Fld27330 ,_Fld11925RRef ,_Fld27331 ,_Fld27332 ,_Fld27333 ,_Fld27334 ,_Fld27335 ,_Fld27336 ,_Fld27337 ,_Fld27338RRef ,_Fld27339RRef ,_Fld27340RRef ,_Fld27341RRef) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@ДатаВыставления ,@Контрагент ,@ДоговорКонтрагента ,@ВидСчетаФактуры ,@Под0 ,@ВалютнаяСумма ,@СтавкаНДС ,@Сумма ,@СуммаНДС ,@ДатаПлатежноРасчетногоДокумента ,@НомерПлатежноРасчетногоДокумента ,@ВалютаДокумента ,@СуммаДокумента ,@СформированПриВводеНачальныхОстатковНДС ,@Ответственный ,@Комментарий ,@Исправление ,@КодСпособаВыставления ,@КодВидаОперации ,@Выставлен ,@НомерИсправления ,@НомерИсходногоДокумента ,@ДатаИсходногоДокумента ,@НомерИсправленияИсходногоДокумента ,@ДатаИсправленияИсходногоДокумента ,@СуммаУвеличение ,@СуммаУменьшение ,@УчитыватьИсправлениеИсходногоДокумента ,@Организация ,@НомерИсправляемогоКорректировочногоДокумента ,@ДатаИсправляемогоКорректировочногоДокумента ,@СчетФактураБезНДС ,@СчетФактураНеВыставляется ,@СуммаНДСУвеличение ,@СуммаНДСУменьшение ,@СуммаНДСДокумента ,@ИсправляемыйСчетФактура ,@Комитент ,@Руководитель ,@ГлавныйБухгалтер)" ; } else { Команда.CommandText = @" Update _Document464 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld27318 = @ДатаВыставления ,_Fld11932RRef = @Контрагент ,_Fld11936RRef = @ДоговорКонтрагента ,_Fld22260RRef = @ВидСчетаФактуры ,_Fld11928 = @Под0 ,_Fld11938 = @ВалютнаяСумма ,_Fld11929RRef = @СтавкаНДС ,_Fld11930 = @Сумма ,_Fld11931 = @СуммаНДС ,_Fld11923 = @ДатаПлатежноРасчетногоДокумента ,_Fld11922 = @НомерПлатежноРасчетногоДокумента ,_Fld11933RRef = @ВалютаДокумента ,_Fld11934 = @СуммаДокумента ,_Fld11937 = @СформированПриВводеНачальныхОстатковНДС ,_Fld11926RRef = @Ответственный ,_Fld11924 = @Комментарий ,_Fld27319 = @Исправление ,_Fld27320 = @КодСпособаВыставления ,_Fld27321 = @КодВидаОперации ,_Fld27322 = @Выставлен ,_Fld27323 = @НомерИсправления ,_Fld27324 = @НомерИсходногоДокумента ,_Fld27325 = @ДатаИсходногоДокумента ,_Fld27326 = @НомерИсправленияИсходногоДокумента ,_Fld27327 = @ДатаИсправленияИсходногоДокумента ,_Fld27328 = @СуммаУвеличение ,_Fld27329 = @СуммаУменьшение ,_Fld27330 = @УчитыватьИсправлениеИсходногоДокумента ,_Fld11925RRef = @Организация ,_Fld27331 = @НомерИсправляемогоКорректировочногоДокумента ,_Fld27332 = @ДатаИсправляемогоКорректировочногоДокумента ,_Fld27333 = @СчетФактураБезНДС ,_Fld27334 = @СчетФактураНеВыставляется ,_Fld27335 = @СуммаНДСУвеличение ,_Fld27336 = @СуммаНДСУменьшение ,_Fld27337 = @СуммаНДСДокумента ,_Fld27338RRef = @ИсправляемыйСчетФактура ,_Fld27339RRef = @Комитент ,_Fld27340RRef = @Руководитель ,_Fld27341RRef = @ГлавныйБухгалтер Where _IDRRef = @Ссылка" ; } Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray()); /*Команда.Parameters.AddWithValue("Версия", Версия);*/ Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления); Команда.Parameters.AddWithValue("Номер", Номер); Команда.Parameters.AddWithValue("ДатаВыставления", ДатаВыставления); Команда.Parameters.AddWithValue("ВидСчетаФактуры", ВидСчетаФактуры.Ключ()); Команда.Parameters.AddWithValue("Под0", Под0); Команда.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("ДатаИсправленияИсходногоДокумента", ДатаИсправленияИсходногоДокумента); Команда.Parameters.AddWithValue("СуммаУвеличение", СуммаУвеличение); Команда.Parameters.AddWithValue("СуммаУменьшение", СуммаУменьшение); Команда.Parameters.AddWithValue("УчитыватьИсправлениеИсходногоДокумента", УчитыватьИсправлениеИсходногоДокумента); Команда.Parameters.AddWithValue("НомерИсправляемогоКорректировочногоДокумента", НомерИсправляемогоКорректировочногоДокумента); Команда.Parameters.AddWithValue("ДатаИсправляемогоКорректировочногоДокумента", ДатаИсправляемогоКорректировочногоДокумента); Команда.Parameters.AddWithValue("СчетФактураБезНДС", СчетФактураБезНДС); Команда.Parameters.AddWithValue("СчетФактураНеВыставляется", СчетФактураНеВыставляется); Команда.Parameters.AddWithValue("СуммаНДСУвеличение", СуммаНДСУвеличение); Команда.Parameters.AddWithValue("СуммаНДСУменьшение", СуммаНДСУменьшение); Команда.Parameters.AddWithValue("СуммаНДСДокумента", СуммаНДСДокумента); Команда.Parameters.AddWithValue("ИсправляемыйСчетФактура", ИсправляемыйСчетФактура.Ссылка); Команда.ExecuteNonQuery(); } } }