Например, если у вас 200 баз, и в этих базах нужно выполнить какой-то код, например, после очередного обновления.
Варианты:
- Запускать руками каждую базу и в ней выполнять обработку
Вариант, но не для лентяев
- Написать обработку, которая по COM-соединению подключиться к каждой базе и выполнит там код.
Обычно так и делал, но это все делалось последовательно, приходилось дожидаться завершения выполнения в каком-то из окошек.
- Запустить выполнение кода в фоновом режиме
И тогда пришла идея разместить в каждой базе вместе с плановым обновлением одну процедуру, которая немного упрощает жизнь.
В процедуре два параметра: 1. Текст кода, который необходимо выполнить 2. Параметр о том, что нужно запустить фоновое задание с этим кодом.
Теперь процедура выглядит следующим образом: Пишется обработка которая выполняет (быстро) одно процедуру и выполнение этой обработки завершается.
Дальше каждая база запускает свое фоновое задание и выполняет переданный код.
В обработке одна процедура, которую необходимо поместить в общий модуль, ну и сообщить, собственно имя этого модуля этой процедуре.
Процедура ВыполнитьПроизвольныйКод(ТекстКода,ВыполнитьВФоне=Ложь) Экспорт
Если ВыполнитьВФоне Тогда
Параметры=Новый Массив;
Параметры.Добавить(ТекстКода);
ФоновыеЗадания.Выполнить("_ОбщегоНазначенияСервер.ВыполнитьПроизвольныйКод",Параметры,Строка(Новый УникальныйИдентификатор));
Иначе
Выполнить(ТекстКода);
КонецЕсли;
КонецПроцедуры
В скриншотах смысла нет, потому что в обработке интерфейса никакого нет.