protected override void ExecuteExchange(OperationInterop interop)
        {
            // >>>
            interop.SetStatusText("Инициализация");
            interop.ThrowIfCancellationRequested();
            // <<<

            RaiseBeforeExecuteEvent();

            // >>>
            interop.SetStatusText("Обработка параметров");
            // <<<

            // >>>
            interop.SetStatusText("Чтение файлов");
            interop.ThrowIfCancellationRequested();
            interop.SetProgress(10);
            // <<<

            // Чтение файлов
            foreach (var formatter in Formatters)
            {
                formatter.ReadFiles(interop);
            }

            // >>>
            interop.SetStatusText("Обработка данных");
            interop.ThrowIfCancellationRequested();
            interop.SetProgress(50);
            // <<<

            // Before
            foreach (var formatter in Formatters)
            {
                formatter.OnBeforeFormatting();
            }

            // Processing
            foreach (var formatter in Formatters)
            {
                interop.ThrowIfCancellationRequested();
                var objectSpace = GetObjectSpace();
                bool success = false;
                try
                {
                    formatter.ProcessData(objectSpace, interop);
                    success = true;
                }
                finally
                {
                    CloseObjectSpace(objectSpace, success);
                }
            }

            // After
            foreach (var formatter in Formatters)
            {
                formatter.OnAfterFormatting();
            }

            // >>>
            interop.SetStatusText("Постобработка");
            interop.SetProgress(99);
            // <<<

            RaiseAfterExecuteEvent();
            interop.SetProgress(100);
        }