Имя: Пароль:
1C
1С v8
Прогресс бар УФ
,
0 Faust1976
 
19.10.14
21:43
Добрый день
Подскажите как сделать прогресс бар . Платформа 8.3 .
Точнее сказать как из процедуры на сервере изменять вид прогресс бара.
Где это вообще описано.
В моем случае обработка данных идет примерно 5 минут. Пользователи не выдерживают и снимают процесс. Сильно не пинайте ... просто не могу найти где прочитать
1 Dmitry1c
 
19.10.14
21:48
общий модуль ДлительныеОперации, БСП

вроде где-то там
2 Faust1976
 
19.10.14
21:51
Что такое БСП ?
3 Fragster
 
гуру
19.10.14
21:52
4 Faust1976
 
19.10.14
21:52
Я делаю внешнюю обработку.
5 bazvan
 
19.10.14
21:55
(4) и что?
6 oslokot
 
19.10.14
22:08
(0)[В моем случае обработка данных идет примерно 5 минут. Пользователи не выдерживают и снимают процесс.]

Сообщить("Обработка данных идет примерно 5 минут. Наберитесь терпения, не снимайте процесс.")
7 EugeniaK
 
19.10.14
22:18
(0) С сервера изменить програсс бар никак.

Упрощенно говоря, алгоритм следующий:
1. Программа с клиента идет на сервер, запускает процесс.
2. Возвращается на клиент, сообщает пользователю "Пользователь, Я запустила процесс!"
3. Прыгает на сервер, смотрит, завершен ли процесс.
4. Возвращается на клиент и говорит "Пользователь, я проверила, выполнено Х% от всего процесса!"
5. Если процесс не завершен возвращается на шаг 3.
6. Сообщает "Пользователь, процесс завершен!"

В Вашем случае достаточно просто написать "Процесс длительный, не останавливайте!"
8 Asmody
 
19.10.14
22:32
Вот представь себе: запустил ты на сервере какой-то важный тяжелый длительный процесс. Сервер трудится, считает всеми кристаллами процессора, и тут вдруг БАЦ(!): "Йомана! Мне ж на том клиенте у Васи надо палку на один пиксель пририсовать! Еперна, ну-ка запросы-проводки подвиньтесь, потом досчитаемся." А в это время SQL-сервер, которого тоже запросами нагрузили, 100500 данных подготовил, собрал в пакетики, байтик к байтику, кричит серверу (1С): "Чувак, слышь, ты надысь данных просил, принимай пакет". А тому-то некогда, он полоску у клиента рисует. SQL-сервер скажет: "Ну раз такая херня, раз пакет тебе не нужен, я его выброшу. Потом запросишь еще раз", и привет.
Короче, тухлая история.
9 Asmody
 
19.10.14
22:34
Есть, правда, правильный вариант: запустить длительный процесс в фоновом задании, а клиентом периодически проведывать: "ну что, готово?", и двигать палочку.
10 Faust1976
 
19.10.14
22:41
Спасибо за ответ. Логику почти понял.
А как запускается процесс на сервере отдельно от клиента (асинхронно).
Где можно подсмотреть пример ..
11 Reaper_1c
 
19.10.14
22:50
(10) в подсистеме "длительные операции" из состава БСП.
12 SiAl-chel
 
20.10.14
03:52
(8) Как программист ты прав, но во многих книгах по юзабилити интерфейсов пишут, что нельзя пользователя оставлять в непонятках более чем на 5 сек, он начинает нервничать. Недаром появились всякие там статус-строки и прогресс-бары.
13 Sasha_1CK
 
20.10.14
04:11
Прогресс бар выводиться командой Состояние(текст, процент выполнения)
Процент выполнения - от 1 до 100

Увы но печаль в том что Состояние доступно только на клиенте - и если обработка выполняется на сервере - то увы и ах.

Но в некторых случаях - вполне можно юзать.

А механизм Длительные операций нужен для того, что бы перехватывать отмену пользователем операции и давать ему возможность выполнять в процессе длительной операции другие операции.
14 Escander
 
20.10.14
04:17
(8) ну некоторые процессы вполне себе квантуются, но конечно не все...

(0) чем гифка с песочными часиками или типа того юзеров не устраивает?
15 Sasha_1CK
 
20.10.14
04:54
(14) тем что непонятно сколько ждать - 5 минут или 5 часов
16 Escander
 
20.10.14
05:38
(15) ну вообще-то если это нереально долгий процесс и выполняется он первый раз - программист наверное должен предупредить... если юзер в курсе но тяма нет - заблокировать ему запуск диспетчере задач.
17 Asmody
 
20.10.14
08:09
Сервер 1С - это вам не nodejs какой-нибудь. Он отправил тяжелый запрос СУБД, и ждет, пока тот ответ вернет. Кто и как в этот момент палочки рисовать будет? А тредов в 1С нету и не предвидится.