Имя: Пароль:
1C
1С v8
Фоновые задания и асинхронная модель программирования
0 vse_serjezno
 
16.03.16
12:03
Здравствуйте.

Работаю на 8.2. Хочу переписать механизм подписи документа.
Через модуль команды "Установить подпись документа" сейчас происходит подписание документа(установка всех необходимых реквизитов и т.п.) и затем вызывается процедура создания связанных документов.

Хочу из синхронного сделать асинхронный механизм - после подписания документа запускать фон.задание на создание и заполнение связанных документов.

Встает вопрос, как контролировать успешное выполнение фонового задания. Что можете посоветовать?
1 Cyberhawk
 
16.03.16
12:06
ФоновоеЗадание.ОжидатьЗавершения (BackgroundJob.WaitForCompletion)
ФоновоеЗадание (BackgroundJob)
ОжидатьЗавершения (WaitForCompletion)
Синтаксис:

ОжидатьЗавершения(<Таймаут>)
Параметры:

<Таймаут> (необязательный)

Тип: Число.
Таймаут в секундах ожидания завершения задания. Если таймаут не определен, ожидание будет длиться до момента завершения задания.
Описание:

Ожидать успешного завершения задания. Если задание завершено аварийно, ожидание прерывается и выдается ошибка выполнения задания. Если наступил таймаут, выдается ошибка ожидания задания. Ожидать завершения задания может только администратор или пользователь, запустивший задание.

Доступность:

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

     Методическая информация
2 Cyberhawk
 
16.03.16
12:06
ФоновоеЗадание.ПолучитьСообщенияПользователю (BackgroundJob.GetUserMessages)
ФоновоеЗадание (BackgroundJob)
ПолучитьСообщенияПользователю (GetUserMessages)
Синтаксис:

ПолучитьСообщенияПользователю(<УдалятьПолученные>)
Параметры:

<УдалятьПолученные> (необязательный)

Тип: Булево.
Признак необходимости удаления полученных сообщений.
Истина - удалять.
Значение по умолчанию: Ложь.
Возвращаемое значение:

Тип: ФиксированныйМассив.

Описание:

Получает массив объектов СообщениеПользователю, которые были выведены в процессе работы фонового задания. Получение сообщений может выполняться как в процессе работы задания, так и по его завершении.

Доступность:

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

     Методическая информация
3 Cyberhawk
 
16.03.16
12:07
МенеджерФоновыхЗаданий.НайтиПоУникальномуИдентификатору (BackgroundJobsManager.FindByUUID)
МенеджерФоновыхЗаданий (BackgroundJobsManager)
НайтиПоУникальномуИдентификатору (FindByUUID)
Синтаксис:

НайтиПоУникальномуИдентификатору(<УникальныйИдентификатор>)
Параметры:

<УникальныйИдентификатор> (обязательный)

Тип: УникальныйИдентификатор.
Идентификатор задания.
Возвращаемое значение:

Тип: ФоновоеЗадание; Неопределено.
Если задание для заданного идентификатора не найдено, возвращает Неопределено.
Описание:

Найти фоновое задание по уникальному идентификатору. Получение задания возможно только для администратора или пользователя, запустившего задание на выполнение.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
--------------------------------------------------------------------------------

     Методическая информация
4 Cyberhawk
 
16.03.16
12:07
Перечисленное тебе поможет
5 vse_serjezno
 
16.03.16
12:15
Спасибо, буду пробовать.
6 xxTANATORxx
 
16.03.16
12:47
по мне асинхронное выполнение и контроль завершения как-то не вяжется