Прогресс с помощью СКД на обычных формах



Методы для вывода прогресс-бара средствами платформы в поле состояния с помощью СКД



//УПРАВЛЕНИЕ ИНДИКАТОРОМ//

Функция ИнициализироватьИндикатор(ПраваяГраница) Экспорт

НастройкаИндикатора = Новый Структура;

//установка параметров для вывода прецентов

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

ПроцессорВывода.ОтображатьПроцентВывода = Истина;

ЭлементПроцессора = Новый ЭлементРезультатаКомпоновкиДанных;

Шаг = ?(ПраваяГраница = 0, 0, 100 / ПраваяГраница);

ТекПроцент = 0;

ПроцессорВывода.НачатьВывод();



НастройкаИндикатора.Вставить("ПроцессорВывода", ПроцессорВывода);

НастройкаИндикатора.Вставить("ЭлементПроцессора", ЭлементПроцессора);

НастройкаИндикатора.Вставить("Шаг", Шаг);

НастройкаИндикатора.Вставить("ТекПроцент", ТекПроцент);



Возврат НастройкаИндикатора;

КонецФункции



Процедура СдвинутьИндикатор(НастройкаИндикатора) Экспорт

Если ТипЗнч(НастройкаИндикатора) <> Тип("Структура") Тогда

Возврат;

КонецЕсли;



//получаем переменные

ТекПроцент = НастройкаИндикатора.ТекПроцент;

Шаг = НастройкаИндикатора.Шаг;

ЭлементПроцессора = НастройкаИндикатора.ЭлементПроцессора;

ПроцессорВывода = НастройкаИндикатора.ПроцессорВывода;





//вывод процента

ТекПроцент = ТекПроцент + Шаг;

ЭлементПроцессора.ПроцентВывода = ТекПроцент;

ПроцессорВывода.ВывестиЭлемент(ЭлементПроцессора);



НастройкаИндикатора.Вставить("ПроцессорВывода", ПроцессорВывода);

НастройкаИндикатора.Вставить("ЭлементПроцессора", ЭлементПроцессора);

НастройкаИндикатора.Вставить("Шаг", Шаг);

НастройкаИндикатора.Вставить("ТекПроцент", ТекПроцент);

КонецПроцедуры



Процедура ДеАктивироватьИндикатор(НастройкаИндикатора) Экспорт

ПроцессорВывода = НастройкаИндикатора.ПроцессорВывода;



ПроцессорВывода.ЗакончитьВывод();

ПроцессорВывода = Неопределено;



НастройкаИндикатора = Неопределено;

КонецПроцедуры






✍️ @odin1C_rus