Beispiel #1
0
        protected override void Execution(object sender, DoWorkEventArgs e)
        {
            //Грохаем все «1cv8c.exe» на серваке
            if (MainSettings.MainSqlSettings.Is1CServer)
            {
                KillProcess1C ActionKill = new KillProcess1C(Id);
                ActionKill.ActRun();
            }

            Thread.Sleep(3000);

            MagicUpdaterCommon.CommonActions.StartWithParameter1C act = new MagicUpdaterCommon.CommonActions.StartWithParameter1C(Id, MagicUpdaterCommon.SettingsTools.Parameters1C.CmdParams1C.UpdateAndPrintLog);             // параметр обновицца и записать лог
            act.ActRun();

            if (!act.NewProc.HasExited)
            {
                act.NewProc.WaitForExit(60000 * 7);
            }

            if (!act.NewProc.HasExited)
            {
                throw new Exception("Процесс конфигуратора не завершился после 7 минут ожидания. Обновление не выполнено.");
            }

            new SendLogsToCenter1C(Id).ActRun();             // Собираем и отправляем в центр логи

            if (!MainSettings.MainSqlSettings.Is1CServer)
            {
                new OpenVikiAndShowNotifyForDynamicUpdate(Id).ActRun(true, false);
            }
        }
Beispiel #2
0
        protected override void Execution(object sender, DoWorkEventArgs e)
        {
            // Если касса, то сначала дожидаемся подтверждения
            if (MainSettings.MainSqlSettings.IsMainCashbox)
            {
                // Пример использования операции с преогресс баром
                BackgroundWorker worker = sender as BackgroundWorker;
                if (worker != null)
                {
                    using (worker)
                    {
                        worker.ReportProgress(0, "Закрытие 1С на всех компьютерах");
                        //Грохаем все «1cv8c.exe» на всех компах в сети
                        KillProcess1C ActionKill = new KillProcess1C(Id);
                        ActionKill.ActRun(true, false, 7000);
                        Thread.Sleep(3000);

                        worker.ReportProgress(1, "Блокировка фоновых заданий на сервере 1С");
                        try
                        {
                            new LockBackgroundJobsOnServer1C(Id).ActRun();                             //Блокировка фоновых заданий на сервере 1С
                        }
                        catch (Exception ex)
                        {
                            NLogger.LogErrorToBaseOrHdd(MainSettings.MainSqlSettings.ComputerId, ex.Message.ToString());
                        }

                        worker.ReportProgress(2, "Завершение сеансов на сервере 1С");
                        try
                        {
                            new KillAll1CUsers(Id).ActRun();                             //Убийство всех сеансов на сервере 1С
                        }
                        catch (Exception ex)
                        {
                            NLogger.LogErrorToBaseOrHdd(MainSettings.MainSqlSettings.ComputerId, ex.Message.ToString());
                        }

                        worker.ReportProgress(3, "Обновление информационной базы...");
                        new UpdateBase1C(Id).ActRun();                         //Обновление базы

                        worker.ReportProgress(4, "Разрешение фоновых заданий на сервере 1С");
                        try
                        {
                            new UnLockBackgroundJobsOnServer1C(Id).ActRun();                             //Блокировка фоновых заданий на сервере 1С
                        }
                        catch (Exception ex)
                        {
                            NLogger.LogErrorToBaseOrHdd(MainSettings.MainSqlSettings.ComputerId, ex.Message.ToString());
                        }

                        worker.ReportProgress(5, "Сбор логов");
                        new SendLogsToCenter1C(Id).ActRun();                         //Сбор лога и отправка в центр

                        Thread.Sleep(1000);
                    }
                }
            }
        }
        protected override void Execution(object sender = null, DoWorkEventArgs e = null)
        {
            new ExecProcessing1CAction(Id, "ОбменСЦентром.epf", 10).ActRun();

            //Грохаем все «1cv8c.exe» на всех компах в сети
            KillProcess1C ActionKill = new KillProcess1C(Id);

            ActionKill.ActRun(true, false, 7000);

            Thread.Sleep(3000);

            try
            {
                new LockBackgroundJobsOnServer1C(Id).ActRun();                 //Блокировка фоновых заданий на сервере 1С
            }
            catch (Exception ex)
            {
                NLogger.LogErrorToBaseOrHdd(MainSettings.MainSqlSettings.ComputerId, ex.Message.ToString());
            }

            try
            {
                new StopServer1C(Id).ActRun();                 //Убиваем сервер 1С
            }
            catch (Exception ex)
            {
                NLogger.LogErrorToBaseOrHdd(MainSettings.MainSqlSettings.ComputerId, ex.Message.ToString());
            }

            Thread.Sleep(10000);

            try
            {
                new StartServer1C(Id).ActRun();                 //Запускаем сервер 1С
            }
            catch (Exception ex)
            {
                NLogger.LogErrorToBaseOrHdd(MainSettings.MainSqlSettings.ComputerId, ex.Message.ToString());
            }

            Thread.Sleep(10000);

            new UpdateBase1C(Id).ActRun();             //Обновление базы

            try
            {
                new UnLockBackgroundJobsOnServer1C(Id).ActRun();                 //Разблокировка фоновых заданий на сервере 1С
            }
            catch (Exception ex)
            {
                NLogger.LogErrorToBaseOrHdd(MainSettings.MainSqlSettings.ComputerId, ex.Message.ToString());
            }

            new SendLogsToCenter1C(Id).ActRun();             //Сбор лога и отправка в центр
        }