Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Прогресс, процентовка...          
Vofka Подменю пользователя
сообщение 26.05.10, 7:45
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Привет!

Давно задумывался о том, как можно сделать процент выполнения обработки, отчета в 1С.

Т.е., если, например, мы обрабатываем документы, то для того, чтобы видеть прогресс нам надо знать хотябы количество документов. Таким образом обработав следующий документ мы можем рассчитать процент выполнения. Но
1. Знает ли программа сколько ещё документов впереди (понятно, что можно предварительно просчитать, но нужно ли..?) ?
2. Документы документами, но часто идет обработка документов + элементы справочников + запросы + .... Как в таком случае?

Короче суть вопроса я думаю понятна. С удовольствием выслушаю ваши предложения и мнения по данной теме. smile.gif

Fynjy Подменю пользователя
сообщение 26.05.10, 8:25
Сообщение #2

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Вот так например:
//*******************************************
Процедура Сформировать()
    лПрогресс = "*";
    Для Сч = 1 По 100 Цикл
        Для Пауза = 1 По 100000 Цикл//Замедлю, что бы видеть ...
        КонецЦикла;
        лПрогресс = лПрогресс +"*";
        Состояние("Прогресс - " + Сч + "% " +лПрогресс);
    КонецЦикла;
КонецПроцедуры


И систему не тормозим и информацию выводим ...
ЗЫ: для 7.7 это самый правильный путь или рисовать компоненту на с++ к примеру ...


Signature

Fynjy Подменю пользователя
сообщение 26.05.10, 8:27
Сообщение #3

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Можно заюзать готовую ВК FormEx ... В ней есть объект прогресс бар ...


Signature

Vofka Подменю пользователя
сообщение 26.05.10, 8:37
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Цитата
Вот так например:
//*******************************************
Процедура Сформировать()
лПрогресс = "*";
Для Сч = 1 По 100 Цикл
Для Пауза = 1 По 100000 Цикл//Замедлю, что бы видеть ...
КонецЦикла;
лПрогресс = лПрогресс +"*";
Состояние("Прогресс - " + Сч + "% " +лПрогресс);
КонецЦикла;
КонецПроцедуры

Ну в данном случае мы знаем что у нас будет 100 итераций.

А если, например, такая конструкция:
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент() = 1 Тогда
...
КонецЦикла;

?

Цитата
Можно заюзать готовую ВК FormEx ... В ней есть объект прогресс бар ...

Посмотрю smile.gif

MATEVI Подменю пользователя
сообщение 26.05.10, 9:23
Сообщение #5

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2203
Из: Одесса
Спасибо сказали: 968 раз
Рейтинг: 796.3

Держи примеры

1. [необходимо зарегистрироваться для просмотра ссылки]
2. [необходимо зарегистрироваться для просмотра ссылки]


Цитата(Vofka @ 26.05.10, 10:37) *
А если, например, такая конструкция:
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент() = 1 Тогда
...
КонецЦикла;

?

Сделай запросом. Выгрузи в ТЗ и узнаешь
Для ии=1 по ТЗ.КоличествоСтрок()....

dmiter Подменю пользователя
сообщение 26.05.10, 13:17
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 108
Из: Киев
Спасибо сказали: 16 раз
Рейтинг: 0

Цитата(Vofka @ 26.05.10, 10:37) *
А если, например, такая конструкция:
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент() = 1 Тогда
...
КонецЦикла;


Я тогда делал приблизительно:
Например выборка документов за период: считаю приблизительно, что в одной дате порядка 100 документов (это у кого как.)
Сразу увеличиваю максимальный размер счетчика на 100*кво дней. При начале цикла (обработки документа) +1 максимальный размер прогрессБара, при окончании обработки +1 текущий счетчик прогрессБара. При переходе на следующий день +100 текущий счетчик прогрессБара.
Еще необходимо установить чтобы счетчик не бежал назад haha.gif . То есть реальный счетчик (если уже был установлен) ожидает пока текущий счетчик станет больше чем он сам.

Vitalis Подменю пользователя
сообщение 26.05.10, 18:45
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 32
Спасибо сказали: 0 раз
Рейтинг: 0

Порадовала меня эта темка smile.gif
Для вот этого варианта:
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент() = 1 Тогда
...
КонецЦикла;


Я использовал в процедуре отчета ПриОткрытии() (Отчет по перебору элементов справочника)
номер = 0;
    Спр = СоздатьОбъект("Справочник.Товары");
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
        номер = номер +1;    
    КонецЦикла;


и номер у меня получался какраз необходимым числом итераций. Конечно, так наверно неправельно... но... в спр.товары больше 2000 наименований и открывается он быстро.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.06.25, 9:49
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!