public static Периодичность Получить(this Периодичность Значение, Guid Ссылка) { if (Ссылка == День) { return(Периодичность.День); } else if (Ссылка == Неделя) { return(Периодичность.Неделя); } else if (Ссылка == Месяц) { return(Периодичность.Месяц); } else if (Ссылка == Квартал) { return(Периодичность.Квартал); } else if (Ссылка == Год) { return(Периодичность.Год); } else if (Ссылка == Декада) { return(Периодичность.Декада); } else if (Ссылка == Полугодие) { return(Периодичность.Полугодие); } return(Периодичность.ПустаяСсылка); }
public static Guid Ссылка(this Периодичность Значение) { switch (Значение) { case Периодичность.День: return(День); case Периодичность.Неделя: return(Неделя); case Периодичность.Месяц: return(Месяц); case Периодичность.Квартал: return(Квартал); case Периодичность.Год: return(Год); case Периодичность.Декада: return(Декада); case Периодичность.Полугодие: return(Полугодие); } return(Guid.Empty); }
} //Использовать курсы сценария public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для справочников. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Reference169( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_ParentIDRRef ,_Folder ,_Code ,_Description ,_Fld2012RRef ,_Fld2013RRef ,_Fld2014 ,_Fld2015 ,_Fld2016RRef ,_Fld2017RRef ,_Fld2018 ,_Fld2019 ,_Fld2020 ,_Fld2021 ,_Fld2022) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Родитель ,@ЭтоГруппа ,@Код ,@Наименование ,@Периодичность ,@ДетализацияПланирования ,@УчетПоСуммам ,@УчетПоКоличеству ,@Валюта ,@СпособПланирования ,@ПродолжительностьЦикла ,@НачалоПлана ,@КонецПлана ,@НормаДоходности ,@ИспользоватьКурсыСценария)" ; } else { Команда.CommandText = @" Update _Reference169 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_ParentIDRRef = @Родитель ,_Folder = @ЭтоГруппа ,_Code = @Код ,_Description = @Наименование ,_Fld2012RRef = @Периодичность ,_Fld2013RRef = @ДетализацияПланирования ,_Fld2014 = @УчетПоСуммам ,_Fld2015 = @УчетПоКоличеству ,_Fld2016RRef = @Валюта ,_Fld2017RRef = @СпособПланирования ,_Fld2018 = @ПродолжительностьЦикла ,_Fld2019 = @НачалоПлана ,_Fld2020 = @КонецПлана ,_Fld2021 = @НормаДоходности ,_Fld2022 = @ИспользоватьКурсыСценария 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("ИспользоватьКурсыСценария", ИспользоватьКурсыСценария); Команда.ExecuteNonQuery(); } } }
public static byte[] Ключ(this Периодичность Значение) { return(Ссылка(Значение).ToByteArray()); }
public static Периодичность Получить(this Периодичность Значение, byte[] Ссылка) { return(Получить(Значение, new Guid(Ссылка))); }
public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document471( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Number ,_Fld12095 ,_Fld12096 ,_Fld12097RRef ,_Fld12098RRef ,_Fld12099RRef ,_Fld12100 ,_Fld12101 ,_Fld12102RRef) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Номер ,@ДатаНачала ,@ДатаОкончания ,@ДоговорКонтрагента ,@Контрагент ,@Периодичность ,@СуммаУсловийДоговора ,@Комментарий ,@Ответственный)" ; } else { Команда.CommandText = @" Update _Document471 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Number = @Номер ,_Fld12095 = @ДатаНачала ,_Fld12096 = @ДатаОкончания ,_Fld12097RRef = @ДоговорКонтрагента ,_Fld12098RRef = @Контрагент ,_Fld12099RRef = @Периодичность ,_Fld12100 = @СуммаУсловийДоговора ,_Fld12101 = @Комментарий ,_Fld12102RRef = @Ответственный Where _IDRRef = @Ссылка" ; } Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray()); /*Команда.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 _Reference23138( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Code ,_Description ,_Fld23985RRef ,_Fld23988 ,_Fld23989 ,_Fld23991 ,_Fld23992RRef ,_Fld23993 ,_Fld23994RRef) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@Предопределенный ,@Код ,@Наименование ,@Организация ,@ДатаНачала ,@ДатаОкончания ,@Комментарий ,@Периодичность ,@ДатаИмпорта ,@ТипПолучателя)" ; } else { Команда.CommandText = @" Update _Reference23138 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_IsMetadata = @Предопределенный ,_Code = @Код ,_Description = @Наименование ,_Fld23985RRef = @Организация ,_Fld23988 = @ДатаНачала ,_Fld23989 = @ДатаОкончания ,_Fld23991 = @Комментарий ,_Fld23992RRef = @Периодичность ,_Fld23993 = @ДатаИмпорта ,_Fld23994RRef = @ТипПолучателя 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("ТипПолучателя", ТипПолучателя.Ключ()); Команда.ExecuteNonQuery(); } } }
public void Записать() { //Установка блокировки элемента на горизантально масштабированный кластер. //Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки. //Выделение сервиса для блокировки элемента и генерации кода //Выполнение операций контроля без обращений к sql-серверу. //Контроль конфликта блокировок. //Контроль загрузки булкинсертом гетерогенной коллекции. //Контроль уникальности кода для Документов. //Контроль уникальности номера для документов, в границах префикса. //Контроль владельца, он не может быть группой. //Контроль владельца он должен быть задан. //Контроль родителя он должен быть группой. //Контроль количества уровней, должен соотвествовать метаданным. //Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника. //Контроль уникальности ссылки //Контроль зацикливания //Опционально контроль битых ссылок. //Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента. using (var Подключение = new SqlConnection(СтрокаСоединения)) { Подключение.Open(); using (var Команда = Подключение.CreateCommand()) { if (_ЭтоНовый) { Команда.CommandText = @" Insert Into _Document441( _IDRRef /*,_Version*/ ,_Marked ,_IsMetadata ,_Fld11253 ,_Fld11254 ,_Fld11255RRef ,_Fld11256 ,_Fld11257 ,_Fld11258 ,_Fld11259RRef ,_Fld11260RRef ,_Fld11261 ,_Fld11262 ,_Fld11263 ,_Fld11264 ,_Fld11265RRef ,_Fld11266 ,_Fld11267 ,_Fld22670 ,_Fld11268 ,_Fld11269 ,_Fld27288 ,_Fld27289) Values( @Ссылка /*,@Версия*/ ,@ПометкаУдаления ,@ИсточникОтчета ,@НаименованиеОтчета ,@Организация ,@ДатаНачала ,@ДатаОкончания ,@ДатаПодписи ,@Периодичность ,@ЕдиницаИзмерения ,@ТочностьЕдиницыИзмерения ,@ВыбраннаяФорма ,@ДанныеОтчета ,@ДеревоНастройкиСтраниц ,@ВидОтчетности ,@Комментарий ,@КодИМНС ,@КодИМНСПосредника ,@ФорматВыгрузки ,@Вид ,@Период ,@КПП)" ; } else { Команда.CommandText = @" Update _Document441 Set /*_IDRRef = @Ссылка*/ /*,_Version = @Версия*/ _Marked = @ПометкаУдаления ,_Fld11253 = @ИсточникОтчета ,_Fld11254 = @НаименованиеОтчета ,_Fld11255RRef = @Организация ,_Fld11256 = @ДатаНачала ,_Fld11257 = @ДатаОкончания ,_Fld11258 = @ДатаПодписи ,_Fld11259RRef = @Периодичность ,_Fld11260RRef = @ЕдиницаИзмерения ,_Fld11261 = @ТочностьЕдиницыИзмерения ,_Fld11262 = @ВыбраннаяФорма ,_Fld11263 = @ДанныеОтчета ,_Fld11264 = @ДеревоНастройкиСтраниц ,_Fld11265RRef = @ВидОтчетности ,_Fld11266 = @Комментарий ,_Fld11267 = @КодИМНС ,_Fld22670 = @КодИМНСПосредника ,_Fld11268 = @ФорматВыгрузки ,_Fld11269 = @Вид ,_Fld27288 = @Период ,_Fld27289 = @КПП 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("ДанныеОтчета", new byte[0]); Команда.Parameters.AddWithValue("ДеревоНастройкиСтраниц", new byte[0]); Команда.Parameters.AddWithValue("ВидОтчетности", ВидОтчетности.Ключ()); Команда.Parameters.AddWithValue("Комментарий", Комментарий); Команда.Parameters.AddWithValue("КодИМНС", КодИМНС); Команда.Parameters.AddWithValue("КодИМНСПосредника", КодИМНСПосредника); Команда.Parameters.AddWithValue("ФорматВыгрузки", ФорматВыгрузки); Команда.Parameters.AddWithValue("Вид", Вид); Команда.Parameters.AddWithValue("Период", Период); Команда.Parameters.AddWithValue("КПП", КПП); Команда.ExecuteNonQuery(); } } }