Всех приветствую.
Попалась мне в руки конфигурация с БСП 2.3.5.9. Сделал внешнюю обработку, которая открывается вручную, но работает она синхронно. Немного погуглил, почитал статей - попытался запустить основную процедуру в фоне. В общем-то получилось, если создать общий модуль и засунуть ее туда, тогда работает. А как вызывать в фоне процедуру которая расположена в модуле объекта внешней обработки?
Это обработчик нажатия кнопки формы
Это серверный вызов
Собственно "ЗаполнитьНомераНаСервере" - это основная процедура которая делает всю работу. Если эту процедуру вынести в общий модуль конфигурации, то все работает. Но это не вариант в моем случае. А как запустить ее в фоне, если она в модуле объекта обработки? или в модуле формы.
Попалась мне в руки конфигурация с БСП 2.3.5.9. Сделал внешнюю обработку, которая открывается вручную, но работает она синхронно. Немного погуглил, почитал статей - попытался запустить основную процедуру в фоне. В общем-то получилось, если создать общий модуль и засунуть ее туда, тогда работает. А как вызывать в фоне процедуру которая расположена в модуле объекта внешней обработки?
Это обработчик нажатия кнопки формы
&НаКлиенте
Процедура ЗаполнитьНомера(Команда)
ЗапуститьДлительныеВычисленияНаСервере();
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтаФорма);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация,
Новый ОписаниеОповещения("ПриЗавершенииДлительнойОперации", ЭтаФорма),
ПараметрыОжидания);
КонецПроцедуры
ПоказатьЭто серверный вызов
&НаСервере
Процедура ЗапуститьДлительныеВычисленияНаСервере()
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Нумерация объектов'");
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("Элементы", ТЗ_в_Список());
СтруктураПараметров.Вставить("Нач", Объект.НачальноеЗначениеИН);
СтруктураПараметров.Вставить("Кон", Объект.КонечноеЗначениеИН);
СтруктураПараметров.Вставить("Автор", Сотрудники.ПолучитьСотрудникаТекущегоПользователя());
СтруктураПараметров.Вставить("Организация", ПолучитьОрганизациюСотрудникаТекущегоПользователя());
ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне("ЗаполнитьНомераНаСервере",
СтруктураПараметров,
ПараметрыВыполнения);
КонецПроцедуры
ПоказатьСобственно "ЗаполнитьНомераНаСервере" - это основная процедура которая делает всю работу. Если эту процедуру вынести в общий модуль конфигурации, то все работает. Но это не вариант в моем случае. А как запустить ее в фоне, если она в модуле объекта обработки? или в модуле формы.
По теме из базы знаний
- БСП 2.3 и БСП 3.0: Просто про выполнение внешней обработки в фоне (c индикацией прогресса выполнения)
- Многопоточное выполнение процедуры с помощью ДлительныеОперации
- Выполнение любой дополнительной обработки в фоне
- Индикатор прогресса фонового выполнения дополнительной обработки БСП
- Выполнение внешней обработки в фоне с выводом прогресса. Максимум использования БСП
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот