|
Статус-бар по фоновому заданию | ☑ | ||
---|---|---|---|---|
0
Ахмадинежад
17.02.16
✎
16:25
|
То есть запускается длительный процесс, и нужно, чтобы отображалась форма с статус-баром.
БСП требует отключения режима совместимости.. Подскажите концепцию, пожалуйста |
|||
1
Garykom
гуру
17.02.16
✎
16:26
|
Зачем нужно?
|
|||
2
Fish
17.02.16
✎
16:27
|
ОбщиеКартинки.ДлительнаяОперация48
|
|||
3
pessok
17.02.16
✎
16:27
|
ПолучитьСообщенияПользователя
|
|||
4
Волшебник
модератор
17.02.16
✎
16:27
|
заведи регистр сведений "Статусы фоновых заданий"
в фоновом задании он пишется на клиенте периодически считывается и показывается пользователю |
|||
5
Garykom
гуру
17.02.16
✎
16:30
|
(4) останется понять какое из фоновых относится к какому клиенту
|
|||
6
pessok
17.02.16
✎
16:31
|
у меня вот так распараллелена выгрузка данных
&НаКлиенте Процедура ОбработчикОжиданияВыгрузкиНаFTP() Для Каждого Форма Из СписокФорм Цикл ИдентификаторЗадания = Форма.ИдентификаторЗадания; СтатусФоновогоЗадания = ПолучитьСтатусФоновогоЗадания(ИдентификаторЗадания); Если СтатусФоновогоЗадания <> 1 Тогда Если Форма.Открыта() Тогда Форма.Закрыть(); КонецЕсли; ВыполненоЗаданий = ВыполненоЗаданий + 1; Иначе ПоследнееСообщение = ПолучитьПоследнееСообщениеФоновогоЗадания(ИдентификаторЗадания); Форма.Элементы.ДекорацияПоясняющийТекстДлительнойОперации.Заголовок = ПоследнееСообщение; КонецЕсли; Если СписокФорм.Количество() <= ВыполненоЗаданий Тогда ПоказатьПредупреждение(, "Выгрузка завершена!"); ОтключитьОбработчикОжидания("ОбработчикОжиданияВыгрузкиНаFTP"); ЗаполнитьДаннымиОбработки(); Прервать; Иначе ПодключитьОбработчикОжидания("ОбработчикОжиданияВыгрузкиНаFTP", 3, Истина); КонецЕсли; КонецЦикла; КонецПроцедуры соответственно в обработчике просто ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Выполнение запроса"); сюда можно писать счетчик, например, и его уже использовать опять таки для прогресс бара |
|||
7
pessok
17.02.16
✎
16:32
|
+ (6)
Функция ПолучитьПоследнееСообщениеФоновогоЗадания(ИдентификаторЗадания) ПоследнееСообщение = ""; Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Новый УникальныйИдентификатор(ИдентификаторЗадания)); Если Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда МассивСообщений = Задание.ПолучитьСообщенияПользователю(Истина); Если МассивСообщений.Количество() > 0 Тогда ПоследнееСообщение = МассивСообщений[МассивСообщений.ВГраница()].Текст; КонецЕсли; КонецЕсли; Возврат ПоследнееСообщение; КонецФункции |
|||
8
pessok
17.02.16
✎
16:34
|
+(7)
в СписокФорм - переменная клиента, массив, туда пишем созданные на каждое задание формы длительной операции |
|||
9
pessok
17.02.16
✎
16:56
|
(5) технически в рс можно же писать гуид задания. но сам рс, как по мне, не рационален для такой задачи.
Хотя со Станиславом спорить не буду :) |
|||
10
Ma3eIIa
17.02.16
✎
17:01
|
(5) так можно же из родительского процесс вызвать фон. и вернуть значение обратно в родительский процесс.
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=562099&print=1 http://catalog.mista.ru/public/439574/ |
|||
11
Волшебник
модератор
17.02.16
✎
17:02
|
(9) да по мне хоть константу...
|
|||
12
pessok
17.02.16
✎
17:03
|
(11) а чем мой вариант из 6-8 не подходит? Никаких сущностей лишних, собсна как во второй ссылке из (10)
|
|||
13
Жан Пердежон
17.02.16
✎
17:04
|
(12) твой вариант - это кусок из БСП
|
|||
14
pessok
17.02.16
✎
17:06
|
(13) я как бы и не спорю
|
|||
15
pessok
17.02.16
✎
17:07
|
(14) просто как показывает практика - решения из типовой не всегда оптимальны, вот и интересуюсь
|
|||
16
Волшебник
модератор
17.02.16
✎
17:09
|
(12) Хорошее решение
|
|||
17
Жан Пердежон
17.02.16
✎
17:12
|
Собственно функции
СообщитьПрогресс ПрочитатьПрогресс из БСП используют СообщитьПользователю и ПолучитьСообщенияПользователю которые появились еще в 8.2 Где именно на совместимость ругань? |
|||
18
Ахмадинежад
17.02.16
✎
17:36
|
Коллеги, всем спасибо ! Буду пробовать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |