// Пример использования:
Запрос=Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура");
Выборка=Запрос.Выполнить().Выбрать();
Всего=Выборка.Количество();
// Инициализация //
ФормаПроцесса=ПолучитьФорму("ФормаПроцесса");
ФормаПроцесса.Заголовок="Обработка данных...";
ФормаПроцесса.ЭлементыФормы.ИндикаторПроцесса.МаксимальноеЗначение=Всего;
ФормаПроцесса.Открыть();
н=0;
///////////////////
Пока Выборка.Следующий() Цикл
// Установка текущих значений //
н=н+1;
ОбработкаПрерыванияПользователя();
ФормаПроцесса.ЭлементыФормы.ТекущийЭлемент.Заголовок=Выборка.Ссылка;
ФормаПроцесса.ЭлементыФормы.ИндикаторПроцесса.Значение=н;
////////////////////////////////
// Далее непосредственно обработка данных...
КонецЦикла;
ФормаПроцесса.Закрыть(); // Закрываем форму процесса
// (!) Совет: Если записей в выборке достаточно много и обработка одной записи
// не занимает продолжительного времени, то не стоит обновлять форму процесса
// на каждой итерации, так как это дает очень ощутимое замедление обработки в целом.
// Пример обновления состояния для каждой 100-й записи:
Пока Выборка.Следующий() Цикл
н=н+1;
ОбработкаПрерыванияПользователя();
Если н=1 ИЛИ н/100=Цел(н/100) ИЛИ н=Всего Тогда
ФормаПроцесса.ЭлементыФормы.ТекущийЭлемент.Заголовок=Выборка.Ссылка;
ФормаПроцесса.ЭлементыФормы.ИндикаторПроцесса.Значение=н;
КонецЕсли;
// ...
КонецЦикла;
Вступайте в нашу телеграмм-группу Инфостарт