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

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

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

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


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

… ВОТ …

 

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

Процедура КнопкаВыполнитьНажатие(Кнопка)
    ПР=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    Пр.ОтображатьПроцентВывода=Истина ;
    Эл=Новый ЭлементРезультатаКомпоновкиДанных;
    
    ПР.НачатьВывод();
    Для А=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 не будет опубликован. Обязательные поля помечены *