Как это работает?...
1. Копируете в модуль формы область кода подсистемы:
2. Размещаете в обработчиках вызовы из подсистемы:
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Выполнение в фоне во внешней обработке
ВыполнениеВФонеВоВнешнейОбработкеПриСозданииНаСервере();
// Конец Выполнение в фоне во внешней обработке
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
// Выполнение в фоне во внешней обработке
ВыполнениеВФонеВоВнешнейОбработкеПриОткрытии();
// Конец Выполнение в фоне во внешней обработке
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
// Выполнение в фоне во внешней обработке
ВыполнениеВФонеВоВнешнейОбработкеПередЗакрытием(Отказ);
// Конец Выполнение в фоне во внешней обработке
КонецПроцедуры
#КонецОбласти
3. Добавляете на форму реквизиты:
4. Можете выполнять в фоне целевую полезную функцию из модуля обработки простым вызовом интерфейсной процедуры из подсистемы:
ВыполнитьПроцедуруМодуляОбработкиВФоне(ИмяПроцедуры, Параметры)
Примерно так:
&НаКлиенте
Процедура ОбработчикКомандыВыполненияПолезнойПроцедуры(Команда)
ПараметрыПолезнойПроцедуры = Новый Структура("КоличествоИтераций");
ПараметрыПолезнойПроцедуры.КоличествоИтераций = 1000;
ДлительнаяОперация = ВыполнитьПроцедуруМодуляОбработкиВФоне(
"ПолезнаяПроцедураВМодулеВнешнейОбработки", ПараметрыПолезнойПроцедуры);
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ОповещениеОЗавершении = Новый ОписаниеОповещения("ПослеЗавершенияВыполнения", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(
ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
КонецПроцедуры
Вызов из подсистемы определяет, каким образом была открыта обработка:
- через файл-открыть
- из справочника дополнительных обработок
- из состава конфигурации
И в любом случае обеспечивает корректное выполнение в фоне целевой полезной процедуры.
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.10.420