This commit is contained in:
wakadakawaka 2025-07-09 22:18:02 +05:00
parent af031d154c
commit ec1c95761f

View File

@ -4,7 +4,6 @@ slug: общие-длительные-операции/длительная-од
--- ---
# Схема выполнения длительной серверной операции # Схема выполнения длительной серверной операции
Механизм длительных операций БСП необходим для выполнения тяжелых операций без блокирования окна клиентского приложения. По умолчанию платформа блокирует клиентский интерфейс до тех пор, пока серверная операция не будет завершена. Подсистема "Длительные операции" позволяет обойти эту проблему Механизм длительных операций БСП необходим для выполнения тяжелых операций без блокирования окна клиентского приложения. По умолчанию платформа блокирует клиентский интерфейс до тех пор, пока серверная операция не будет завершена. Подсистема "Длительные операции" позволяет обойти эту проблему
![diagramma-bez-nazvaniya.drawio.png](https://sinenikolsky.ru/s/QEWSKmHn7HKGJX4/download?path=%2F2025%2F04%2F16&files=fe7a4397-bffe-44ca-be28-f3f909684212.png)
## Создание длительной операции ## Создание длительной операции
Длительную операцию необходимо размещать в **экспортной** функции. Рекомендуется выносить их в общий модуль. Например, для примера создаем длительную функцию в общем модуле `МоиДлительныеОперации` Длительную операцию необходимо размещать в **экспортной** функции. Рекомендуется выносить их в общий модуль. Например, для примера создаем длительную функцию в общем модуле `МоиДлительныеОперации`
@ -56,12 +55,11 @@ slug: общие-длительные-операции/длительная-од
ПараметрыОжидания.Интервал = 2; ПараметрыОжидания.Интервал = 2;
// Структура, которая передается в качестве настроек оповещения при завершении длительной операции // Структура, которая передается в качестве настроек оповещения при завершении длительной операции
ПараметрыОповещения = Новый Структура("НавигационнаяСсылка, Пояснение, Картинка, Важное" ПараметрыОповещения = Новый Структура
, "" ПараметрыОповещения.Вставить("НавигационнаяСсылка", "");
, "" ПараметрыОповещения.Вставить("Пояснение", "");
, Неопределено ПараметрыОповещения.Вставить("Картинка", Неопределено);
, Ложь); ПараметрыОповещения.Вставить("Важное", Ложь);
ПараметрыОповещения.Вставить("Показать", Истина); ПараметрыОповещения.Вставить("Показать", Истина);
ПараметрыОповещения.Вставить("Текст", "Синхронизация завершена"); ПараметрыОповещения.Вставить("Текст", "Синхронизация завершена");
@ -74,9 +72,7 @@ slug: общие-длительные-операции/длительная-од
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗавершенияВыполненияДлительнойФункции", ЭтаФорма); ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗавершенияВыполненияДлительнойФункции", ЭтаФорма);
// Запуск ожидания завершения // Запуск ожидания завершения
ДлительныеОперацииКлиент.ОжидатьЗавершение(МояДлительнаяОперация ДлительныеОперацииКлиент.ОжидатьЗавершение(МояДлительнаяОперация, ОписаниеОповещения, ПараметрыОжидания);
, ОписаниеОповещения
, ПараметрыОжидания);
КонецПроцедуры КонецПроцедуры
@ -89,9 +85,9 @@ slug: общие-длительные-операции/длительная-од
// Указываем идентификатор владельца задания, // Указываем идентификатор владельца задания,
// полный путь до тяжелой операции и дополнительные параметры (до 7 шт), // полный путь до тяжелой операции и дополнительные параметры (до 7 шт),
// которые необходимо передать в тяжелую операцию // которые необходимо передать в тяжелую операцию
Операция = ДлительныеОперации.ВыполнитьФункцию(УИДЭтойФормы Операция = ДлительныеОперации.ВыполнитьФункцию(УИДЭтойФормы,
, "МоиДлительныеОперации." + ИмяФункции "МоиДлительныеОперации." + ИмяФункции,
, ДлительностьОжидания); ДлительностьОжидания);
Возврат Операция; Возврат Операция;