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

24.04.20

Разработка - Механизмы платформы 1С

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

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

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: внес изменения для получения обработки "Активные пользователи"

стандартные обработки

См. также

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает.

23.06.2024    7443    bayselonarrend    20    

154

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    5942    dsdred    16    

80

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Все мы используем массивы в своем коде. Это один из первых объектов, который дают ученикам при прохождении обучения программированию. Но умеем ли мы ими пользоваться? В этой статье я хочу показать все методы массива, а также некоторые фишки в работе с массивами.

24.01.2024    17663    YA_418728146    26    

71

Перенос данных 1C Механизмы платформы 1С Системный администратор Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    11221    dsdred    44    

130

Механизмы платформы 1С Программист Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    23756    SeiOkami    48    

135

Механизмы платформы 1С Системный администратор Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    18828    human_new    27    

80

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    14729    YA_418728146    7    

166
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 815 24.04.20 15:16 Сейчас в теме
Только вот остальные встроенные формы (например сама форма выбора Стандартных Обработок) ваш механизм не определит. Да и "Активные пользователи" тоже не видит.
2. anddro 85 24.04.20 16:07 Сейчас в теме
(1) Саму формы выбора - нет, не сохранит, т.к. она открытвается с блокированием интерфейса. С активными пользователями метод (перебор окон) тоже сработает, но в этом случае имя надо брать из свойства "ИмяФормы":

			ИмяОбъекта = Новый Структура("MetaPath,ИмяФормы");
			ЗаполнитьЗначенияСвойств(ИмяОбъекта, ОкноПриложения.Содержимое[0]);
			Если СтрНачинаетсяС(ИмяОбъекта.MetaPath, "ВнешняяОбработка.Stand") Тогда
				ЭтотОбъект.АдресРесурса = СтрШаблон("v8res://mngbase/%1.epf", СтрРазделить(ИмяОбъекта.MetaPath, ".")[1]);
				Прервать;
			ИначеЕсли СтрНачинаетсяС(ИмяОбъекта.ИмяФормы, "ВнешняяОбработка.Stand") Тогда
				ЭтотОбъект.АдресРесурса = СтрШаблон("v8res://mngbase/%1.epf", СтрРазделить(ИмяОбъекта.ИмяФормы, ".")[1]);
				Прервать;
			КонецЕсли;
Показать
3. json 3349 24.04.20 16:38 Сейчас в теме
(2) если форма открывается с блокированием интерфейса, то можно использовать обработчик ожидания. В момент, когда интерфейс заблокирован окном, обработчик все равно отрабатывает. В нем можно перебрать окна и потом, скажем, вывести всплывающее сообщение.
4. ixijixi 1913 23.11.20 22:15 Сейчас в теме
А как справиться со всплывающими окнами типа Избранное, История? Есть какой-нибудь действенный метод?
5. Obertone 77 08.10.21 07:40 Сейчас в теме
Кстати, как получить встроенные в предприятие редакторы файлов HTML и географических схем?
Оставьте свое сообщение