Тема выгрузки стандартных обработок не новая, предыдущие публикации:
1. //infostart.ru/public/369487/
2. //infostart.ru/public/400102/
В каждой из них были описаны только те обработки, которые были в платформе на момент публикации, и по мере появления новых инструментов в платформе, задавались вопросы - как их получить?
Сейчас, когда в платформе появилась обработка "Управление серверами", возникла потребность изучить методы, применяемые в этой обработке, чтобы использовать их в автоматизированных процессах.
Решение оказалось простым:
1. Открываем стандартную обработку через "Все функции..."
2. Своей обработкой перебираем открытые окна, определяем окно открытой обработки и получаем ее имя
3. На основании этого имени определяем адрес ресурса
4. Копируем файл, как это было описано в //infostart.ru/public/369487/
Процедура для определения адреса ресурса:
&НаКлиенте
Процедура ОпределитьАдресРесурса(Команда)
ОкнаПриложения = ПолучитьОкна();
Для каждого ОкноПриложения Из ОкнаПриложения Цикл
Если ОкноПриложения.Содержимое.Количество() Тогда
ИмяОбъекта = Новый Структура("MetaPath,ИмяФормы");
ЗаполнитьЗначенияСвойств(ИмяОбъекта, ОкноПриложения.Содержимое[0]);
Если СтрНачинаетсяС(ИмяОбъекта.MetaPath, "ВнешняяОбработка.Stand") Тогда
ЭтотОбъект.АдресРесурса = СтрШаблон("v8res://mngbase/%1.epf", СтрРазделить(ИмяОбъекта.MetaPath, ".")[1]);
Прервать;
ИначеЕсли СтрНачинаетсяС(ИмяОбъекта.ИмяФормы, "ВнешняяОбработка.Stand") Тогда
ЭтотОбъект.АдресРесурса = СтрШаблон("v8res://mngbase/%1.epf", СтрРазделить(ИмяОбъекта.ИмяФормы, ".")[1]);
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура для сохранения файла:
&НаКлиенте
Процедура СохранитьОбработку(Команда)
ИмяОбработки = Сред(ЭтотОбъект.АдресРесурса, СтрНайти(ЭтотОбъект.АдресРесурса, "/", НаправлениеПоиска.СКонца) + 1);
ИмяФайлаНазначения = ЭтотОбъект.КаталогНазначения + "\" + ИмяОбработки;
КопироватьФайл(ЭтотОбъект.АдресРесурса, ИмяФайлаНазначения);
КонецПроцедуры
Проверено на платформе 8.3.16.
update: внес изменения для получения обработки "Активные пользователи"