Каталог решений - Выгрузка новых стандартных обработок

Выгрузка новых стандартных обработок

Выгрузка новых стандартных обработок

В наличии

Описывается способ определить адрес ресурса, по которому стандартная обработка хранится в платформе 8.3, с последующим сохранением обработки в файл внешней обработки.

Категория:

Описание

Тема выгрузки стандартных обработок не новая, предыдущие публикации:

1. //sale.itcity.ru/public/369487/ 

2. //sale.itcity.ru/public/400102/

В каждой из них были описаны только те обработки, которые были в платформе на момент публикации, и по мере появления новых инструментов в платформе, задавались вопросы — как их получить?

Сейчас, когда в платформе появилась обработка "Управление серверами", возникла потребность изучить методы, применяемые в этой обработке, чтобы использовать их в автоматизированных процессах.

Решение оказалось простым: 

1. Открываем стандартную обработку через "Все функции…"

2. Своей обработкой перебираем открытые окна, определяем окно открытой обработки и получаем ее имя

3. На основании этого имени определяем адрес ресурса

4. Копируем файл, как это было описано в //sale.itcity.ru/public/369487/ 

Процедура для определения адреса ресурса:

&НаКлиенте
Процедура ОпределитьАдресРесурса(Команда)
	ОкнаПриложения = ПолучитьОкна();
	Для каждого ОкноПриложения Из ОкнаПриложения Цикл
		Если ОкноПриложения.Содержимое.Количество() Тогда
			ИмяОбъекта = Новый Структура("MetaPath,ИмяФормы");
			ЗаполнитьЗначенияСвойств(ИмяОбъекта, ОкноПриложения.Содержимое[0]);
			Если СтрНачинаетсяС(ИмяОбъекта.MetaPath, "ВнешняяОбработка.Stand") Тогда
				ЭтотОбъект.АдресРесурса = СтрШаблон("v8res://mngbase/%1.epf", СтрРазделить(ИмяОбъекта.MetaPath, ".")[1]);
				Прервать;
			ИначеЕсли СтрНачинаетсяС(ИмяОбъекта.ИмяФормы, "ВнешняяОбработка.Stand") Тогда
				ЭтотОбъект.АдресРесурса = СтрШаблон("v8res://mngbase/%1.epf", СтрРазделить(ИмяОбъекта.ИмяФормы, ".")[1]);
				Прервать;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры

Процедура для сохранения файла:

&НаКлиенте
Процедура СохранитьОбработку(Команда)
	ИмяОбработки = Сред(ЭтотОбъект.АдресРесурса, СтрНайти(ЭтотОбъект.АдресРесурса, "/", НаправлениеПоиска.СКонца) + 1);
	ИмяФайлаНазначения = ЭтотОбъект.КаталогНазначения + "\" + ИмяОбработки;
	КопироватьФайл(ЭтотОбъект.АдресРесурса, ИмяФайлаНазначения);
КонецПроцедуры

Проверено на платформе 8.3.16.

update: внес изменения для получения обработки "Активные пользователи"

has been added to your cart:
Оформление заказа