Прогресс бар УФ #723439


#0 by Faust1976
Добрый день Подскажите как сделать прогресс бар . Платформа 8.3 . Точнее сказать как из процедуры на сервере изменять вид прогресс бара. Где это вообще описано. В моем случае обработка данных идет примерно 5 минут. Пользователи не выдерживают и снимают процесс. Сильно не пинайте ... просто не могу найти где прочитать
#1 by Dmitry1c
общий модуль ДлительныеОперации, БСП вроде где-то там
#2 by Faust1976
Что такое БСП ?
#3 by Fragster
#4 by Faust1976
Я делаю внешнюю обработку.
#5 by bazvan
и что?
#6 by oslokot
[В моем случае обработка данных идет примерно 5 минут. Пользователи не выдерживают и снимают процесс.] Сообщить("Обработка данных идет примерно 5 минут. Наберитесь терпения, не снимайте процесс.")
#7 by EugeniaK
С сервера изменить програсс бар никак. Упрощенно говоря, алгоритм следующий: 1. Программа с клиента идет на сервер, запускает процесс. 2. Возвращается на клиент, сообщает пользователю "Пользователь, Я запустила процесс!" 3. Прыгает на сервер, смотрит, завершен ли процесс. 4. Возвращается на клиент и говорит "Пользователь, я проверила, выполнено Х% от всего процесса!" 5. Если процесс не завершен возвращается на шаг 3. 6. Сообщает "Пользователь, процесс завершен!" В Вашем случае достаточно просто написать "Процесс длительный, не останавливайте!"
#8 by Asmody
Вот представь себе: запустил ты на сервере какой-то важный тяжелый длительный процесс. Сервер трудится, считает всеми кристаллами процессора, и тут вдруг БАЦ(!): "Йомана! Мне ж на том клиенте у Васи надо палку на один пиксель пририсовать! Еперна, ну-ка запросы-проводки подвиньтесь, потом досчитаемся." А в это время SQL-сервер, которого тоже запросами нагрузили, 100500 данных подготовил, собрал в пакетики, байтик к байтику, кричит серверу (1С): "Чувак, слышь, ты надысь данных просил, принимай пакет". А тому-то некогда, он полоску у клиента рисует. SQL-сервер скажет: "Ну раз такая херня, раз пакет тебе не нужен, я его выброшу. Потом запросишь еще раз", и привет. Короче, тухлая история.
#9 by Asmody
Есть, правда, правильный вариант: запустить длительный процесс в фоновом задании, а клиентом периодически проведывать: "ну что, готово?", и двигать палочку.
#10 by Faust1976
Спасибо за ответ. Логику почти понял. А как запускается процесс на сервере отдельно от клиента (асинхронно). Где можно подсмотреть пример ..
#11 by Reaper_1c
в подсистеме "длительные операции" из состава БСП.
#12 by SiAl-chel
Как программист ты прав, но во многих книгах по юзабилити интерфейсов пишут, что нельзя пользователя оставлять в непонятках более чем на 5 сек, он начинает нервничать. Недаром появились всякие там статус-строки и прогресс-бары.
#13 by Sasha_1CK
Прогресс бар выводиться командой Состояние(текст, процент выполнения) Процент выполнения - от 1 до 100 Увы но печаль в том что Состояние доступно только на клиенте - и если обработка выполняется на сервере - то увы и ах. Но в некторых случаях - вполне можно юзать. А механизм Длительные операций нужен для того, что бы перехватывать отмену пользователем операции и давать ему возможность выполнять в процессе длительной операции другие операции.
#14 by Escander
ну некоторые процессы вполне себе квантуются, но конечно не все... чем гифка с песочными часиками или типа того юзеров не устраивает?
#15 by Sasha_1CK
тем что непонятно сколько ждать - 5 минут или 5 часов
#16 by Escander
ну вообще-то если это нереально долгий процесс и выполняется он первый раз - программист наверное должен предупредить... если юзер в курсе но тяма нет - заблокировать ему запуск диспетчере задач.
#17 by Asmody
Сервер 1С - это вам не nodejs какой-нибудь. Он отправил тяжелый запрос СУБД, и ждет, пока тот ответ вернет. Кто и как в этот момент палочки рисовать будет? А тредов в 1С нету и не предвидится.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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