//Конструктор, на входе рекорсет rec, objects - список объектов, checkErrors: true - проверка сигналов, false - сигналы для компиляции public Signal(IRecordRead rec, DicI <ObjectSignal> objects, bool checkErrors) { ErrMess = ""; Code = rec.GetString("CodeSignal"); Name = rec.GetString("NameSignal"); Units = rec.GetString("Units"); DataType = rec.GetString("DataType").ToDataType(); InUseSource = false; InUseReceiver = false; ObjectId = rec.GetInt("ObjectId"); ConstValue = rec.GetString("ConstValue"); SourceName = rec.GetString("SourceName"); ReceiverName = rec.GetString("ReceiverName"); Inf = rec.GetString("Inf"); Default = rec.GetBool("Default"); if (checkErrors) { if (Code.IsEmpty()) { ErrMess += "Не заполнен код (CodeSignal); "; } if (DataType == DataType.Error) { ErrMess += "Недопустимый тип данных (DataType); "; } if (ConstValue.IsEmpty() && SourceName.IsEmpty() && ReceiverName.IsEmpty()) { ErrMess += "Должно быть заполнено имя источника (SourceName), имя приемника (ReceiverName) или значение константы (ConstValue); "; } } if (objects.ContainsKey(ObjectId)) { ObjectSignal = objects[ObjectId]; ObjectSignal.Signals.Add(Code, this); FullCode = ObjectSignal.Code + "." + Code; if (checkErrors) { //((RecDao)rec).Put("FullCode", FullCode); if (Default) { objects[ObjectId].DefalutsCount++; } if (ErrMess != "") { objects[ObjectId].ErrorInSignals = true; } } } }