Часто бывает, что возникает необходимость загрузить множество данных из разнообразных источников в определенную форму или рабочее место. В процессе загрузки пользователь в неведении — информация готовится или нет. Прием позволяет загружать данные из нескольких источников асинхронно не блокируя форму\интерфейс, а также отображать ошибки и состояние прогресса. По мере готовности данных, они будут отображены на форме.
Минимальные требования
- версия платформы «1С:Предприятие 8» — не ниже 8.3.3.641;
- версия БСП в конфигурации — не ниже 2.1.3.50;
- разработка предназначена для управляемых форм;
- обработка должна быть подключена к базе с помощью механизма БСП.
Схема работы методики
- процедура «ПриСозданииНаСервере» сохраняет ссылку на дополнительную обработку, определяет вариант работы информационной базы (файловый, клиент-серверный) и инициализирует количество асинхронных заданий;
- при нажатии кнопки «Старт» происходит запуск асинхронных заданий и подключается обработчик ожидания, который следит за работой заданий;
- при каждом срабатывании обработчика ожидания, выполняется обновление индикаторов прогресса;
- при завершении асинхронного задания, в форму приходит оповещение с результатом работы, который, в свою очередь, загружается в форму.
Технические нюансы
- результаты работы асинхронного задания передаются с помощью адреса временного хранилища формы;
- данные для индикатора прогресса в файловом варианте передаются с помощью адреса временного хранилища формы;
- данные для индикатора прогресса в клиент-серверном варианте передаются с помощью «СообщениеПользователю» потому, что помещение данных из фонового задания в родительский сеанс происходит после завершения работы задания;
- результаты заданий загружаются последовательно в файловом варианте и в произвольном порядке в клиент-серверном варианте;
- в процессе работы не блокируется ни интерфейс, ни сама форма.
Обработку можно скачать по ссылке: Асинхронная загрузка данных на форму