2 378 документов
← К списку

ВыполнитьПроцедуру

страница

Запустить выполнение процедуры в фоновом задании, если это возможно. Вызываемая процедура может быть с произвольным числом параметров, но не более 7. Значения передаваемых параметров процедуры, а также возвращаемое значение должны быть сериализуемыми. Параметры процедуры не должны быть возвращаемыми. Не следует использовать эту функцию, если необходимо безусловно запускать фоновое задание. Рекомендуется применять совместно с функцией ДлительныеОперацииКлиент.ОжидатьЗавершение, если невозможно, тогда для проверки завершения операции использовать функцию ЗаданиеВыполнено.

Синтаксис

Функция ВыполнитьПроцедуру(Знач ПараметрыВыполнения = Неопределено, ИмяПроцедуры, Знач Параметр1 = Неопределено,
Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено, Знач Параметр4 = Неопределено,
Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено, Знач Параметр7 = Неопределено) Экспорт

Параметры

  • ПараметрыВыполнения — см. ДлительныеОперации.ПараметрыВыполненияПроцедуры
  • ИмяПроцедуры — Строка - имя экспортной процедуры общего модуля, модуля менеджера объекта или модуля обработки, которую необходимо выполнить в фоне. Например, "МойОбщийМодуль.МояПроцедура", "Отчет.ЗагруженныеДанные.Сформировать" или "Обработка.ЗагрузкаДанных.МодульОбъекта.Загрузить".
  • Параметр1 — Произвольный - произвольные параметры вызова процедуры. Количество параметров может быть от 0 до 7.
  • Параметр2 — Произвольный
  • Параметр3 — Произвольный
  • Параметр4 — Произвольный
  • Параметр5 — Произвольный
  • Параметр6 — Произвольный
  • Параметр7 — Произвольный

Возвращаемое значение

Структура - параметры выполнения задания:

  • Статус - Строка - "Выполняется", если задание еще не завершилось; "Выполнено", если задание было успешно выполнено; "Ошибка", если задание завершено с ошибкой; "Отменено", если задание отменено пользователем или администратором.
  • ИдентификаторЗадания - УникальныйИдентификатор - если Статус = "Выполняется", то содержит идентификатор запущенного фонового задания.
    • Неопределено - если Статус <> "Выполняется" и фоновое задание не запускалось.
  • ИнформацияОбОшибке - ИнформацияОбОшибке - если Статус = "Ошибка".
    • Неопределено - если Статус <> "Ошибка".
  • Сообщения - ФиксированныйМассив - если Статус <> "Выполняется", то массив объектов СообщениеПользователю, которые были сформированы в фоновом задании.
  • КраткоеПредставлениеОшибки - Строка - устарел.
  • ПодробноеПредставлениеОшибки - Строка - устарел.

Пример вызова

  В общем виде процесс запуска и обработки результата длительной операции в модуле формы выглядит следующим образом:
   1) Процедура, которая будет исполняться в фоне, располагается в модуле менеджера объекта или в серверном общем модуле:
    Процедура ВыполнитьРасчет(Знач МойПараметр1, Знач МойПараметр2) Экспорт
     ...
    КонецПроцедуры
   2) Запуск операции на сервере и подключение обработчика ожидания (при необходимости):
    &НаКлиенте
    Процедура ВыполнитьРасчет()
     ДлительнаяОперация = НачатьВыполнениеНаСервере();
     ОповещениеОЗавершении = Новый ОписаниеОповещения("ОбработатьРезультат", ЭтотОбъект);
     ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
     ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
    КонецПроцедуры
    &НаСервере
    Функция НачатьВыполнениеНаСервере()
     Возврат ДлительныеОперации.ВыполнитьПроцедуру(, "Обработка.МояОбработка.ВыполнитьРасчет", 
      МойПараметр1, МойПараметр2);
    КонецФункции
   3) Обработка результата длительной операции:
    &НаКлиенте
    Процедура ОбработатьРезультат(Результат, ДополнительныеПараметры) Экспорт
     Если Результат = Неопределено Тогда
      Возврат;
     КонецЕсли;
     Если Результат.Статус = "Ошибка" Тогда
      СтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(Результат.ИнформацияОбОшибке);
      Возврат;
     КонецЕсли;
     ПриЗавершенииРасчета();
    КонецПроцедуры 
@skip-check method-optional-parameter-before-required

Доступность

Сервер, Толстый клиент, Внешнее соединение