Отображение состояния длительных процессов
Командный интерфейс
В процессе разработки конфигурации возникают ситуации, когда необходимо информировать пользователя системы о состоянии выполнения длительных процессов (например, расчет зарплаты по подразделению). Для этого предназначена панель состояния.
Панель состояния отображается вызовом метода Состояние() и недоступна для вызова на стороне сервера. В том случае, если необходимо отобразить на клиенте состояние длительного процесса, протекающего на сервере, нужно реализовать этот процесс таким образом, чтобы он мог выполняться на сервере «порциями», которые будут инициироваться со стороны клиента. Тогда одновременно со стартом очередной «порции» на сервере можно будет отображать изменение состояния выполнения процесса. Панель состояния отображается в окне, которое по умолчанию расположено в правом нижнем углу рабочей области экрана.
Если требуется отображать ход выполнения процесса с помощью индикатора (например, мы знаем общее количество рассчитываемых сотрудников и хотим показать, сколько сотрудников уже рассчитано), то при вызове метода Состояние() необходимо указывать второй параметр метода, который определяет абсолютное значение индикатора прогресса. Минимальное значение индикатора прогресса всегда равно 0, а максимальное значение ‑ 100.
ТекстСообщения = "Выполняется проведение документов (" + ПредставлениеПериода(ДатаНачала, ДатаОкончания) + ")";
Пояснение = "Проводятся документы за " + ДатаОбработки + ". Всего: "+ Счетчик;
Картинка = БиблиотекаКартинок.Провести ;
Состояние(ТекстСообщения, значениеИндикатора, Пояснение, Картинка);
Если при вызове метода второй параметр не указан, то индикатор прогресса также не будет отображаться на панели состояния. При этом текст пояснения будет располагаться непосредственно под текстом основного описания:
Состояние(«Проведение выполнено, , «Всего обработано документов: ” + КоличествоОбработанных + Символы.ПС + «Проведено документов: ” + КоличествоПроведенных, БиблиотекаКартинок.Провести);
Панель состояния автоматически исчезает с экрана по истечении небольшого времени после окончания работы фрагмента программы, вызвавшего появление панели состояния. Однако если навести на это окно курсор мыши, то окно будет существовать до тех пор, пока его принудительно не закроют или не уберут курсор мыши с площади панели состояния.
ПРИМЕЧАНИЕ. Панель состояния располагается поверх всех окон текущего приложения, кроме модальных окон. Модальное окно выводится поверх панели состояния.
В веб-клиенте панель состояния реализована в виде отдельного окна веб-браузера. Обновление этого окна имеет особенности:
- Microsoft Internet Explorer. Состояние обновляется после каждого вызова метода Состояние().
- Mozilla Firefox. Состояние обновляется при каждом серверном вызове и после окончании выполнения программного кода на встроенном языке. Таким образом, если при выполнении программного кода на встроенном языке не было вызовов серверных методов, то панель состояния изменяться не будет.
- Google Chrome и Safari. Состояние обновляется только после окончания выполнения программного кода на встроенном языке.
См. также: