Имя: Пароль:
1C
 
Статус-бар по фоновому заданию
,
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
Коллеги, всем спасибо ! Буду пробовать