|
Как передать результат выполнения фонового задания | ☑ | ||
---|---|---|---|---|
0
ИС-2
naïve
02.06.15
✎
13:24
|
Порождаю фоновое задание, которое вызывает функцию.
Как можно получить результат выполнения функции? Поместить результат во временное хранилище, запись в регистр. Какие еще варианты? |
|||
1
butterbean
02.06.15
✎
13:25
|
а где надо получить-то?
|
|||
2
D_E_S_131
02.06.15
✎
13:28
|
"Какие еще варианты?" — создать текстовый файл, новый элемент справочника, документ на основании, таблицу Excel...
|
|||
3
ИС-2
naïve
02.06.15
✎
13:28
|
на клиенте
|
|||
4
ИС-2
naïve
02.06.15
✎
13:31
|
суть в том, что нужен какой-то быстрый механизм по выявлению свежих данных для пользователя (т.е результат выполнения функции).
|
|||
5
LordCMEPTb
02.06.15
✎
13:31
|
Ну помимо записи в регистр, можно писать в любой объект метаданных, в который можно записать строку неограниченной длины или хранилище значений.
Можно сохранять результат в файл, который выкладывать на общий диск, ftp, файло-помойки типа яндекс-диска. Было б желание.. а чем временное хранилище не устроило? |
|||
6
MadHead
02.06.15
✎
13:35
|
Можно вернуть в эксепшине
|
|||
7
Fragster
гуру
02.06.15
✎
13:36
|
я как-то через СообщениеПользователю передавал :)
|
|||
8
MadHead
02.06.15
✎
13:38
|
||||
9
vde69
02.06.15
✎
13:41
|
// Регистрирует в сообщениях информацию о ходе выполнения фонового задания.
// В дальнейшем эту информацию можно считать с клиента при помощи функции ПрочитатьПрогресс. // // Параметры: // Процент - Число - Необязательный. Процент выполнения. // Текст - Строка - Необязательный. Информация о текущей операции. // ДополнительныеПараметры - Произвольный - Необязательный. Любая дополнительная информация, // которую необходимо передать на клиент. Значение должно быть простым (сериализуемым в XML строку). // Процедура СообщитьПрогресс(Знач Процент = Неопределено, Знач Текст = Неопределено, Знач ДополнительныеПараметры = Неопределено) Экспорт ПередаваемоеЗначение = Новый Структура; Если Процент <> Неопределено Тогда ПередаваемоеЗначение.Вставить("Процент", Процент); КонецЕсли; Если Текст <> Неопределено Тогда ПередаваемоеЗначение.Вставить("Текст", Текст); КонецЕсли; Если ДополнительныеПараметры <> Неопределено Тогда ПередаваемоеЗначение.Вставить("ДополнительныеПараметры", ДополнительныеПараметры); КонецЕсли; ПередаваемыйТекст = ОбщегоНазначения.ЗначениеВСтрокуXML(ПередаваемоеЗначение); Сообщение = Новый СообщениеПользователю; Сообщение.Текст = ПередаваемыйТекст; Сообщение.Сообщить(); КонецПроцедуры // Находит фоновое задание и считывает из его сообщений информацию о ходе выполнения. // // Возвращаемое значение: // Структура - Информация о ходе выполнения фонового задания. // Ключи и значения структуры соответствуют именам и значениям параметров процедуры СообщитьПрогресс(). // Функция ПрочитатьПрогресс(Знач ИдентификаторЗадания) Экспорт Перем Результат; Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания); Если Задание = Неопределено Тогда Возврат Результат; КонецЕсли; МассивСообщений = Задание.ПолучитьСообщенияПользователю(Истина); Если МассивСообщений = Неопределено Тогда Возврат Результат; КонецЕсли; Количество = МассивСообщений.Количество(); Для Номер = 1 По Количество Цикл ОбратныйИндекс = Количество - Номер; Сообщение = МассивСообщений[ОбратныйИндекс]; Результат = ОбщегоНазначения.ЗначениеИзСтрокиXML(Сообщение.Текст); Прервать; КонецЦикла; Возврат Результат; КонецФункции |
|||
10
ИС-2
naïve
15.06.15
✎
09:13
|
(9) спасибо.
Сейчас любой вариант требует постоянного опроса наличия завершения фонового задания, что добавляет тормоза и усложняет код. Есть ли другие способы для информирования клиента об окончании его фонового задания? |
|||
11
ДенисЧ
15.06.15
✎
09:15
|
(10) нет
|
|||
12
hhhh
15.06.15
✎
09:30
|
(10) а в типовый смотрели? Там ведь все отчеты сделаны через фоновые задания.
|
|||
13
rphosts
15.06.15
✎
09:30
|
(0) константа, сериализовать и в: файл, по почте, на фтп....
|
|||
14
ИС-2
naïve
15.06.15
✎
09:55
|
(12) нет. Я работаю с УПП - там такого не видел.
В каких конфах и отчетах можно посмотреть? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |