} //Группа доступа контрагента public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для справочников. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Reference78( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_ParentIDRRef ,_Folder ,_Code ,_Description ,_Fld1266 ,_Fld1264 ,_Fld1260 ,_Fld1258RRef ,_Fld1262RRef ,_Fld1263 ,_Fld1261 ,_Fld1265 ,_Fld1276RRef ,_Fld1268RRef ,_Fld1270RRef ,_Fld1269RRef ,_Fld1259 ,_Fld1271RRef ,_Fld1272 ,_Fld1273 ,_Fld1274 ,_Fld1275 ,_Fld1267RRef ,_Fld1277 ,_Fld1278RRef ,_Fld1279RRef ,_Fld21240RRef) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Родитель ,@ЭтоГруппа ,@Код ,@Наименование ,@НаименованиеПолное ,@Комментарий ,@ДополнительноеОписание ,@ГоловнойКонтрагент ,@ИсточникИнформацииПриОбращении ,@КодПоОКПО ,@ИНН ,@КПП ,@ЮрФизЛицо ,@ОсновнойБанковскийСчет ,@ОсновнойДоговорКонтрагента ,@ОсновнойВидДеятельности ,@ДокументУдостоверяющийЛичность ,@ОсновнойМенеджерПокупателя ,@Покупатель ,@Поставщик ,@РасписаниеРаботыСтрокой ,@СрокВыполненияЗаказаПоставщиком ,@ОсновноеКонтактноеЛицо ,@НеЯвляетсяРезидентом ,@ОКОПФ ,@Регион ,@ГруппаДоступаКонтрагента)" ; } else { Команда.CommandText = @" Update _Reference78 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_ParentIDRRef = @Родитель ,_Folder = @ЭтоГруппа ,_Code = @Код ,_Description = @Наименование ,_Fld1266 = @НаименованиеПолное ,_Fld1264 = @Комментарий ,_Fld1260 = @ДополнительноеОписание ,_Fld1258RRef = @ГоловнойКонтрагент ,_Fld1262RRef = @ИсточникИнформацииПриОбращении ,_Fld1263 = @КодПоОКПО ,_Fld1261 = @ИНН ,_Fld1265 = @КПП ,_Fld1276RRef = @ЮрФизЛицо ,_Fld1268RRef = @ОсновнойБанковскийСчет ,_Fld1270RRef = @ОсновнойДоговорКонтрагента ,_Fld1269RRef = @ОсновнойВидДеятельности ,_Fld1259 = @ДокументУдостоверяющийЛичность ,_Fld1271RRef = @ОсновнойМенеджерПокупателя ,_Fld1272 = @Покупатель ,_Fld1273 = @Поставщик ,_Fld1274 = @РасписаниеРаботыСтрокой ,_Fld1275 = @СрокВыполненияЗаказаПоставщиком ,_Fld1267RRef = @ОсновноеКонтактноеЛицо ,_Fld1277 = @НеЯвляетсяРезидентом ,_Fld1278RRef = @ОКОПФ ,_Fld1279RRef = @Регион ,_Fld21240RRef = @ГруппаДоступаКонтрагента 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("ГруппаДоступаКонтрагента", ГруппаДоступаКонтрагента.Ссылка); Команда.ExecuteNonQuery(); } } }
} //Наименование территориального органа ФСС public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для справочников. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Reference105( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Code ,_Description ,_Fld1550 ,_Fld1526 ,_Fld1536 ,_Fld1553 ,_Fld1524RRef ,_Fld1543 ,_Fld1535 ,_Fld1534 ,_Fld1529 ,_Fld1551 ,_Fld1562RRef ,_Fld1561RRef ,_Fld1549RRef ,_Fld1523RRef ,_Fld1542 ,_Fld1527 ,_Fld1525 ,_Fld1532 ,_Fld1540 ,_Fld1533 ,_Fld1541 ,_Fld1558 ,_Fld1555 ,_Fld1557 ,_Fld1556 ,_Fld1560RRef ,_Fld1559RRef ,_Fld1528 ,_Fld1548 ,_Fld1538 ,_Fld1554 ,_Fld1537 ,_Fld1530 ,_Fld1539 ,_Fld1531 ,_Fld1563RRef ,_Fld1544 ,_Fld1547 ,_Fld1545 ,_Fld1546 ,_Fld1552 ,_Fld1564 ,_Fld22976 ,_Fld22669 ,_Fld26550 ,_Fld26551RRef ,_Fld26552RRef ,_Fld26553 ,_Fld26554 ,_Fld26555 ,_Fld26556 ,_Fld26557 ,_Fld26558 ,_Fld26559 ,_Fld26560 ,_Fld26561 ,_Fld26562 ,_Fld26563) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Код ,@Наименование ,@Префикс ,@ИНН ,@КПП ,@РегистрационныйНомерПФР ,@ГоловнаяОрганизация ,@НаименованиеПолное ,@КодПоОКПО ,@КодПоОКАТО ,@КодИМНС ,@РайонныйКоэффициент ,@ЮрФизЛицо ,@ТерриториальныеУсловияПФР ,@ОсновнойБанковскийСчет ,@ВидСтавокЕСНиПФР ,@НаименованиеПлательщикаПриПеречисленииНалогов ,@ИностраннаяОрганизация ,@ДатаРегистрации ,@КодОКОПФ ,@НаименованиеОКОПФ ,@КодОКФС ,@НаименованиеОКФС ,@СвидетельствоСерияНомер ,@СвидетельствоДатаВыдачи ,@СвидетельствоНаименованиеОргана ,@СвидетельствоКодОргана ,@СтранаРегистрации ,@СтранаПостоянногоМестонахождения ,@КодВСтранеРегистрации ,@ОГРН ,@НаименованиеИнострОрганизации ,@РегистрационныйНомерФСС ,@НаименованиеИМНС ,@КодОКВЭД ,@НаименованиеОКВЭД ,@КодОКОНХ ,@ИндивидуальныйПредприниматель ,@УдалитьОбменЗадействован ,@ОбменКодАбонента ,@ОбменКаталогОтправкиДанныхОтчетности ,@ОбменКаталогПрограммыЭлектроннойПочты ,@РайонныйКоэффициентРФ ,@ОтражатьВРегламентированномУчете ,@КодИФНСПолучателя ,@НаименованиеТерриториальногоОрганаПФР ,@НаименованиеСокращенное ,@ВидОбменаСКонтролирующимиОрганами ,@УчетнаяЗаписьОбмена ,@КодОрганаПФР ,@КодОрганаФСГС ,@ДополнительныйКодФСС ,@КодПодчиненностиФСС ,@ЦифровойИндексОбособленногоПодразделения ,@РегистрационныйНомерТФОМС ,@ИПРегистрационныйНомерПФР ,@ИПРегистрационныйНомерФСС ,@ИПКодПодчиненностиФСС ,@ИПРегистрационныйНомерТФОМС ,@НаименованиеТерриториальногоОрганаФСС)" ; } else { Команда.CommandText = @" Update _Reference105 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_Code = @Код ,_Description = @Наименование ,_Fld1550 = @Префикс ,_Fld1526 = @ИНН ,_Fld1536 = @КПП ,_Fld1553 = @РегистрационныйНомерПФР ,_Fld1524RRef = @ГоловнаяОрганизация ,_Fld1543 = @НаименованиеПолное ,_Fld1535 = @КодПоОКПО ,_Fld1534 = @КодПоОКАТО ,_Fld1529 = @КодИМНС ,_Fld1551 = @РайонныйКоэффициент ,_Fld1562RRef = @ЮрФизЛицо ,_Fld1561RRef = @ТерриториальныеУсловияПФР ,_Fld1549RRef = @ОсновнойБанковскийСчет ,_Fld1523RRef = @ВидСтавокЕСНиПФР ,_Fld1542 = @НаименованиеПлательщикаПриПеречисленииНалогов ,_Fld1527 = @ИностраннаяОрганизация ,_Fld1525 = @ДатаРегистрации ,_Fld1532 = @КодОКОПФ ,_Fld1540 = @НаименованиеОКОПФ ,_Fld1533 = @КодОКФС ,_Fld1541 = @НаименованиеОКФС ,_Fld1558 = @СвидетельствоСерияНомер ,_Fld1555 = @СвидетельствоДатаВыдачи ,_Fld1557 = @СвидетельствоНаименованиеОргана ,_Fld1556 = @СвидетельствоКодОргана ,_Fld1560RRef = @СтранаРегистрации ,_Fld1559RRef = @СтранаПостоянногоМестонахождения ,_Fld1528 = @КодВСтранеРегистрации ,_Fld1548 = @ОГРН ,_Fld1538 = @НаименованиеИнострОрганизации ,_Fld1554 = @РегистрационныйНомерФСС ,_Fld1537 = @НаименованиеИМНС ,_Fld1530 = @КодОКВЭД ,_Fld1539 = @НаименованиеОКВЭД ,_Fld1531 = @КодОКОНХ ,_Fld1563RRef = @ИндивидуальныйПредприниматель ,_Fld1544 = @УдалитьОбменЗадействован ,_Fld1547 = @ОбменКодАбонента ,_Fld1545 = @ОбменКаталогОтправкиДанныхОтчетности ,_Fld1546 = @ОбменКаталогПрограммыЭлектроннойПочты ,_Fld1552 = @РайонныйКоэффициентРФ ,_Fld1564 = @ОтражатьВРегламентированномУчете ,_Fld22976 = @КодИФНСПолучателя ,_Fld22669 = @НаименованиеТерриториальногоОрганаПФР ,_Fld26550 = @НаименованиеСокращенное ,_Fld26551RRef = @ВидОбменаСКонтролирующимиОрганами ,_Fld26552RRef = @УчетнаяЗаписьОбмена ,_Fld26553 = @КодОрганаПФР ,_Fld26554 = @КодОрганаФСГС ,_Fld26555 = @ДополнительныйКодФСС ,_Fld26556 = @КодПодчиненностиФСС ,_Fld26557 = @ЦифровойИндексОбособленногоПодразделения ,_Fld26558 = @РегистрационныйНомерТФОМС ,_Fld26559 = @ИПРегистрационныйНомерПФР ,_Fld26560 = @ИПРегистрационныйНомерФСС ,_Fld26561 = @ИПКодПодчиненностиФСС ,_Fld26562 = @ИПРегистрационныйНомерТФОМС ,_Fld26563 = @НаименованиеТерриториальногоОрганаФСС 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("ОтражатьВРегламентированномУчете", ОтражатьВРегламентированномУчете); Команда.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(); } } }