РассчитатьПроцентЗагрузки (БСП)

Автор: 1С
ОбщийМодуль.ОбменДаннымиСервер
БСП

Рассчитать процент загрузки. Рассчитывает процент загрузки и записывает в виде сообщения пользователю.

// Рассчитывает процент загрузки и записывает в виде сообщения пользователю.
//
// Параметры:
//  КоличествоЗагруженных       - Число - Количество загруженных на данный момент объектов.
//  КоличествоОбъектовКЗагрузке - Число - Количество объектов к загрузке.
//  РазмерФайлаСообщенияОбмена  - Число - Размер файла сообщения обмена в мегабайтах.
//
Процедура РассчитатьПроцентЗагрузки(КоличествоЗагруженных, КоличествоОбъектовКЗагрузке, РазмерФайлаСообщенияОбмена) Экспорт
	// Сообщение о проценте загрузки выдаем через каждые 10 объектов.
	Если КоличествоЗагруженных = 0 ИЛИ КоличествоЗагруженных / 10 <> Цел(КоличествоЗагруженных / 10) Тогда
		Возврат;
	КонецЕсли;

	Если КоличествоОбъектовКЗагрузке = 0 Тогда
		// Возможно при загрузке через com соединение если на другой стороне не встроен прогресс-бар.
		ПроцентВыполнения = 95;
		Шаблон = НСтр("ru = 'Обработано %1 объектов.'");
		Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Формат(КоличествоЗагруженных, "ЧН=0; ЧГ="));
	Иначе
		// 5% полосы резервируем под отложенное заполнение, проценты по количеству считаем от 95.
		ПроцентВыполнения = Окр(Мин(КоличествоЗагруженных * 95 / КоличествоОбъектовКЗагрузке, 95));
		
		Шаблон = НСтр("ru = 'Обработано: %1 из %2 объектов.'");
		Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			Шаблон,
			Формат(КоличествоЗагруженных, "ЧН=0; ЧГ="),
			Формат(КоличествоОбъектовКЗагрузке, "ЧН=0; ЧГ="));
	КонецЕсли;
	
	// Дополняем размером файла.
	Если РазмерФайлаСообщенияОбмена <> 0 Тогда
		Шаблон = НСтр("ru = 'Размер сообщения %1 МБ'");
		ТекстДополнение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, РазмерФайлаСообщенияОбмена);
		Текст = Текст + " " + ТекстДополнение;
	КонецЕсли;
	
	// Регистрация сообщения для чтения из клиентского сеанса.
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("ОбменДанными", Истина);
	
	ДлительныеОперации.СообщитьПрогресс(ПроцентВыполнения, Текст, ДополнительныеПараметры);

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

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

РассчитатьПроцентЗагрузкиРИБ (БСП)

РассчитатьПроцентВыгрузки (БСП)

РассчитатьПроцентВыгрузкиРИБ (БСП)

Сколько процентов число от числа

РассчитанныеДатыЗапретаИзменения (БСП)

РассчитатьРассмотреноПоПапкам (БСП)

РассчитатьРассмотреноПоКонтактам (БСП)

РассчитатьРассмотреноПоПредметам (БСП)

ДатаЗапретаПоОписанию (БСП)

TurboConf 6 - расширение Конфигуратора 1С