zzzz5555
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору M_Volkov Цитата: А как отобразить ход процесса | Пример 1, через фоновое задание, ПолучитьСообщенияПользователю(): http://infostart.ru/public/159607/ Придумывают разное, но в основном через фоновые задания, пример с Инфостарта: Код: &НаСервере Процедура ЗапуститьДлительнуюПроцедуруНаСервере() ФоновыеЗадания.Выполнить("ОбщегоНазначения.ДлительнаяПроцедура"); КонецПроцедуры &НаКлиенте Процедура ЗапуститьДлительнуюПроцедуру(Команда) ЗапуститьДлительнуюПроцедуруНаСервере(); ПодключитьОбработчикОжидания("ПоказатьСтатус", 2); КонецПроцедуры &НаКлиенте Процедура ПоказатьСтатус() Результат = ДанныеИзХранилищаНастроек(); Если ТипЗнч(Результат) = Тип("Структура") Тогда Строка = Результат.Строка; Число = Результат.Число; КонецЕсли; КонецПроцедуры &НаСервере Функция ДанныеИзХранилищаНастроек() Возврат ХранилищеОбщихНастроек.Загрузить("ДлительнаяПроцедура"); КонецФункции //Задание в модуле ОбщегоНазначения &НаСервере Процедура ДлительнаяПроцедура() Экспорт Для Сч = 1 По 100000 Цикл Об = Справочники.Номенклатура.СоздатьЭлемент(); Об.Наименование = Сч; Об.Записать(); Если Сч % 500 = 0 Тогда ХранилищеОбщихНастроек.Сохранить("ДлительнаяПроцедура",, Новый Структура("Строка,Число", "Обработано: " + Сч, Сч)); КонецЕсли; КонецЦикла; КонецПроцедуры | По прошлому коду поддерживаю ZloyBrawler: Цитата: находясь в контексте сервера не канает, так как пока не закончится вызов сервера, ничего оттуда не вернется | niko7 Если записей очень много, то лучше разбить на несколько транзакций. | Всего записей: 847 | Зарегистр. 26-10-2009 | Отправлено: 15:17 04-05-2016 | Исправлено: zzzz5555, 15:28 04-05-2016 |
|