public static NSIAttributeInfo GetAttributeInfo(string referenceId, string attributeId)
 {
     if (QueryAttributeInfo != null)
     {
         var ea = new NSIAttributeEventArgs();
         ea.ReferenceID = referenceId;
         ea.AttributeID = attributeId;
         QueryAttributeInfo(null, ea);
         if (ea.NSIAttributeInfo != null && ea.NSIAttributeInfo.RecID != 0)
         {
             return(ea.NSIAttributeInfo);
         }
     }
     throw new InvalidOperationException(string.Format("В справочнике {0} нет атрибута {1}", referenceId, attributeId));
 }
        public static void ReferenceAttributeCache_QueryAttributeInfo(object sender, NSIAttributeEventArgs e)
        {
            GM_NSIReferenceAttribute attribute = GetAttribute(e.ReferenceID, e.AttributeID);

            e.NSIAttributeInfo = new NSIAttributeInfo(attribute.RecId, attribute.ReferenceAttributeType, attribute.RefReferenceId);
        }