Пример #1
0
        private bool ToModeSampleSet()
        {
            FExcStr        = null;
            PreviousAction = "";

            // проверим, есть ли сведения в регистре АдресЗаданияСотрудников об уже полученных заданиях на набор образцов
            DataTable DT;

            MyConnection.Close();
            MyConnection.Open();
            string TextQuery =
                "SELECT " +
                "Reg.$Рег.АдресЗаданияСотрудников.Док as DocID " +
                "FROM " +
                "RG$Рег.АдресЗаданияСотрудников as Reg " +
                "WHERE " +
                "Reg.$Рег.АдресЗаданияСотрудников.Сотрудник = :Employer " +
                "and Reg.$Рег.АдресЗаданияСотрудников.ТипЗадания = 4 " +
                "and Reg.$Рег.АдресЗаданияСотрудников.Выполняется = 1";

            SQL1S.QuerySetParam(ref TextQuery, "Employer", Employer.ID);

            if (!ExecuteWithRead(TextQuery, out DT))
            {
                return(false);
            }
            if (DT.Rows.Count > 0)
            {
                DocSet.ID = DT.Rows[0]["DocID"].ToString().Substring(4);
            }
            // если за сотрудником заданий не числится, запрошиваем у 1с
            else
            {
                Dictionary <string, object> DataMapWrite = new Dictionary <string, object>();
                DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход1"] = ExtendID(Employer.ID, "Спр.Сотрудники");
                DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход2"] = ExtendID(Employer.GetAttribute("РоднойСектор").ToString(), "Спр.Секции");

                Dictionary <string, object> DataMapRead;
                List <string> FieldList = new List <string>();
                FieldList.Add("Спр.СинхронизацияДанных.ДатаРез1");
                if (!ExecCommand("QuestPicingSample", DataMapWrite, FieldList, out DataMapRead))
                {
                    return(false);
                }
                if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] == -3)
                {
                    FExcStr = DataMapRead["Спр.СинхронизацияДанных.ДатаРез1"].ToString();
                    return(false);
                }
                if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] != 3)
                {
                    FExcStr = "Не известный ответ робота... я озадачен...";
                    return(false);
                }
                string SampleDoc = DataMapRead["Спр.СинхронизацияДанных.ДатаРез1"].ToString();
                DocSet.ID = SampleDoc.Substring(0, 7);
            }
            FCurrentMode = Mode.SampleSet;

            ReactionDoc(DocSet.ID);
            return(true);
        }