Индикатор процесса в строке состояния … ?…!

Я очень люблю програссБар – по-русски индикатор процесса … куда бы его поместить …?

При использовании «элемента формы» часто его «таскаешь» туда-сюда и в итоге ему не оказывается места и каждый раз он оказывается в разных местах формы…

В итоге я его накладываю «сверху» на какой-нибудь элемент формы … Что очень неудобно и по «форме» и по «содержанию»… 


Идея разместить индикатор в строку состояния … ))) … вот что получилось …

… ВОТ …

 

от Абадонны и Душелова — и просто и гениально и быстро и штатно — вызов и работа индикатора строки состояния:

Процедура КнопкаВыполнитьНажатие(Кнопка)
    ПР=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    Пр.ОтображатьПроцентВывода=Истина ;
    Эл=Новый ЭлементРезультатаКомпоновкиДанных;
    
    ПР.НачатьВывод();
    Для А=1 По 100 Цикл
        Эл.ПроцентВывода=А;
        //задержка, чтобы разглядеть
        Для Б=1 По 10000 Цикл КонецЦикла;
        ПР.ВывестиЭлемент(Эл);
    КонецЦикла
    ПР.ЗакончитьВывод();
КонецПроцедуры

прошу всех оценить и выразить своЁ отношение к данным товарищам в виде плюсов в любых их разработках …

… ВОТ …

