Beispiel #1
0
        //SPECIAL METHOD's
        private bool LoadDocSet(string iddoc)
        {
            string TextQuery =
                "SELECT top 1 " +
                "journ.iddoc as IDDOC, " +
                "journForBill.docno as DocNo, " +
                "CONVERT(char(8), CAST(LEFT(journForBill.date_time_iddoc, 8) as datetime), 4) as DateDoc, " +
                "journForBill.iddoc as Bill, " +
                "DocCC.$КонтрольНабора.КолСтрок as Rows, " +
                "Section.descr as Sector, " +
                "DocCC.$КонтрольНабора.Сумма as Sum, " +
                "DocCC.$КонтрольНабора.НомерЛиста as Number, " +
                "DocCC.$КонтрольНабора.ФлагСамовывоза as SelfRemovel, " +
                "Clients.descr as Client, " +
                "Bill.$Счет.ТипНакладной as TypeNakl " +
                "FROM " +
                "_1sjourn as journ (nolock) " +
                "INNER JOIN DH$КонтрольНабора as DocCC (nolock) " +
                "ON DocCC.iddoc = journ.iddoc " +
                "LEFT JOIN DH$КонтрольРасходной as DocCB (nolock) " +
                "ON DocCB.iddoc = DocCC.$КонтрольНабора.ДокументОснование " +
                "LEFT JOIN DH$Счет as Bill (nolock) " +
                "ON Bill.iddoc = DocCB.$КонтрольРасходной.ДокументОснование " +
                "LEFT JOIN _1sjourn as journForBill (nolock) " +
                "ON journForBill.iddoc = Bill.iddoc " +
                "LEFT JOIN $Спр.Секции as Section (nolock) " +
                "ON Section.id = DocCC.$КонтрольНабора.Сектор " +
                "LEFT JOIN $Спр.Клиенты as Clients (nolock) " +
                "ON Bill.$Счет.Клиент = Clients.id " +
                "WHERE " +
                "journ.iddoc = :iddoc ";

            QuerySetParam(ref TextQuery, "iddoc", iddoc);
            DataTable DT;

            if (!ExecuteWithRead(TextQuery, out DT))
            {
                return(false);
            }

            if (DT.Rows.Count > 0)
            {
                DocSet                 = new StrictDoc();
                DocSet.ID              = DT.Rows[0]["IDDOC"].ToString();
                DocSet.SelfRemovel     = (int)(decimal)DT.Rows[0]["SelfRemovel"];
                DocSet.View            = (DocSet.SelfRemovel == 1 ? "(C) " : "") + DT.Rows[0]["Sector"].ToString().Trim() + "-" + DT.Rows[0]["Number"].ToString() + " Заявка " + DT.Rows[0]["DocNo"].ToString() + " (" + DT.Rows[0]["DateDoc"].ToString() + ")";
                DocSet.Rows            = (int)(decimal)DT.Rows[0]["Rows"];
                DocSet.FromWarehouseID = DT.Rows[0]["Bill"].ToString();
                DocSet.Client          = DT.Rows[0]["Client"].ToString().Trim();
                DocSet.Sum             = (decimal)DT.Rows[0]["Sum"];
                DocSet.Special         = (int)(decimal)DT.Rows[0]["TypeNakl"] == 2 ? true : false;
                return(true);
            }

            return(false);
        }
