|
Как сделать прогресс-бар на УФ 8.3? | ☑ | ||
---|---|---|---|---|
0
Dmitry1c
27.05.15
✎
10:20
|
Как сделать прогресс-бар на УФ 8.3?
Выполняется серверная процедура в общем модуле. Можно ли это делать при помощи фоновых заданий, или фоновые задания не дают нам информации о % выполнения? Тыкните ссылочкой пожалуйста |
|||
1
vde69
27.05.15
✎
10:22
|
ПередаваемоеЗначение = ДлительныеОперации.ПрочитатьПрогресс(Поток.ИдентификаторЗадания);
Если ТипЗнч(ПередаваемоеЗначение) = Тип("Структура") Тогда Поток.Обработано = ПередаваемоеЗначение.Процент; Поток.ТекущийАдрес = ПередаваемоеЗначение.Текст; КонецЕсли; |
|||
2
Dmitry1c
27.05.15
✎
10:22
|
+вопрос, а будет ли такой прогресс-бар работать в файловом режиме?
|
|||
3
Dmitry1c
27.05.15
✎
10:23
|
(1) а можно где-то глянуть пример реализации?
|
|||
4
vde69
27.05.15
✎
10:24
|
правда не УФ а обычные...
ПодключитьОбработчикОжидания("ОпросФоновыхЗаданий", 1, ложь); Процедура ОпросФоновыхЗаданий() РаботаЗакончена = Истина; Для Каждого Поток из Потоки Цикл ПередаваемоеЗначение = ДлительныеОперации.ПрочитатьПрогресс(Поток.ИдентификаторЗадания); Если ТипЗнч(ПередаваемоеЗначение) = Тип("Структура") Тогда Поток.Обработано = ПередаваемоеЗначение.Процент; Поток.ТекущийАдрес = ПередаваемоеЗначение.Текст; КонецЕсли; мСтатус = ДлительныеОперации.ЗаданиеВыполнено(Поток.ИдентификаторЗадания); Если мСтатус = Ложь Тогда РаботаЗакончена = Ложь; ИначеЕсли мСтатус = Неопределено Тогда Сообщить(ОписаниеОшибки()); ОтменитьФоновыеЗадания(); ОтключитьОбработчикОжидания("ОпросФоновыхЗаданий"); ЭлементыФормы.Потоки.ОбновитьСтроки(); Сообщить("Ошибка"); Возврат; ИначеЕсли мСтатус = Истина Тогда // все нормально идем дальше КонецЕсли; КонецЦикла; ЭлементыФормы.Индикатор.Значение = Потоки.Итог("Обработано"); Если РаботаЗакончена Тогда Для Каждого Поток из Потоки Цикл РезультатРаботыПотока = ПолучитьИзВременногоХранилища(Поток.АдресХранилища); Для Каждого эл из РезультатРаботыПотока.НайденыеIP Цикл НайденыеIP.Добавить(эл,,истина); КонецЦикла; КонецЦикла; ОтключитьОбработчикОжидания("ОпросФоновыхЗаданий"); ОтменитьФоновыеЗадания(); ЭлементыФормы.Старт.Доступность = Истина; ЭлементыФормы.Стоп.Доступность = Ложь; КонецЕсли; ЭлементыФормы.Потоки.ОбновитьСтроки(); ЭлементыФормы.НайденыеIP.ОбновитьСтроки(); КонецПроцедуры |
|||
5
Heckfy
27.05.15
✎
10:25
|
||||
6
Dmitry1c
27.05.15
✎
10:26
|
(4) спасибо
|
|||
7
fisher
27.05.15
✎
10:28
|
Если типовая или в самописке есть БСП от 2.2, то вот:
http://catalog.mista.ru/public/274721/ |
|||
8
Dmitry1c
27.05.15
✎
10:31
|
А в файловом режиме возможна реализация таких фоновых заданий?
|
|||
9
fisher
27.05.15
✎
10:33
|
(8) Да. В файловом режиме первый из пользовательских сеансов автоматом назначается менеджером фоновых заданий (можно переназначить ключом командной строки). Но в отличие от клиент-серверной, фоновые задания могут выполняться только последовательно. Т.е. в один момент времени может работать только одно фоновое задание.
|
|||
10
fisher
27.05.15
✎
10:35
|
Короче, одновременно с двух компов что-то длительное запустить по такой технологии будет проблемой, как я понимаю.
|
|||
11
vde69
27.05.15
✎
10:36
|
||||
12
Господин ПЖ
27.05.15
✎
10:38
|
>Как сделать прогресс-бар на УФ 8.3?
формально "градусник" есть Состояние() |
|||
13
Dmitry1c
27.05.15
✎
10:38
|
(12) нет, мне хотелось бы форму, которая появляется на этапе обновления ИБ на новую версию
|
|||
14
fisher
27.05.15
✎
10:42
|
(10) + Хотя нет, не будет проблемой. Задания стопудово выполняются на тех компах, где инициированы. Т.е. два инициированных с разных компов будут выполняться параллельно без проблем (т.к. на разных машинах). Не получится параллельно два с одного компа запустить.
|
|||
15
fisher
27.05.15
✎
10:43
|
(13) А чем тебя родная не устраивает из БСП?
|
|||
16
Dmitry1c
27.05.15
✎
11:10
|
(15) устраивает, вот курю сижу
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |