Переоткрытие внешних обработок

30.11.23

Разработка - Универсальные функции

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

Если работаю со отчетом или обработкой – обычно выгружаю как внешний, и уже внешний объект начинаю править. Когда сделана основная работа и пришло время отладки или доработки интерфейса – нужно часть закрывать и открывать внешний объект, чтобы применились правки.

 

Предварительно сделайте возможность сохранять данные формы в настройках

В основной форме создайте два реквизита «Отладка» (тип булево) и «ПутьКОбработке» (тип строка). Реквизит «Отладка» выведите на форму. Включите возможность сохранения.

 

 

В событиях формы «ПередЗакрытием» и «ПриЗакрытии» вставьте следующий код

&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
	
	Если ЗавершениеРаботы Тогда
		Возврат;
	КонецЕсли;
	
	ИнициализироватьОбработкуДляПерезапуска();
	
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	Если ЗавершениеРаботы Тогда
		Возврат;
	КонецЕсли;
	
	ПерезапуститьОбработку();

КонецПроцедуры

 

Далее текст служебных процедур и функций

 &НаКлиенте
Процедура 	ПерезапуститьОбработку()
	
	Если Отладка = Ложь Тогда
		Возврат;
	КонецЕсли;
	
	ОткрытьФорму("ВнешняяОбработка."+ ПолучитьОбработкуПерезапуска(
		ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ПутьКОбработке))) + ".Форма");

КонецПроцедуры

&НаСервере
Процедура	ИнициализироватьОбработкуДляПерезапуска()
	
	Если Отладка = Ложь ИЛИ ПустаяСтрока(ПутьКОбработке) = Ложь Тогда
		Возврат;
	КонецЕсли;
	
	ПутьКОбработке = РеквизитФормыВЗначение("Объект").ИспользуемоеИмяФайла;
	
КонецПроцедуры

&НаСервере	
Функция		ПолучитьОбработкуПерезапуска(Знач АдресОбработки)
	Возврат ВнешниеОбработки.Подключить(АдресОбработки,, Ложь);
КонецФункции

 

В итоге, когда установите флаг на форме – при закрытии обработка будет запоминать свое текущее имя и переоткрываться с изменениями. Когда закончите – вычистите код вышеизложенный код и передайте в эксплуатацию.

 

Если не планируете удалять данные реквизиты, тогда предлагаю сделать обработку события «ПриИзменении» элемента формы «Отладка»

&НаКлиенте
Процедура 	ОтладкаПриИзменении(Элемент)
	Если Отладка = Ложь Тогда
		ПутьКОбработке = "";
	КонецЕсли;
КонецПроцедуры

 

Внешний отчет Внешняя обработка Разработка.

См. также

Вставляем картинку из буфера обмена (платформа 1С 8.3.24)

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    2956    2    John_d    11    

56

GUID в 1С 8.3 - как с ними быть

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

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    5276    atdonya    22    

52

Валидация JSON через XDTO (включая массивы)

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

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

28.08.2023    9616    YA_418728146    6    

143

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2302    28    progmaster    8    

3

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    16450    144    sapervodichka    112    

130

Система контроля ведения учета [БСП]

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

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    7396    quazare    8    

110
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Serg2000mr 319 30.11.23 18:01 Сейчас в теме
Интересный вариант, но удобнее пользоваться Менеджером внешних обработок
3. ke.92@mail.ru 96 01.12.23 05:46 Сейчас в теме
(1) Добрый день.. Я нечасто дорабатываю внешние обработки и нужен был какой-то простой подход. Это простой и бесплатный вариант. И спасибо за ссылку за материал.
Serg2000mr; +1 Ответить
2. NeSPEC 45 30.11.23 18:08 Сейчас в теме
Добрый день.
Перезагружается только 1 раз.
При повторном закрытии - вылетает с ошибкой:
Ошибка при вызове конструктора (ДвоичныеДанные)
{ВнешняяОбработка.тест_универсал.Форма.Форма.Форма(2336)}: ОткрытьФорму("ВнешняяОбработка."+ ПолучитьОбработкуПерезапуска(ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ПутьКОбработке))) + ".Форма");
{ВнешняяОбработка.тест_универсал.Форма.Форма.Форма(2328)}: ПерезапуститьОбработку();
по причине:
Каталог не обнаружен 'e1cib\tempstorage\279200a3-c398-4276-a38c-ba2f2cd37bc4'


База файловая КА2 (2.5.8.378) , платформа 8.3.21.1709.
4. ke.92@mail.ru 96 01.12.23 05:47 Сейчас в теме
(2)добрый день. Прошу прощение что не обратил внимание на тонкость: данные реквизитов формы сохраняются? Установили настройки сохранения?
5. starik-2005 3039 01.12.23 07:52 Сейчас в теме
Лет двадцать назад один добрый человек показывал мне такой трюк с обработками для 7.7 - мне понравилось, но я не использовал.
Yashazz; maksa2005; +2 Ответить
6. NeSPEC 45 01.12.23 09:26 Сейчас в теме
(4) Да, спасибо.
Но чтобы не возникала ошибка "установлен безопасный режим",
строку:
Возврат ВнешниеОбработки.Подключить(АдресОбработки);

нужно поменять на:
Возврат ВнешниеОбработки.Подключить(АдресОбработки,,Ложь);
7. ke.92@mail.ru 96 01.12.23 10:05 Сейчас в теме
(6)Спасибо большое за замечание, не подумал, добавил в код.
11. Xershi 1486 02.12.23 18:27 Сейчас в теме
(7) просто нужно прописать права на безопасный режим, а не просто его отключать.
8. NeSPEC 45 01.12.23 10:11 Сейчас в теме
(7)
Спасибо за классную идею.
Удачи в дальнейшей работе.
9. ke.92@mail.ru 96 01.12.23 14:55 Сейчас в теме
10. NeSPEC 45 01.12.23 15:13 Сейчас в теме
(8) Если вы не против - добавлю содержимое вашей статьи в (Моя справка) в следующем релизе со ссылкой на вашу статью.
12. ke.92@mail.ru 96 02.12.23 19:59 Сейчас в теме
13. Tavalik 3361 04.12.23 09:15 Сейчас в теме
Спасибо. Использовал свой велосипед для тех же целей. Но ваш способ проще. Возьму на вооружение.
14. kuzyara 1914 04.12.23 11:49 Сейчас в теме
В ИнструментахРазработчика (ОФ) есть похожая настройка - "Выполнить при старте", в котором можно прописать открытие управляемой формы в обычном режиме
ОткрытьФорму("Обработка.АРМРаботыСПеремещениями.Форма")

или в стартере в "Дополнительные параметры запуска" прописать
/Execute "D:\ВнешняяОбработка1.epf"

или написать свой универсальный обработчик для параметра запуска
/C [строка текста]
Прикрепленные файлы:
15. user955006 06.12.23 11:10 Сейчас в теме
или я не понимаю, зачем оно
или это замена "альт вниз ф 1"
16. e9504100606 87 05.02.24 09:11 Сейчас в теме
Спасибо, очень помогло!

На мышке 5я кнопка настроена на комбинацию Ctrl+F4 (закрыть текущую форму/окно), теперь переоткрытие внеш.обработки в один клик работает.
Оставьте свое сообщение