Beispiel #2
0
        }//RSCNewComplectation

        private bool RSCNewComplectationComplete(string IDDorID, bool thisID)
        {
            LastGoodAdress = null;
            if (!thisID)
            {
                if (IsSC(IDDorID, "Сотрудники"))
                {
                    return(ReactionCancel());
                }
                else if (IsSC(IDDorID, "Секции"))
                {
                    if (ScaningBox == null)
                    {
                        FExcStr = "Отсканируйте место!";
                        return(false);
                    }
                    string    ID;
                    string    TextQuery;
                    DataTable DT;
                    Dictionary <string, object> DataMap;
                    if (!GetSCData(IDDorID, "Секции", "ID,DESCR", out DataMap, false))
                    //if (!GetSC(IDDorID, "Секции", out ID))
                    {
                        return(false);
                    }
                    ID = DataMap["ID"].ToString();
                    if (NeedAdressComplete != GetVoidID())
                    {
                        if (ID != NeedAdressComplete)
                        {
                            FExcStr = "Неверный адрес!";
                            return(false);
                        }
                    }
                    else
                    {
                        //нужно проверить зону ворот, к тем ли воротам он относится
                        TextQuery =
                            "Select " +
                            "Zone.$Спр.ЗоныВорот.Секция as Section, " +
                            "Gate.descr as Gate " +
                            "from $Спр.МестаПогрузки as Ref (nolock) " +
                            "inner join DH$КонтрольНабора as DocCC (nolock) " +
                            "on DocCC.iddoc = Ref.$Спр.МестаПогрузки.КонтрольНабора " +
                            "inner join DH$КонтрольРасходной as DocCB (nolock) " +
                            "on DocCB.iddoc = DocCC.$КонтрольНабора.ДокументОснование " +
                            "inner join $Спр.Ворота as Gate (nolock) " +
                            "on Gate.id = DocCB.$КонтрольРасходной.Ворота " +
                            "inner join $Спр.ЗоныВорот as Zone (nolock) " +
                            "on Gate.id = Zone.parentext " +
                            "where Ref.id = :id";
                        QuerySetParam(ref TextQuery, "id", ScaningBox);
                        if (!ExecuteWithRead(TextQuery, out DT))
                        {
                            return(false);
                        }
                        if (DT.Rows.Count > 0)
                        {
                            //зона задана, надо проверять адреса
                            bool findAdres = false;
                            try
                            {
                                //попробуем по быстрому
                                DataRow[] DR;
                                DR        = DT.Select("Section = '" + ID + "'");
                                findAdres = DR.Length > 0;
                            }
                            catch
                            {
                                //ен получилось будем по долгому
                                foreach (DataRow DR in DT.Rows)
                                {
                                    if (ID == DR["Section"].ToString())
                                    {
                                        findAdres = true;
                                        break;
                                    }
                                }
                            }
                            if (!findAdres)
                            {
                                //нет такого адреса в зоне
                                FExcStr = "Нужен адрес из зоны " + DT.Rows[0]["Gate"].ToString().Trim();
                                return(false);
                            }
                        }
                    }
                    TextQuery =
                        "declare @res int; " +
                        "begin tran; " +
                        "exec WPM_CompleteBox :box, :adress, @res output; " +
                        "if @res = 0 rollback tran else commit tran; " +
                        "select @res as result; ";
                    QuerySetParam(ref TextQuery, "box", ScaningBox);
                    QuerySetParam(ref TextQuery, "adress", ID);
                    if (!ExecuteWithRead(TextQuery, out DT))
                    {
                        return(false);
                    }
                    if ((int)DT.Rows[0]["result"] == 0)
                    {
                        FExcStr = "Не удалось зафиксировать комплектацию места!";
                        return(false);
                    }
                    LastGoodAdress     = ID;
                    NameLastGoodAdress = DataMap["DESCR"].ToString();

                    CheckFullNewComplete(ScaningBox);
                    return(ToModeNewComplectationComplete());
                }
                FExcStr = "Нет действий с этим вашим ШК!";
                return(false);
            }
            else
            {
                string TextQuery =
                    "Select " +
                    "isnull(Sections.descr, 'Пу') as Sector, " +
                    "DocCC.$КонтрольНабора.НомерЛиста as Number, " +
                    "CONVERT(char(8), CAST(LEFT(journForBill.date_time_iddoc, 8) as datetime), 4) as DateDoc, " +
                    "journForBill.docno as DocNo, " +
                    "Ref.$Спр.МестаПогрузки.Дата9 as Date, " +
                    "Ref.$Спр.МестаПогрузки.КонтрольНабора as Doc, " +
                    "Ref.$Спр.МестаПогрузки.Сотрудник8 as Employer, " +
                    "isnull(dbo.WMP_fn_GetAdressComplete(Ref.id), :EmptyID ) as Adress9, " +
                    "isnull(Adress.Descr, 'нет адреса') as Adress, " +
                    "AllTab.CountAllBox as CountBox, " +
                    "Gate.descr as Gate " +
                    "from $Спр.МестаПогрузки as Ref (nolock) " +
                    "left join $Спр.Секции as Adress (nolock) " +
                    "on Adress.id = dbo.WMP_fn_GetAdressComplete(Ref.id) " +
                    "inner join DH$КонтрольНабора as DocCC (nolock) " +
                    "on DocCC.iddoc = Ref.$Спр.МестаПогрузки.КонтрольНабора " +
                    "left join $Спр.Секции as Sections (nolock) " +
                    "on Sections.id = DocCC.$КонтрольНабора.Сектор " +
                    "inner join DH$КонтрольРасходной as DocCB (nolock) " +
                    "on DocCB.iddoc = DocCC.$КонтрольНабора.ДокументОснование " +
                    "inner JOIN DH$Счет as Bill (nolock) " +
                    "on Bill.iddoc = DocCB.$КонтрольРасходной.ДокументОснование " +
                    "INNER JOIN _1sjourn as journForBill (nolock) " +
                    "on journForBill.iddoc = Bill.iddoc " +
                    "left join $Спр.Ворота as Gate (nolock) " +
                    "on Gate.id = DocCB.$КонтрольРасходной.Ворота " +
                    "left join ( " +
                    "select " +
                    "DocCC.iddoc as iddoc, " +
                    "count(*) as CountAllBox " +
                    "from $Спр.МестаПогрузки as Ref (nolock) " +
                    "inner join DH$КонтрольНабора as DocCC (nolock) " +
                    "on DocCC.iddoc = Ref.$Спр.МестаПогрузки.КонтрольНабора " +
                    "where " +
                    "Ref.ismark = 0 " +
                    "and Ref.$Спр.МестаПогрузки.Сотрудник8 = :Employer " +
                    "and Ref.$Спр.МестаПогрузки.Дата9 = :EmptyDate " +
                    "and not Ref.$Спр.МестаПогрузки.Дата8 = :EmptyDate " +
                    "group by DocCC.iddoc ) as AllTab " +
                    "on AllTab.iddoc = DocCC.iddoc " +
                    "where Ref.id = :id";
                QuerySetParam(ref TextQuery, "id", IDDorID);
                QuerySetParam(ref TextQuery, "EmptyID", GetVoidID());
                QuerySetParam(ref TextQuery, "Employer", Employer.ID);
                QuerySetParam(ref TextQuery, "EmptyDate", GetVoidDate());

                LoadBadDoc(IDDorID);//Подсосем данные по документу для просмотра состояния

                DataTable DT;
                if (!ExecuteWithRead(TextQuery, out DT))
                {
                    return(false);
                }

                if (DT.Rows.Count == 0)
                {
                    FExcStr = "Нет действий с данным штрихкодом!";
                    return(false);
                }
                if ((DateTime)DT.Rows[0]["Date"] != GetVoidDate())
                {
                    FExcStr = "Место уже скомплектовано!";
                    return(false);
                }
                if (DT.Rows[0]["Employer"].ToString() != Employer.ID)
                {
                    FExcStr = "Этого места нет в задании!";
                    return(false);
                }

                DocDown                = new StrictDoc();
                DocDown.ID             = DT.Rows[0]["Doc"].ToString();
                DocDown.Boxes          = (int)DT.Rows[0]["CountBox"];
                DocDown.View           = DT.Rows[0]["Sector"].ToString().Trim() + "-" + DT.Rows[0]["Number"].ToString() + " Заявка " + DT.Rows[0]["DocNo"].ToString() + " (" + DT.Rows[0]["DateDoc"].ToString() + ")";
                DocDown.AdressCollect  = DT.Rows[0]["Adress"].ToString();
                DocDown.Sector         = DT.Rows[0]["Gate"].ToString().Trim();
                DocDown.NumberBill     = DT.Rows[0]["DocNo"].ToString().Trim();
                DocDown.NumberCC       = (int)(decimal)DT.Rows[0]["Number"];
                DocDown.MainSectorName = DT.Rows[0]["Sector"].ToString();

                ScaningBox         = IDDorID;
                ScaningBoxIddoc    = DT.Rows[0]["Doc"].ToString();
                NeedAdressComplete = DT.Rows[0]["Adress9"].ToString();
                FExcStr            = "Отсканируйте адрес!";
                OnScanBox(new EventArgs());
                return(true);
            }
        }
