// синхронизация бланка int syncDT(FC.FeatureType dt) { int rc=0; string key=dt.Code; if (convert.IsString(key)) if (fdtList.Contains(key)) { rc=1; if (fdtList0.Contains(key)) rc=0; } else if (!fdtList.Contains(key)) { fdtList.Add(key); var blank = fobj.GetBlank; if (blank == null) __err(); else { string t=key; if (dt.IsDataType()) t+="/"+dt.TypeName; blank.beginUpdate(t); rc=syncParentDT(blank,dt); foreach (var binding in dt.Bindings) if (syncAttr(blank,binding)) rc++; if (rc > 0) { var es = dt.ConstrainedBy.GetConstraint( typeof(AttributeValueConstraint) ) as AttributeValueConstraint; int rc1; if (es != null) foreach(var e in es.ValidationRules) { blank.logic(e.ОграничениеПоСемантике, e.Комментарий,out rc1); if (rc1 < 0) __err(); } if (dt.IsDataType()) blank.endUpdate(key,"",out rc1); else blank.endUpdate("",key,out rc1); if (rc1 == 1) fdtUpdCount++; else if (rc1 == 2) fdtNewCount++; else if (rc1 != 0) __err(); if (rc1 >= 0) fdtCount++; } } if (rc == 0) fdtList0.Add(key); } return rc; }