# Реализация обработки длительной операции в задаче Для обработки длительных операций в системе, когда использование блока "Скрипт" приводит к таймауту и срыву процесса, можно использовать следующий метод. При этом в самой задаче будет отображаться прогресс обработки, на время обработки кнопки переходов будут скрыты.

Внутри обработчика нельзя использовать **context**. Вместо этого использовать **model.Context**.

```C# public override void OnTaskCreate(ITaskBase task, P_IA_AandP context) { // 4f55dd98-5242-4633-88e8-4c745551b52c - Id задачи на диаграмме WorkflowHelper.ProcessLongAction(new Guid("4f55dd98-5242-4633-88e8-4c745551b52c"), task, (model, session) => { model.Name = "Сбор данных по активным задачам"; // Название операции, отображаемое в задаче // Здесь любой код для длительных операций var instanceContext = model.Context as P_IA_AandP; }); } ``` В ELMA4 изменена сигнатура вызова метода - дополнительно передается тип контекста: ```c# public override void OnTaskCreate(ITaskBase task, P_IA_AandP context) { // 4f55dd98-5242-4633-88e8-4c745551b52c - Id задачи на диаграмме WorkflowHelper.ProcessLongAction(new Guid("4f55dd98-5242-4633-88e8-4c745551b52c"), task, (model, session) => { model.Name = "Сбор данных по активным задачам"; // Название операции, отображаемое в задаче // Здесь любой код для длительных операций var instanceContextVar1 = model.Context.Var1; }); } ```

После окончания длительной операции контекст процесса сохранять не нужно - это будет сделано автоматически, если были изменения.

В результате при создании задачи запуститься в отдельном потоке обработка, кнопки переходов будут скрыты и будет отображена информация об операции со счетчиком времени выполнения. Например: [![image-1630422165056.png](https://kb.randmgroup.ru/uploads/images/gallery/2021-08/scaled-1680-/dfTqQbz7ac1KFkcB-image-1630422165056.png)](https://kb.randmgroup.ru/uploads/images/gallery/2021-08/dfTqQbz7ac1KFkcB-image-1630422165056.png) После завершения длительно операции кнопки переходов вновь появятся и будет выдано сообщение со временем завершения выполнения указанной операции: [![image-1630423575147.png](https://kb.randmgroup.ru/uploads/images/gallery/2021-08/scaled-1680-/m4ScKjegHhuoWMxk-image-1630423575147.png)](https://kb.randmgroup.ru/uploads/images/gallery/2021-08/m4ScKjegHhuoWMxk-image-1630423575147.png) Если в исполняемом коде будет вызвано исключение, то появится соответствующее сообщение, кнопки переходов так же появятся: [![image-1630427822285.png](https://kb.randmgroup.ru/uploads/images/gallery/2021-08/scaled-1680-/Z5jfGKLNsIHYJZZe-image-1630427822285.png)](https://kb.randmgroup.ru/uploads/images/gallery/2021-08/Z5jfGKLNsIHYJZZe-image-1630427822285.png)