58 Comments

  1. coder1cv8

    Боян! )

    Reply
  2. Шёпот теней

    (1) … текст понятен … каков КОНтекст в ПОДтексте …

    … согласен «в» или «с» : чем проще — тем бОянистее — или боЯнистее — или боянИстее — или боянистЕЕ … или …?

    … вОт …

    Reply
  3. vasilykushnir

    скрин где?! 👿

    Reply
  4. Шёпот теней

    добавил «видимость» — сколько осталось до окончания … )))

    (3) … чего там и скринить-то … бегутЬ палочки в строке состояния … но подчиняюсь товарищам … сейчас сделаю … уффф …

    Reply
  5. Шёпот теней

    (3) …. не работает ПРИНТскрин при выполнении 1С … не получится со скрином … включаем видеоФантазию …

    … вОт …

    Reply
  6. vasilykushnir

    (5) 😀

    Reply
  7. WiseSnake

    (5) Ух ты, а вот с этого места поподробней!

    А как Вы средствами 1С отключили ПРИНТскрин?

    Reply
  8. sashocq

    Думаю, это гениально!

    И как это мне в голову не пришло?

    Reply
  9. Шёпот теней

    (7) … ПРИНТскрин рАботает … но только либо ДО либо ПОСЛЕ запуска обработки … поэтому «заснять» вид индикатора в процессе работы не получатся а без него скрин, я так полагаю и не нужен … если у Вас получится я Вам буду блАгодарен …

    (8) … СОгласен … всЁ гениальное просто … к сожалению, САМ сообразил только после «ветки» на Мисте с подобным вопросом … п.с. Думается только в общении и спорах рождаются идеи …

    Reply
  10. Шёпот теней

    цифры и скобки = смайлики … начинается как в 1С — поставил галочку, НЕпоставил галочку, как поставил галочку, где поставил галочку …

    (8) … СОгласен … всЁ гениальное просто … к сожалению, САМ сообразил только после «ветки» на Мисте с подобным вопросом …

    п.с. Думается только в общении и спорах рождаются идеи …

    Reply
  11. Шёпот теней

    (10) капец … вот …

    Reply
  12. v.l.

    (0) А в чем разница в этих обработках — ИС и без ИС?

    Reply
  13. Шёпот теней

    (12) … см. (4) …

    первая версия — «бежит» индикатор — но не видно сколько осталось до окончания …

    версия ИС — и индикатор «бежит» и видно сколько осталось до конца процесса …

    … вот …

    Reply
  14. WiseSnake

    (9)

    Reply
  15. Шёпот теней

    (14) … убил … уничтожил … размазал … )))

    покзал конфетку … расскажи как сделал …

    ну НЕ УЖЕЛИ принтСкрин-ом … ??? или волшебным сочетанием клавишЬ …???

    … ВОТубилВЕДЬ …

    Reply
  16. anig99

    (16) на виртуальной машине или через терминал

    Reply
  17. Шёпот теней

    (16) … нууу… тогДА это НЕчестно … ))) …

    В операционной системе Windows нажатие клавиши Print Screen инициирует создание скриншота всего экрана, а нажатие Print Screen одновременно с клавишей Alt создаст скриншот активного окна.

    Reply
  18. WiseSnake

    (15) Локально. ПринтСкрином но у меня стоит SnagIt (без него я и не пользовался ПринтСкрином никогда :)))

    Reply
  19. WiseSnake

    (15) > покзал конфетку …

    Ну если понравилось моГешь вставить в шапку сабжа 😉

    Reply
  20. Шёпот теней

    (18) … ммм …

    (19) … ага …

    …вотСПАСИБОвставил…

    Reply
  21. Шёпот теней

    просто так:

    в общихМодулях в ОбщегоНазначения есть:

    Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = «,») Экспорт

    недавно на мисте увидел интересную идею по «разложить сторку на подстроки» со следующим механизмом:

    «… заменить пробелы разделителем строк… и далее работать как с многострочным текстом …»

    … может это для кого-то и не открытие но мне понравилась эта гениальная простота …

    … вот …

    Reply
  22. caponid

    Полезная штука)

    используется очень давно в распределенном обмене данными

    в стандартной форме выгрузки данных было замеряно, что на отрисовку рюшечек индикатора графикой используется 30% времени, с использование псевдографики в строке состояния затраты снизились на порядки.

    рекомендую)

    Reply
  23. tango

    а если так:

    разместить на экране поверх 1ски что-нибуль еще, но так, чтоб прогрессбар был виден. запускаешь обработку, переключаешься в «что-нибудь еще» и жамкаешь принтскрин…?

    Reply
  24. Шёпот теней

    (23) … мАэстро …. попробовал … ты гений … прокатило … !!! … )))

    … ВОТведьКАКбывает…

    Reply
  25. Abadonna
    …. не работает ПРИНТскрин при выполнении 1С … не получится со скрином …

    А как я тогда сделал вот тут? 😮

    http://www.infostart.ru/public/59436/

    Reply
  26. yegorovnv

    зачем такой велосипед?

    а пользоваться стандартной формой прогресс-бара из общих форм конфигурации????

    Reply
  27. Шёпот теней

    (26) … это как …?

    Reply
  28. Abadonna

    (27) Есть какая-то фича с длинющим названием… только я уж не помню, был коммент на одну из моих разработок, которую я снес

    Reply
  29. Abadonna

    +(28) Там через какой-то (не помню!) стандартный объект 8.1 можно вывести прогресс-бар в статус-панель

    Reply
  30. Abadonna

    Сань, что-то вроде

    ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент

    Reply
  31. Шёпот теней

    (30) … спасибо … будем маленько поискать … )))

    … вот …

    Reply
  32. Abadonna

    Начало, точно я уж изобразил 😉

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

    Пр.ОтображатьПроцентВывода=Истина ;

    ПР.НачатьВывод();

    Индикатор появляется, процент стоит 0. Дальше лень колупаться

    Reply
  33. Шёпот теней

    (26) , (30) … видимо ВЫ абсолютно прАвы … что-то есть :

    ОбщийМодуль

    ТиповыеОтчеты

    Процедура ВывестиТиповойОтчет(ОтчетОбъект, Результат, ДанныеРасшифровки, ВыводВФормуОтчета = Истина, ВнешниеНаборыДанных = Неопределено, ВыводитьШапкуОтчетаНаВсехСтраницах = истина)

    //Создадим и инициализируем процессор вывода результата

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

    ПроцессорВывода.УстановитьДокумент(Результат);



    //Обозначим начало вывода

    ПроцессорВывода.НачатьВывод();

    Пока Истина Цикл

    //Элемент получен — выведем его при помощи процессора вывода

    ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);

    КонецЦикла;

    //Обозначем завершение вывода

    ПроцессорВывода.ЗакончитьВывод();

    … вотВедьКакБывает …

    Reply
  34. Шёпот теней

    (32) … пока я «колупался» с (33) ты меня уже «успел» … )))

    … вот …

    Reply
  35. Abadonna

    (33) А в либе я все-таки оставил метод стьатус-индикатора 😉

    Ибо нема в 7.7 ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент

    А в 8.1 мой не «забивает» строку состояния

    Reply
  36. Шёпот теней

    //Создадим и инициализируем процессор вывода результата

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

    //ПР=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;

    ПР.НачатьВывод();

    Для раз=1 По Элемент.Значение Цикл

    ПР.ВывестиЭлемент(раз);

    КонецЦикла;

    //Обозначем завершение вывода

    ПР.ЗакончитьВывод();

    выдаЁт ошибку:

    Ошибка при вызове метода контекста (ВывестиЭлемент): Несоответствие типов (параметр номер ‘1’)

    ПР.ВывестиЭлемент(раз);

    … как нужно ? … подскажите люди добрые … ВОТ …

    Reply
  37. Шёпот теней

    думается мне — что тама требуется как объекту СКД «дать» ещё кучу входных данных:

    КомпоновщикМакетаСведенияОбОрганизациях = Новый КомпоновщикМакетаКомпоновкиДанных;

    МакетКомпоновкиСведенияОбОрганизациях = КомпоновщикМакетаСведенияОбОрганизациях.Выполнить(СхемаКомпоновкиДанныхСведенияОбОрганизациях, НастройкиСведенияОбОрганизациях);

    ПроцессорКомпоновкиСведенияОбОрганизациях = Новый ПроцессорКомпоновкиДанных;

    ПроцессорКомпоновкиСведенияОбОрганизациях.Инициализировать(МакетКомпоновкиСведенияОбОрганизациях);

    … наверное не стоит овчинка выделки … поэтому и придумали «ИНДИКАТОР» …

    … кто знает — подскажите … кто умеет — покажите … ВОТ …

    Reply
  38. Abadonna

    (36) Хитрый 😀 Я на том же тормознулся, а дальше стало лень эксперименты проводить. Но будем посмотреть 😉

    Reply
  39. Abadonna
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    ПР=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    Пр.ОтображатьПроцентВывода=Истина ;
    ПР.НачатьВывод();
    Для А=1 По 100 Цикл
    Эл=Новый ЭлементРезультатаКомпоновкиДанных;
    Эл.ПроцентВывода=А;
    //задержка, чтобы разглядеть
    Для Б=1 По 10000 Цикл КонецЦикла;
    ПР.ВывестиЭлемент(Эл);
    КонецЦикла
    КонецПроцедуры
    

    Показать

    Reply
  40. Душелов

    (39) Я бы так сделал

    Процедура КнопкаВыполнитьНажатие(Кнопка)
    ПР=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    Пр.ОтображатьПроцентВывода=Истина ;
    Эл=Новый ЭлементРезультатаКомпоновкиДанных;
    
    ПР.НачатьВывод();
    Для А=1 По 100 Цикл
    Эл.ПроцентВывода=А;
    //задержка, чтобы разглядеть
    Для Б=1 По 10000 Цикл КонецЦикла;
    ПР.ВывестиЭлемент(Эл);
    КонецЦикла
    ПР.ЗакончитьВывод();
    КонецПроцедуры
    

    Показать

    Reply
  41. Abadonna

    (39,40) Поломали мы Саньке кайф 😀

    Reply
  42. Шёпот теней

    (39), (40) … УРА-аааа …

    (41) … ужжжж и поломали … наОООбОООрОООт … навели …

    кто же не знает величия О-Великих — Abadonna и Душелова …

    … безгранично ВАМ благодарен … выражаю искреннее восхищение …

    !!!

    … ВОТ … знай великих … орешек знаний …

    Reply
  43. Шёпот теней

    (39), (40) … для пущей справедливости добавил ваши посты в (0) …

    с уважением Шёпот теней (в миру Александр Шишкин) … ВОТ …

    Reply
  44. Abadonna

    (43) Ты мне лучше на мой индикатор плюс поставь, там «букафф» меньше 😀

    SetStatusBarGauge()

    StatusBarGaugePosition(Процент)

    Reply
  45. Шёпот теней

    если «здесь» то я ужжж все твои комменты на+ …

    а в разработках не нашЁл …

    …вот…Великий…

    Reply
  46. Abadonna

    (45) Проморгал свеженькую Miracle 😉

    http://www.infostart.ru/public/59436/

    Reply
  47. Збянтэжаны Саўка

    пилюс за … картинку на форме и за логотип ШТ 🙂

    Reply
  48. Збянтэжаны Саўка

    (47) глюки: правка коммента не отображается сразу, а после … пока не уловил зависимости

    а из двух файлов выложенных на скачку какой скачивать — то?

    во втором файле постфикс ИС — это что значит, с ИнфоСтарта шо-ли?

    а 1-й тогда откуда, хе-хе, от ШТ?

    Да картинка класс! Можно я эту картинку позаимствую на свою обработку по импорту остатков ГСМ, вот сюда ?..

    Reply
  49. Ткачев

    Как надпись «Вывод отчета», в начале индикатора поменять на другую ?

    Reply
  50. Шёпот теней

    … если через способ Абадонны …

    .. посмотрите оператор «ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент­» если там есть замена текста то можно — иначе — то наверное никак … (((

    … если получится то и нам расскажите … ! ..

    … вот …

    Reply
  51. hooligan_slx

    Немного переделал твою обработку под себя…бухгалтерам нравится что они могут отслеживать ход выполнения процесса!! За идею ставлю +!! ))

    Reply
  52. iren_8807

    Хорошая работа!

    Reply
  53. AruslanM

    Немного изменил под себя, спасибо, взял на вооружение.

    Reply
  54. tormozit

    Признаюсь, тоже сам не догадался до такой возможности. Однако ее универсальное применение на мой взгляд неоправдано из-за дезориентирующей пользователя надписи «Вывод отчета» слева от прогресс-бара

    Reply
  55. igormiro

    Мне интересно, а кто нибудь быстродействие такого индикатора замерял.

    Мне кажется что 50 % ресурсов системы будет уходить на такой индикатор. Следующее под управляемыми формами не работает.

    Reply
  56. edzz

    крутатенька

    Reply
  57. yuraos

    Вот еще вариант вывода прогресса выполнения

    просто в строку состояния процедурой Состояние()

    с выводом процента выполнения и

    возможностью реверсии «прогресс-бара».



    Может не так красиво (не графический, текстовый «прогресс-бар»)

    — зато не тормозит точно.

    …ВОТ…

    использован в обработке «Консоль запросов 1С + ADO»

    в форме обработки выборки запроса.

    Reply
  58. lagunovartur

    А как заменить слова вывод отчета на что нибудь свое?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *