Индикация операции, выполняемой на сервере

&НаКлиенте 
Процедура Операция() 
	
	Состояние = ПолучитьСостояние(); 
	НачальнаяИнициализация(Состояние); 
	
	ПоследнееОбновлениеИндикатора = ТекущаяДата(); 
	Пока Продолжать(Состояние) Цикл 
		
		ОбработкаПрерыванияПользователя(); 
		ПоследнееОбновлениеИндикатора = СовершитьВитокИтерации(Состояние, ПоследнееОбновлениеИндикатора); 
		ОбновитьИндикатор(Состояние); 
		
	КонецЦикла; 
	
	ЗавершающаяИнициализация(Состояние); 
	
КонецПроцедуры 

&НаСервере 
Процедура СовершитьВитокИтерации(Состояние, ПоследнееОбновлениеИндикатора) 
	
	Пока Продолжать(Состояние) Цикл 
		
		ТекущееПоложениеИндикатора = ТекущаяДата(); 
		Если НеобходимоОбновлениеИндикатора(ПоследнееОбновлениеИндикатора, ТекущееПоложениеИндикатора) Тогда 
			Возврат ТекущееПоложениеИндикатора; 
		КонецЕсли; 
		
		Состояние = ОбработатьСостояние(Состояние); 
		
	КонецЦикла; 
	
	Возврат ТекущаяДата(); 
	
КонецПроцедуры

 

функции ПолучитьСостояние, НачальнаяИнициализация, Продолжать, ОбработатьСостояние, ЗавершающаяИнициализация оставить на разработку пользователю шаблона.

Источник: infostart.ru, из комментариев пользователя Rusmus