v7: еще раз про прогрессор, как задать 100% #616671


#0 by forest-rg
конфиг БП дописанная переписанная, там есть отчет по заявкам(данные берет из справочника заявок)в нем задается период, и тд и запускается заявок уже порядка 20 000, и делается порядка 5-8 часов, потом еще сохраняется в Excel часа 4-6. Хотелось бы прикрутить какой нибудь прогресбар чтобы понять долго еще осталось. Прикрутить не проблема это сделал не понимаю как сделать чтобы бралось правильное значение затраченного времени, те 100% это все заявки за заданный период, их может быть как 50 так и все 20 000, как правильно это прописать? пробовал при запуске вставить счетчик, но это тоже не то, точнее то только счетчик тупо считает каждую заявку по мере формирования отчета а должен посчитать кол-во заявок за заданный период и взять это значение за 100% и по мере прохода по заявкам отмечать какой процент от общего количества он уже сделал.
#1 by IamAlexy
заявки циклом перебераешь? количество получи из коллекции - вот тебе максимальное значение
#2 by smaharbA
в школе не проходили ?
#3 by smaharbA
ну или наоборот
#4 by oleg_prg
Формула такая: Например:
#5 by oleg_prg
Можешь в цикле еще добавить определение текущего времени, делай замер прошедшего времени за 1% и умножай это на оставшийся процент, таким образом можешь выводить сколько осталось времени до завершения операции
#6 by Злопчинский
это утебя какой-то мозг ленивый. все уже научились в эксель сохранять без ожидания 6-10 часов
#7 by Злопчинский
dct кгругом уроды. вычисляем колво заявок, приходящееся на один шаг прогрессора. считаем количество отработанных заявок. если = шагпргрессора - обновить прогрессор, счетчикзаявок обнулить.
#8 by oleg_prg
А вообще я иногда просто паражаюсь лени человеческой
#9 by forest-rg
а как работает количество, искал в СП но не нашел того что нужно простите за тупые вопросы, но я новичок в програмировании
#10 by oleg_prg
Тебе надо узнать количество элементов в справочнике? Какое количество интересует?
#11 by forest-rg
oleg_prg - за заданный период, про ПроцентВыполнения = НомерТекущейЗаявки / (КоличествоЗаявок/100); спасибо, не додумался Злопчинский - видел тут на форуме тему про plugin_mxl_doctor, но как говорится руки пока не дошли, я не програмист я сис админ, да и вообще разнорабочий
#12 by oleg_prg
#13 by zak555
установитьФильтр неее ?
#14 by oleg_prg
Причем здесь фильтр, надо пощитать кол-во документов. Или я чего-то незнаю... или недопонимаю?
#15 by zak555
запрос с счётчиком
#16 by oleg_prg
Согласен :) Запрос тоже можно, ток в 1С7.7. я их не люблю. брррр
#17 by forest-rg
вот счетчиком я как раз и сделал, но он считает по мере прохождения заявок, те не суммарное кол-во сразу {Отчет.ОтчетПоЗаявкам2.Форма.Модуль}: Неудачная попытка создания объекта (Документ.Заявка)
#18 by forest-rg
пордон туплю
#19 by oleg_prg
Док = СоздатьОбъект("Документ.Заявка"); Заявка это я к примеру написал, тебе надо поставить нужный документ Док = СоздатьОбъект("Документ.СюдаВпишиНужныйДокумент");
#20 by Злопчинский
возьми готовый вариант - повесь кнопку на панель...
#21 by zak555
Операции -> Журналы документов -> Полный -> считаем
#22 by Злопчинский
фильтр тупо отсеет по типовым флажкам выборку - не надо по каждому документ удергать базу на проведенность и удаленность
#23 by forest-rg
блин, да я потом уж понял, когда написал туплю но все равно не работает да и ктому же помойму то получается тоже самое что у меня уже есть, те счетчик, или я не прав?
#24 by zak555
УстановитьФильтр(1,0) не покатит ?
#25 by zak555
1. где выбратьЭлементы ? 2. что за дата ?
#26 by Злопчинский
#27 by zak555
у него справочник =)
#28 by МихаилМ
если скл то можно переписать минут за 5 будет формироваться
#29 by oleg_prg
#30 by oleg_prg
так можешь определить количество заявок
#31 by zak555
#32 by zak555
это какой над тобой так издевался ?
#33 by oleg_prg
#34 by oleg_prg
Спокойствие, только спокойствие. )))))
#35 by zak555
жесть
#36 by zak555
переходите на 8ку
#37 by oleg_prg
#38 by oleg_prg
я уже там )))
#39 by oleg_prg
7.7 Это настальжи
#40 by forest-rg
а можно про это по подробнее "Можешь в цикле еще добавить определение текущего времени, делай замер прошедшего времени за 1% и умножай это на оставшийся процент, таким образом можешь выводить сколько осталось времени до завершения операции" ведь 1 % может быть и 1 заявка и может и 101 и тд... все сделал конечный код получился такой ПроцентВ это соответственно на форму
#41 by shegy
Жесть, с начало делаем цикл по справочнику и курим бамбук, а потом еще и по запросу, автор тебе же написали используй Счетчик в запросе. Мне интересно, что за база или сервак такой, что отчет 5-6 часов делается?
#43 by oleg_prg
Я все понимаю что по документации надо пользоваться запросами, НО!!! НЕ В ЭТОМ СЛУЧАЕ! НУЖЕН ЦИКЛ И ПЕРЕБОР. Я ток что накидал обработку Вот результат выполнения Страт 16:36:32 31432   <= Кстати - это количество элементов в моем справочнике конец тест 1 16:36:33 конец тест 2 16:36:38 СМОТРИ ВИДНО ЧТО ЦИКЛОМ ОПРЕДЕЛИЛИ КОЛИЧЕСТВО ЭЛЕМЕНТОВ ЗА 1  СЕКУНДУ!!! А ЗАПРОСОМ 5 СЕКУНД!!!
#44 by Mikeware
За отчет 8 часов и сохранение 4 часа полагается 7 лет расстрела....
#45 by Попытка1С
А если dbf переписать нельзя?
#46 by oleg_prg
Да все можно, просто ТС не программист а админ, которому поручили эту задачку... Как показывает практика, там работает хреново, где мало платят, и спецов не ценят
#47 by Попытка1С
Ну как бы ничего удивительного, единственное время выполнения модно считать через _getperformancecounter  =)
#48 by forest-rg
oleg_prg попробовал у себя такое сделать, получил следующее, когда просто считается кол-во элементов то быстрей Старт 15:40:00 19359 конец тест 1 15:40:01 (1 сек) конец тест 2 15:40:10 (9 сек) но на деле оказалось так, в работающем отчете когда был запрос 26 сек на обработку 56 элементов получить элементы 28 сек на те же 56 элементов
#49 by mehfk
Переходи на 7-ку, там это не реализовано.
#50 by forest-rg
а как в счетчик вставить еще несколько условий? например выбор заказчика, они в оригинале есть но тут не хотят работать точнее работают но не так считают. нужно если значания попадает в дату, а потом в этой дате есть заявки с определенным заказчиком то их отбирать
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С