Beispiel #3
0
        } // EnterCountSampleSet

        private bool RDSampleSet(string IDD, string AdressID)
        {
            string IDDoc;
            string DocType;
            Dictionary <string, object> DataMap;

            if (!GetDocNew(IDD, out IDDoc, out DocType, out DataMap))
            {
                return(false);
            }
            if (DocType != "АдресПеремещение")
            {
                FExcStr = "Неверный тип документа!";
                return(false);
            }
            DataTable DT;
            string    TextQuery =
                "DECLARE @curdate DateTime; " +
                "SELECT @curdate = DATEADD(DAY, 1 - DAY(curdate), curdate) FROM _1ssystem (nolock); " +
                "SELECT TOP 1" +
                "journ.iddoc as IDDOC, " +
                "journ.docno as DocNo, " +
                "journ.date_time_iddoc as DateDoc, " +
                "DocATStrings.$АдресПеремещение.Товар as ID, " +
                "DocATStrings.lineno_ as LINENO_, " +
                "Goods.$Спр.Товары.КоличествоДеталей as Details, " +
                "DocATStrings.$АдресПеремещение.Адрес0 as Adress0, " +
                "Goods.descr as ItemName, " +
                "Goods.$Спр.Товары.ИнвКод as InvCode, " +
                "DocATStrings.$АдресПеремещение.Количество as Count, " +
                "DocAT.$АдресПеремещение.КолСтрок as Rows, " +
                "Sections.descr as AdressName, " +
                "ISNULL(AOT.Balance, 0) as Balance " +
                "FROM " +
                "_1sjourn as journ (nolock) " +
                "LEFT JOIN DH4327 as DocAT (nolock)ON DocAT.iddoc = journ.iddoc " +
                "LEFT JOIN DT4327 as DocATStrings (nolock) ON DocAT.iddoc = DocATStrings.iddoc " +
                "LEFT JOIN $Спр.Товары as Goods (nolock) " +
                "ON Goods.ID = DocATStrings.$АдресПеремещение.Товар " +
                "LEFT JOIN $Спр.Секции as Sections (nolock) " +
                "ON Sections.ID = DocATStrings.$АдресПеремещение.Адрес0 " +
                "LEFT JOIN ( " +
                "select " +
                "RegAOT.$Рег.АдресОстаткиТоваров.Товар as item, " +
                "RegAOT.$Рег.АдресОстаткиТоваров.Адрес as adress, " +
                "sum(RegAOT.$Рег.АдресОстаткиТоваров.Количество ) as balance " +
                "from " +
                "RG$Рег.АдресОстаткиТоваров as RegAOT (nolock) " +
                "where " +
                "period = @curdate " +
                "and $Рег.АдресОстаткиТоваров.Склад = :Warehouse " +
                "and $Рег.АдресОстаткиТоваров.Состояние = 2 " +
                "group by RegAOT.$Рег.АдресОстаткиТоваров.Товар , RegAOT.$Рег.АдресОстаткиТоваров.Адрес " +
                ") as AOT " +
                "ON AOT.item = DocATStrings.$АдресПеремещение.Товар and AOT.adress = DocATStrings.$АдресПеремещение.Адрес0 " +
                "WHERE " +
                "DocAT.iddoc = :Doc " +
                (AdressID == null ? "" : "and DocATStrings.$АдресПеремещение.Адрес0 = :Adress ") +
                "and journ.ismark = 0 " +
                "and DocAT.$АдресПеремещение.ТипДокумента = '3' " +
                "and DocATStrings.$АдресПеремещение.Дата1 = :EmptyDate ";

            SQL1S.QuerySetParam(ref TextQuery, "Doc", IDD);
            SQL1S.QuerySetParam(ref TextQuery, "EmptyDate", SQL1S.GetVoidDate());
            SQL1S.QuerySetParam(ref TextQuery, "Warehouse", Const.MainWarehouse);

            if (AdressID != null)
            {
                QuerySetParam(ref TextQuery, "Adress", AdressID);
            }

            if (!ExecuteWithRead(TextQuery, out DT))
            {
                return(false);
            }
            if (DT.Rows.Count > 0)
            {
                ATDoc.ID = DT.Rows[0]["IDDOC"].ToString();
            }
            // заглушка
            // все строчки отобраны, пусть сканируют принтер
            else
            {
                TextQuery =
                    "SELECT TOP 1" +
                    "journ.iddoc as IDDOC, " +
                    "journ.docno as DocNo, " +
                    "journ.date_time_iddoc as DateDoc " +
                    "FROM " +
                    "_1sjourn as journ (nolock) " +
                    "WHERE " +
                    "journ.iddoc = :Doc " +
                    "and journ.ismark = 0 ";
                SQL1S.QuerySetParam(ref TextQuery, "Doc", IDD);
                if (!ExecuteWithRead(TextQuery, out DT))
                {
                    return(false);
                }
                //забъем пустыми для отображения
                DocSet            = new StrictDoc();
                DocSet.View       = " АдресПеремещение " + DT.Rows[0]["DocNo"].ToString() + " (" + DT.Rows[0]["DateDoc"].ToString() + ")";
                ATDoc.ID          = DT.Rows[0]["IDDOC"].ToString();
                CCItem            = new StructItemSet();
                CCItem.ID         = "";
                CCItem.InvCode    = "";
                CCItem.Name       = "";
                CCItem.Count      = 0;
                CCItem.CountFact  = 0;
                CCItem.AdressID   = "";
                CCItem.AdressName = "";
                CCItem.CurrLine   = 0;
                CCItem.Details    = 0;
                CCItem.Balance    = 0;

                CurrentAction = ActionSet.Waiting;
                FExcStr       = WhatUNeed();
                return(true);
            }
            DocSet      = new StrictDoc();
            DocSet.View = " АдресПеремещение " + DT.Rows[0]["DocNo"].ToString() + " (" + DT.Rows[0]["DateDoc"].ToString() + ")";
            DocSet.ID   = DT.Rows[0]["IDDOC"].ToString();
            DocSet.Rows = (int)(decimal)DT.Rows[0]["Rows"];

            //обновим количество не отобранных
            RefreshAmount();

            CCItem            = new StructItemSet();
            CCItem.ID         = DT.Rows[0]["ID"].ToString();
            CCItem.InvCode    = DT.Rows[0]["InvCode"].ToString();
            CCItem.Name       = DT.Rows[0]["ItemName"].ToString();
            CCItem.Count      = (int)(decimal)DT.Rows[0]["Count"];
            CCItem.CountFact  = (int)(decimal)DT.Rows[0]["Count"];
            CCItem.AdressID   = DT.Rows[0]["Adress0"].ToString();
            CCItem.AdressName = DT.Rows[0]["AdressName"].ToString();
            CCItem.CurrLine   = (short)DT.Rows[0]["LINENO_"];
            CCItem.Details    = (int)(decimal)DT.Rows[0]["Details"];
            CCItem.Balance    = (int)(decimal)DT.Rows[0]["Balance"];


            //получим АдресВременныый из склада в АдресПеремещениии
            TextQuery =
                "SELECT " +
                "WareHouse.SP4537 as AdresTemp " +
                "FROM DH4327 " +
                "LEFT JOIN sc31 as WareHouse on WareHouse.id = DH4327.SP4308 " +
                "WHERE DH4327.iddoc = :Doc ";
            SQL1S.QuerySetParam(ref TextQuery, "Doc", IDD);
            if (!ExecuteWithRead(TextQuery, out DT))
            {
                return(false);
            }
            DocSet.AdressCollect = DT.Rows[0]["AdresTemp"].ToString();
            CurrentAction        = ActionSet.ScanAdress;
            FExcStr = WhatUNeed();
            return(true);
        }
