Содержание:
2. Реализация прогресс-бара в 1С
1. Индикатор процесса
В данной статье будет описано, что такое прогресс-бар, как и где он используется, а также дана полная инструкция того, как сделать прогресс-бар в формах системы 1С.
Прогресс-бар, который также называют индикатором процесса либо индикатором выполнения – это специальный элемент, который отвечает за графический интерфейс у пользователя, а именно выглядит как некоторая прямоугольная зона с частично заполненной областью иной фактуры или цветовой гаммы, которая отвечает за процент прогресса, например, отображает то, насколько файл загружен. Согласно настройкам по умолчанию, прогресс-бар имеет заполнение с левой части в правую.
Примерно следующим образом выглядит данный элемент:
Пример индикатора выполнения
Стоит отметить, что прогресс-бар может быть использован лишь тогда, когда известно сколько будет длится процесс, а также приблизительное время до его окончания.
2. Реализация прогресс-бара в 1С
Рассмотрим выполнение задачи, когда в формах системы 1С, которые являются управляемыми, нужно создать прогресс-бар.
Суть задачи состоит в том, что есть проблема: когда происходит вызов серверной процедуры, то интерфейс у пользователя будет заблокирован до конца исполнения данной серверной процедуры. Так что менять форму, а также выводить строку со статусом не получается.
В данном случае уместным будет использовать методы из асинхронного программирования, это подразумевает, что запуск долгих процедур будет задействован для фонового режима, но рабочий экран у юзера заблокирован не будет.
Для этого необходимо запрашивать состояние задания, которое выполняется в фоновом режиме, ответом будет «активно», «завершено» и другое, это действие выполняется при помощи процедуры.
Рассмотрим пошаговую практическую инструкцию:
1. Для начала необходимо поместить долгую процедуру в модуле сервера, а не глобальном;
2. Далее в данной процедуре для любого этапа отправляем сообщения для пользователя с текстом «Статус» или «Процент выполнения», ниже демонстрируется текст программы для данного действия:
Сообщение для пользователя в прогресс-баре в 1С
3. Следующий шаг – это запуск фонового задания и сохранение идентификатора задания, как показано далее:
Запуск фонового задания
4. Дальше программисту предстоит произвести подключение процедуры-обработчика с конкретным интервалом по ожиданию, как показано на скриншоте с примером ниже:
Подключение процедуры-обработчика для прогресс-бара в 1С
5. Внутри данной процедуры-обработчика нужно произвести опрос по состоянию нашей фоновой задачи:
Опрос по состоянию фоновой задачи для создания прогресс-бара в 1С
6. Ответом будут сообщения, которые отправлялись из долгой процедуры, нужно произвести их обработку, как демонстрируется далее:
Ответ из долгой процедуры
Получается, что состояние того, насколько выполнена процедура, будет отправлено при помощи сообщений пользователю, в которых находятся по сериям данные xml, их мы и видим в виде прогресс-бара.
Также стоит отметить, что все результирующие должны передаваться при помощи временного хранилища, адрес которого можно получить из идентификатора формы.
Прогресс-бар в 1С будет выглядеть следующим образом:
Внешний вид прогресс-бара в 1С
В данной статье было описано, что такое прогресс-бар и для чего он используется, а также как реализовать прогресс-бар в 1С.
Специалист компании «Кодерлайн»
Айдар Фархутдинов