Это старая версия документа!
Первая вызываемая функция на клиенте.
- «Элементы.ИндикаторОбработкиExcel» - это элемент на форме типа «индикатор». В качестве источника данных у него реквизит формы «ИндикаторОбработкиExcel»
- «ИндикаторОбработкиExcel» - реквизит формы. чило. туда будем закидывать число
&НаКлиенте
Процедура ЗапуститьВыгрузкНаСервере(РезультатВопроса, параметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.ok Тогда
Элементы.ИндикаторОбработкиExcel.Видимость=Истина;
ИндикаторОбработкиExcel = 0;
ВыполнитьФоновоеПолнуюВыгрузкуНаСервере();
ПодключитьОбработчикОжидания("ПроверитьВыполнениеЗадания1", 1);
КонецЕсли;
КонецПроцедуры
«ID_ФоновогоЗадания» - ревизит формы или объекта. Будет хранить в себе ГУИД фонового задания чтобы потом можно было по нему обращаться к фоновому заданию и проверять его состояние
&НаСервере Процедура ВыполнитьФоновоеПолнуюВыгрузкуНаСервере() ID_ФоновогоЗадания = Неопределено; ПолнаяВыгрузкаВФоновом(ID_ФоновогоЗадания); Объект.ID_ФоновогоЗадания1 = ID_ФоновогоЗадания; Мсооб = новый СообщениеПользователю; Мсооб.Текст = ""+ТекущаяДата()+": Запущенна выгрузка в фоновом режиме. Вы можете продолжать работать. Прогресс будет отображаться в этом окне."; Мсооб.Сообщить(); КонецПроцедуры
&НаСервере
Процедура ПолнаяВыгрузкаВФоновом(ID_ФоновогоЗадания)
//Если нужно передат параметры в фоновое задание - формируем его в структуре
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("УИДНастройки",ОбщийМодульОбменСPromUa.ПолучитьУИДобъекта(Объект.Ссылка));
СтруктураПараметров.Вставить("РучнойВызов",истина);
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(ЭтаФорма.УникальныйИдентификатор);
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
ПараметрыВыполнения.ЗапуститьНеВФоне = Ложь;
ПараметрыВыполнения.НаименованиеФоновогоЗадания = "ПолнаяВыгрузка_ВызовСФормы";
ПараметрыВыполнения.ОжидатьЗавершение = Ложь;
**//тут путь уже непосредственно к самой процедуре которую нужно выполить в фоне**
СтрокаЗапуска="ОбщийМодульОбменСPromUa.ОбменСPromUa_толькотовары";
СтруктураЗадания = ДлительныеОперации.ВыполнитьВФоне(СтрокаЗапуска,СтруктураПараметров,ПараметрыВыполнения);
ID_ФоновогоЗадания = СтруктураЗадания.ИдентификаторЗадания;
КонецПроцедуры