Beispiel #4
0
        //BASE METHOD's
        private bool ToModeSet(string AdressID, string iddoc)
        {
            foreach (string id in DocsSet)
            {
                if (!LockDoc(id))
                {
                    return(false);
                }
            }

            string TextQuery =
                "DECLARE @curdate DateTime; " +
                "SELECT @curdate = DATEADD(DAY, 1 - DAY(curdate), curdate) FROM _1ssystem (nolock); " +
                "select top 1 " +
                "DocCC.$КонтрольНабора.Товар as ID, " +
                "DocCC.lineno_ as LINENO_, " +
                "Goods.descr as ItemName, " +
                "Goods.$Спр.Товары.ИнвКод as InvCode, " +
                "Goods.$Спр.Товары.КоличествоДеталей as Details, " +
                "DocCC.$КонтрольНабора.Количество as Count, " +
                "DocCC.$КонтрольНабора.Адрес0 as Adress, " +
                "DocCC.$КонтрольНабора.Цена as Price, " +
                "Sections.descr as AdressName, " +
                "ISNULL(AOT.Balance, 0) as Balance, " +
                //Реквизиты документа
                "DocCC.iddoc as IDDOC, " +
                "journForBill.docno as DocNo, " +
                "CONVERT(char(8), CAST(LEFT(journForBill.date_time_iddoc, 8) as datetime), 4) as DateDoc, " +
                "journForBill.iddoc as Bill, " +
                "DocCCHead.$КонтрольНабора.КолСтрок as Rows, " +
                "Sector.descr as Sector, " +
                "DocCCHead.$КонтрольНабора.Сумма as Sum, " +
                "DocCCHead.$КонтрольНабора.НомерЛиста as Number, " +
                "DocCCHead.$КонтрольНабора.ФлагСамовывоза as SelfRemovel, " +
                "Clients.descr as Client, " +
                "Bill.$Счет.ТипНакладной as TypeNakl, " +
                "isnull(DocCCHead.$КонтрольНабора.Коробка , :EmptyID) as BoxID, " +
                "AdressBox.descr as Box " +
                "from " +
                "DT$КонтрольНабора as DocCC (nolock) " +
                "LEFT JOIN DH$КонтрольНабора as DocCCHead (nolock) " +
                "ON DocCCHead.iddoc = DocCC.iddoc " +
                "LEFT JOIN $Спр.Товары as Goods (nolock) " +
                "ON Goods.id = DocCC.$КонтрольНабора.Товар " +
                "LEFT JOIN $Спр.Секции as Sections (nolock) " +
                "ON Sections.id = DocCC.$КонтрольНабора.Адрес0 " +
                "LEFT JOIN ( " +
                "select " +
                "RegAOT.$Рег.АдресОстаткиТоваров.Товар as item, " +
                "RegAOT.$Рег.АдресОстаткиТоваров.Адрес as adress, " +
                "sum(RegAOT.$Рег.АдресОстаткиТоваров.Количество ) as balance " +
                "from " +
                "RG$Рег.АдресОстаткиТоваров as RegAOT (nolock) " +
                "where " +
                "period = @curdate " +
                "and $Рег.АдресОстаткиТоваров.Склад = :Warehouse " +
                "and $Рег.АдресОстаткиТоваров.Состояние = 2 " +
                "group by RegAOT.$Рег.АдресОстаткиТоваров.Товар , RegAOT.$Рег.АдресОстаткиТоваров.Адрес " +
                ") as AOT " +
                "ON AOT.item = DocCC.$КонтрольНабора.Товар and AOT.adress = DocCC.$КонтрольНабора.Адрес0 " +
                "LEFT JOIN DH$КонтрольРасходной as DocCB (nolock) " +
                "ON DocCB.iddoc = DocCCHead.$КонтрольНабора.ДокументОснование " +
                "LEFT JOIN DH$Счет as Bill (nolock) " +
                "ON Bill.iddoc = DocCB.$КонтрольРасходной.ДокументОснование " +
                "LEFT JOIN _1sjourn as journForBill (nolock) " +
                "ON journForBill.iddoc = Bill.iddoc " +
                "LEFT JOIN $Спр.Секции as Sector (nolock) " +
                "ON Sector.id = DocCCHead.$КонтрольНабора.Сектор " +
                "LEFT JOIN $Спр.Клиенты as Clients (nolock) " +
                "ON Bill.$Счет.Клиент = Clients.id " +
                "LEFT JOIN $Спр.Секции as AdressBox (nolock) " +
                "ON AdressBox.id = DocCCHead.$КонтрольНабора.Коробка " +
                "where " +
                "DocCC.iddoc in (:Docs) " +
                "and DocCC.$КонтрольНабора.Дата5 = :EmptyDate " +
                "and DocCC.$КонтрольНабора.Корректировка = 0 " +
                "and DocCC.$КонтрольНабора.Количество > 0 " +
                (AdressID == null ? "" : "and DocCC.$КонтрольНабора.Адрес0 = :Adress ") +
                (iddoc == null ? "" : "and DocCC.iddoc = :iddoc ") +
                "order by " +
                "DocCCHead.$КонтрольНабора.Сектор , Sections.$Спр.Секции.Маршрут , LINENO_";

            DataTable DT;

            TextQuery = TextQuery.Replace(":Docs", Helper.ListToStringWithQuotes(DocsSet));
            QuerySetParam(ref TextQuery, "EmptyDate", GetVoidDate());
            QuerySetParam(ref TextQuery, "Warehouse", Const.MainWarehouse);
            if (iddoc != null)
            {
                QuerySetParam(ref TextQuery, "iddoc", iddoc);
            }
            if (AdressID != null)
            {
                QuerySetParam(ref TextQuery, "Adress", AdressID);
            }
            if (!ExecuteWithRead(TextQuery, out DT))
            {
                return(false);
            }

            if (DT.Rows.Count == 0)
            {
                if (AdressID == null)
                {
                    return(ToModeSetComplete());
                }
                else
                {
                    //Это попытка перепрыгнуть
                    FExcStr = "Нет такого адреса в сборочном!";
                    return(false);
                }
            }

            RefreshRowSum();    //Подтянем циферки

            CCItem            = new StructItemSet();
            CCItem.ID         = DT.Rows[0]["id"].ToString();
            CCItem.InvCode    = DT.Rows[0]["InvCode"].ToString();
            CCItem.Name       = DT.Rows[0]["ItemName"].ToString();
            CCItem.Price      = (decimal)DT.Rows[0]["Price"];
            CCItem.Count      = (int)(decimal)DT.Rows[0]["Count"];
            CCItem.CountFact  = (int)(decimal)DT.Rows[0]["Count"];
            CCItem.AdressID   = DT.Rows[0]["Adress"].ToString();
            CCItem.AdressName = DT.Rows[0]["AdressName"].ToString();
            CCItem.CurrLine   = (short)DT.Rows[0]["LINENO_"];
            CCItem.Balance    = (int)(decimal)DT.Rows[0]["Balance"];
            CCItem.Details    = (int)(decimal)DT.Rows[0]["Details"];

            if (!MultiplesOKEI2(ref CCItem))
            {
                return(false);
            }

            DocSet                 = new StrictDoc();
            DocSet.ID              = DT.Rows[0]["IDDOC"].ToString();
            DocSet.SelfRemovel     = (int)(decimal)DT.Rows[0]["SelfRemovel"];
            DocSet.View            = (DocSet.SelfRemovel == 1 ? "(C) " : "") + DT.Rows[0]["Sector"].ToString().Trim() + "-" + DT.Rows[0]["Number"].ToString() + " Заявка " + DT.Rows[0]["DocNo"].ToString() + " (" + DT.Rows[0]["DateDoc"].ToString() + ")";
            DocSet.Rows            = (int)(decimal)DT.Rows[0]["Rows"];
            DocSet.FromWarehouseID = DT.Rows[0]["Bill"].ToString();
            DocSet.Client          = DT.Rows[0]["Client"].ToString().Trim();
            DocSet.Sum             = (decimal)DT.Rows[0]["Sum"];
            DocSet.Special         = (int)(decimal)DT.Rows[0]["TypeNakl"] == 2 ? true : false;
            DocSet.Box             = DT.Rows[0]["Box"].ToString();
            DocSet.BoxID           = DT.Rows[0]["BoxID"].ToString();

            CurrentAction = ActionSet.ScanAdress;
            FExcStr       = WhatUNeed();
            FCurrentMode  = Mode.Set;
            return(true);
        } // ToModeSet