Прогресс бар на управляемых формах

Опубликовал Алексей Смирнов (sm2701) в раздел Программирование - Инструментарий

Реализация прогресс бара в 1С 8.3 в управляемых формах.

Задача: Сделать прогресс бар (статусную строку).
Проблема: При вызове процедуры, которая выполняется «НаСервере» пользовательский интерфейс блокируется до окончания выполнения этой процедуры. Поэтому изменить форму, выводить статусную строку и сообщения пользователю не получиться.
Решение: Использовать подход Асинхронного программирования – запускать длительную операцию в Фоновом режиме. При этом пользовательский интерфейс не блокируется. Мы можем опрашивать состояние фонового задания (Активно, Завершено и т.д.), получать сообщения из процедуры.

Алгоритм:
1. Размещаем «длительную» процедуру в серверном не глобальном общем модуле.
2. В этой процедуре, на каком-либо этапе посылаем СообщениеПользователю Статус, Процент выполнения и т.п.

Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ПроцентВыполнения;
Сообщение.Сообщить();

3. Запускаем фоновое задание и сохраняем Идентификатор этого фонового задания

ФоновоеЗадание = ФоновыеЗадания.Выполнить("АиснхронныеОбработчики.НашаДлительнаяОперация"); 
Идентификатор = ФоновоеЗадание.УникальныйИдентификатор;

4. Подключаем процедуру-обработчик ожидания с нужным интервалом

ПодключитьОбработчикОжидания("Подключаемый_ПроверитьВыполнениеЗадания", 2);

5. В процедуре-обработчике опрашиваем состояние фонового задания

Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор); 
Задание.Состояние

6. Получаем и обрабатываем сообщения, которые были отправлены из длительной процедуры

Задание.ПолучитьСообщенияПользователю(Истина);

Т.е. состояние выполнения отправляется через СообщениеПользователю, которое мы потом и получаем.

Собственно так реализован механизм работы в БСП. Там через СообщениеПользователю передаются сериализованные XML данные.
Промежуточные и конечные результаты можно передавать через ВременноеХранилище. Но адрес ВременногоХранилища должен быть получен через Идентификатор формы.

Скачать файлы

Наименование Файл Версия Размер
Прогресс бар
.cf 9,33Kb
06.01.17
7
.cf 9,33Kb 7 Скачать

См. также

В этой теме еще нет сообщений.