public static Guid Ссылка(this СпособыРаспределенияЗатрат Значение)
        {
            switch (Значение)
            {
            case СпособыРаспределенияЗатрат.ПоОбъемуВыпуска: return(ПоОбъемуВыпуска);

            case СпособыРаспределенияЗатрат.ПоПлановойСебестоимости: return(ПоПлановойСебестоимости);

            case СпособыРаспределенияЗатрат.ПоОплатеТруда: return(ПоОплатеТруда);

            case СпособыРаспределенияЗатрат.ПоМатериальнымЗатратам: return(ПоМатериальнымЗатратам);

            case СпособыРаспределенияЗатрат.НеРаспределять: return(НеРаспределять);
            }
            return(Guid.Empty);
        }
 public static СпособыРаспределенияЗатрат Получить(this СпособыРаспределенияЗатрат Значение, Guid Ссылка)
 {
     if (Ссылка == ПоОбъемуВыпуска)
     {
         return(СпособыРаспределенияЗатрат.ПоОбъемуВыпуска);
     }
     else if (Ссылка == ПоПлановойСебестоимости)
     {
         return(СпособыРаспределенияЗатрат.ПоПлановойСебестоимости);
     }
     else if (Ссылка == ПоОплатеТруда)
     {
         return(СпособыРаспределенияЗатрат.ПоОплатеТруда);
     }
     else if (Ссылка == ПоМатериальнымЗатратам)
     {
         return(СпособыРаспределенияЗатрат.ПоМатериальнымЗатратам);
     }
     else if (Ссылка == НеРаспределять)
     {
         return(СпособыРаспределенияЗатрат.НеРаспределять);
     }
     return(СпособыРаспределенияЗатрат.ПустаяСсылка);
 }
 public static byte[] Ключ(this СпособыРаспределенияЗатрат Значение)
 {
     return(Ссылка(Значение).ToByteArray());
 }
 public static readonly Guid НеРаспределять         = new Guid("41af6fa0-f33e-0e4e-42ff-7c09cd817294"); //Не распределять
 public static СпособыРаспределенияЗатрат Получить(this СпособыРаспределенияЗатрат Значение, byte[] Ссылка)
 {
     return(Получить(Значение, new Guid(Ссылка)));
 }