dlitelnye_operacii._fonovye_vypolnenija_bsp

Это старая версия документа!


в БСП вместо длительных операций уже рекомендуется применять «ВыполнитьПроцедуру» или «ВыполнитьФункцию»

В общем виде процесс запуска и обработки результата длительной операции в модуле формы выглядит следующим образом: 1) Процедура, которая будет исполняться в фоне, располагается в модуле менеджера объекта или в серверном общем модуле:

Процедура ВыполнитьРасчет(Знач МойПараметр1, Знач МойПараметр2) Экспорт
   ...
КонецПроцедуры

2) Запуск операции на сервере и подключение обработчика ожидания (при необходимости): <code> &НаКлиенте Процедура ВыполнитьРасчет() ДлительнаяОперация = НачатьВыполнениеНаСервере(); ОповещениеОЗавершении = Новый ОписаниеОповещения(«ОбработатьРезультат», ЭтотОбъект); ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания); КонецПроцедуры </code> <code> &НаСервере Функция НачатьВыполнениеНаСервере() Возврат ДлительныеОперации.ВыполнитьПроцедуру(, «Обработки.МояОбработка.ВыполнитьРасчет», МойПараметр1, МойПараметр2); КонецФункции </code> 3) Обработка результата длительной операции:

&НаКлиенте
Процедура ОбработатьРезультат(Результат, ДополнительныеПараметры) Экспорт
   Если Результат = Неопределено Тогда
       Возврат;
   КонецЕсли;
   ПриЗавершенииРасчета();
КонецПроцедуры

<code> &НаСервере Функция ЗапуститьФоновуюОтправкуФайлов() ОтправляемыеФайлы = Новый Массив; Для Каждого Файл Из Файлы.ПолучитьЭлементы() Цикл ОписаниеФайла = Новый Структура; ОписаниеФайла.Вставить(«ИмяФайла», Файл.Наименование); ОписаниеФайла.Вставить(«ДатаИзменения»); ОписаниеФайла.Вставить(«Каталог»); ОписаниеФайла.Вставить(«ДвоичныеДанные», ПолучитьИзВременногоХранилища(Файл.Адрес)); ОтправляемыеФайлы.Добавить(ОписаниеФайла); КонецЦикла; ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияПроцедуры(); ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр(«ru = 'Отправка файлов в сервиса распознавания документов'»); ФоновоеЗадание = ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения, «Обработки.РаспознаваниеДокументов.ОтправитьФайлыНаРаспознавание», ОтправляемыеФайлы); Возврат ФоновоеЗадание; КонецФункции; </code>

  • /sites/data/attic/dlitelnye_operacii._fonovye_vypolnenija_bsp.1660301191.txt.gz
  • Последнее изменение: 2022/08/12 10:46
  • tro