protected override bool Execute(CodeActivityContext context) { object obj_id = ObjectID.Get(context); if (obj_id == null) { Error.Set(context, "Не опреден идентификатор объекта"); return(false); } SummValues.Set(context, 0); Status.Set(context, (int)VALUES_FLAG_DB.DataNotFull); StatusStr.Set(context, TVALUES_DB.FLAG_to_String(VALUES_FLAG_DB.DataNotFull, ";")); var found = false; List <TVALUES_DB> vallist = null; try { var tidList = new List <ID_Hierarchy_Channel>(); var IH_Chanel = new ID_Hierarchy_Channel(); IH_Chanel.ID = obj_id.ToString(); IH_Chanel.TypeHierarchy = (enumTypeHierarchy)ObjectType; IH_Chanel.Channel = (byte)Channel; tidList.Add(IH_Chanel); //TODO часовой пояс var res = ARM_Service.DS_GetArchivesHierObjectLastHalfHours( tidList, IsCoeffEnabled, StartDateTime.Get(context), EndDateTime.Get(context), DataSourceType, DiscreteType, UnitDigit, false, null); if (res != null && res.Result_Values != null && res.Result_Values.Count > 0) { var resultValues = new Dictionary <ID_Hierarchy_Channel, List <TVALUES_DB> >(res.Result_Values, new ID_Hierarchy_Channel_EqualityComparer()); if (resultValues.TryGetValue(IH_Chanel, out vallist) && vallist != null) { found = true; var R = vallist.Accomulate(); SummValues.Set(context, R.F_VALUE); Status.Set(context, (int)R.F_FLAG); StatusStr.Set(context, TVALUES_DB.FLAG_to_String(R.F_FLAG, ";")); } } } catch (Exception ex) { Error.Set(context, ex.Message); if (!HideException.Get(context)) { throw ex; } } if (vallist == null) { vallist = new List <TVALUES_DB>(); } ValueList.Set(context, vallist); return(string.IsNullOrEmpty(Error.Get(context))); }