Имя: Пароль:
1C
1С v8
Прогресс бар
0 vladimirpetrov11
 
08.02.13
10:56
Скиньте пожалуйста пример кода для работы с прогресс баром в 1с 8.2 Функция: Состояние(<ТекстСообщения>, <Прогресс>, <Пояснение>, <Картинка>)
Пытаюсь вызвать с сервера процедуру на клиенте в которой размещена функция Состояние. у меня ругается: {Форма.Форма.Форма(33,3)}: Процедура или функция с указанным именем не определена (ПоказатьПрогресс)
       <<?>>ПоказатьПрогресс(К); (Проверка: Сервер)




&НаКлиенте
Процедура        ПоказатьПрогресс(Прогресс)
       Состояние("Идет перезапись документов. Осталось:"+Прогресс+" документов.");
КонецПроцедуры
   
&НаСервере
Процедура ВыполнитьНаСервере()
.....
   ВДЗ = Результат.Выбрать();
   К=ВДЗ.Количество();
   Пока ВДЗ.Следующий() цикл
       К=К-1;
       ПоказатьПрогресс(К);
...
1 vladimirpetrov11
 
08.02.13
10:57
Управляемое приложение
2 ZanderZ
 
08.02.13
10:57
сервер по моему не видит клиентские..
3 Wobland
 
08.02.13
10:57
плюшка от 8.1

ПроцессорКомпоновки = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорКомпоновки.ОтображатьПроцентВывода = Истина ;
ЭлементКомпоновки = Новый ЭлементРезультатаКомпоновкиДанных;

ПроцессорКомпоновки.НачатьВывод();
//Считаем проценты по своему алгоритму, для примера:
Для Сч = 1 По 100 Цикл
  ЭлементКомпоновки.ПроцентВывода = Сч;
  ПроцессорКомпоновки.ВывестиЭлемент(ЭлементКомпоновки);
КонецЦикла;
ПроцессорКомпоновки.ЗакончитьВывод();
4 vladimirpetrov11
 
08.02.13
10:57
(2) Как быть?
5 Defender aka LINN
 
08.02.13
11:01
(3) Управляемое приложение. Выкинь свой каменный топор :)
(4) Думать.
6 AaNnDdRrEeYy
 
08.02.13
11:14
там порциями на сервер надо данные передавать с клиента и на клиенте двигать прогресс бар.
7 Полотенчик
 
08.02.13
12:08
Эффективная индикация в 8.2
http://infostart.ru/public/71407/

ps сам не пробовал
8 vladimirpetrov11
 
08.02.13
12:13
(3) Вообще никакого эффекта, но и не ругается
9 vladimirpetrov11
 
08.02.13
12:17
(7) У меня лимит закончился на скачивание((( Сможете сами скачать, если не затруднит
10 Wobland
 
08.02.13
12:21
(8) она в обычной форме в строке состояния рисует прогресс-бар. вспомнилось на тему почему-то ;)
11 Wobland
 
08.02.13
12:22
(9) там ж код выкладен
12 Wobland
 
08.02.13
12:24
СчетчикВремениВМс():
обMSScriptControl.eval("new Date().getTime()");

обMSScriptControl = Новый COMОбъект("MSScriptControl.ScriptControl");
обMSScriptControl.language = "javascript";
13 vladimirpetrov11
 
08.02.13
12:24
(11) Да, да, я смотрю. Сначала написал, потом увидел...
14 vladimirpetrov11
 
08.02.13
12:47
(7) В моем случае не получится видимо применить. У меня ж запрос выполнятся каждый раз будет. Выгружать в таблицу и пр.это слишком уж замудренно. Обработка расчитана на один запуск, больше не понадобится. Думал в 8-ке с выводом состояния так же просто как в 7-ке...Жаль.
15 Идентификатор
 
08.02.13
12:53
Для Каждого НайденныйФайл ИЗ НайденныеФайлы Цикл
       

Состояние("Идет копирование файла: "+НайденныйФайл.ПолноеИмя,Шаг,"Размер: "+Строка(Формат(НайденныйФайл.Размер()/1024/1024,"ЧЦ=15; ЧДЦ=2;")) + " Мб.");
           КопироватьФайл(НайденныйФайл.ПолноеИмя,КаталогПриемник+сред(НайденныйФайл.ПолноеИмя,ДлинаИсточник+1));
Шаг = Шаг+1;
                       
КонецЦикла;
16 Идентификатор
 
08.02.13
12:53
&НаКлиенте
17 vladimirpetrov11
 
08.02.13
12:59
(15)Клиент из сервера не вызывается, пишет что процедура или функ. не определена

Даже элементарно метод Вопрос для возможности прерывания процесса нельзя вызвать, так как он тоже только на клиенте.

Интересно а на платформе 8.3 как
18 Идентификатор
 
08.02.13
12:59
на 8.3 немного отличий
19 Идентификатор
 
08.02.13
13:02
&НаКлиенте
Процедура         ПоказатьПрогресс(Прогресс)
       Состояние("Идет перезапись документов. Осталось:"+Прогресс+" документов.");
КонецПроцедуры
   
&НаКлиенте
Процедура ВыполнитьНаСервере()
.....
   ВДЗ = Результат.Выбрать();
   К=ВДЗ.Количество();
   Пока ВДЗ.Следующий() цикл
       К=К-1;
       ПоказатьПрогресс(К);
...

?
20 Идентификатор
 
08.02.13
13:04
макс = чето там твое количество

К = 100/?(Макс=0,1,Макс);

....


к = к+1;
21 Идентификатор
 
08.02.13
13:05
К = 100/?(К=0,1,К);

....


к = к+1;
22 Идентификатор
 
08.02.13
13:06
тьфу хДД в (20) пральна)
23 Идентификатор
 
08.02.13
13:08
ну и в итоге запрос делай на сервере, передавай результат на клиент, а там циклюй результаты и выводи шкалу состояния :) она красивая ))
24 mikeA
 
08.02.13
13:09
(17) сколько ж я этих вопросов вычистил из модулей объектов после вот таких умников, прежде чем обмен на сервере запустился
25 Идентификатор
 
08.02.13
13:10
(24) по фотографии заметно :)
26 vladimirpetrov11
 
08.02.13
13:14
(20) Да это то я знаю, в 7-ке делал и обратный отсчет в % и т.д. Проблема в том что у меня не возможно вызвать клиент из сервера. Так что не видать мне прогресс-бара красивого.
(24) вооот!
27 Идентификатор
 
08.02.13
13:17
(26) дык запросо делай на сервере, а результаты обрабатывайвай на клиенте
28 mikeA
 
08.02.13
13:24
(26) это не баг, это фича. подумай над тем, где может находиться клиент и где сервер, как они связаны и сколько может стоить переход между ними.
29 Идентификатор
 
08.02.13
13:39
(26) в типовых то как то сделали же шкалу состояния :) посмотри там и по аналогу сделай
AdBlock убивает бесплатный контент. 1Сергей