Как программно перезапустить обработку 1с
Перейти к содержимому

Как программно перезапустить обработку 1с

Перезапуск внешней обработки/отчета УФ

Не прошло и 5-и лет. А нет, прошло:) Как снова захотелось перезапускать внешнюю обработку по кнопочке Ф5.
Ранее попытка была тут v8: Как на сервере получить объект созданной внешней обработки по уникальному ид

Написал себе. Мож кому еще пригодится. На отчетах не тестил, в промышленной эксплуатации тоже еще не опробовал. Так что не пинайте.

В модуль управляемой формы добавляем следующий текст и в режиме предприятия жмакаем Ф5 для перезапуска.

&НаКлиенте
Процедура РезетУФ(п1=Неопределено,п2=Неопределено,п3=Неопределено,п4=Неопределено) Экспорт
тзп1 = ТипЗнч(п1);
Если тзп1 = Тип("Булево") Тогда //Разместился файл
ПолучитьФорму(?(СтрЗаканчиваетсяНа(п3,".epf"),"ВнешняяОбработка","ВнешнийОтчет")+"."+РезетУФНаСервере(п2,п3)+".Форма",Новый Структура("ИспользуемоеИмяФайла",п3),,Истина).Открыть();
Закрыть();
ИначеЕсли тзп1 = Тип("КомандаФормы") Тогда
НачатьПомещениеФайла(Новый ОписаниеОповещения("РезетУФ",ЭтаФорма),,РезетУФНаСервере(""),Ложь);
КонецЕсли;
КонецПроцедуры
Функция РезетУФНаСервере(п1=Неопределено,п2=Неопределено)
рез = Неопределено;
Если п1=Неопределено и п2=Неопределено Тогда //Добавим кнопку
ЗаполнитьЗначенияСвойств(ЭтаФорма.Команды.Добавить("РезетУФ"),Новый Структура("Действие,Подсказка","РезетУФ",РезетУФНаСервере("")));
ЗаполнитьЗначенияСвойств(ЭтаФорма.Элементы.Добавить("кнРезетУФ",Тип("КнопкаФормы"),ЭтаФорма.КоманднаяПанель),Новый Структура("ТолькоВоВсехДействиях,СочетаниеКлавиш,ИмяКоманды",Истина,Новый СочетаниеКлавиш(Клавиша.F5),"РезетУФ"));
ИначеЕсли п1<>Неопределено и п2<>Неопределено Тогда //Подключим обработку или отчет
Файл = Новый Файл(п2);
ЗащитаОтОпасныхДействий = Новый ОписаниеЗащитыОтОпасныхДействий;
ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях = Ложь;
рез = ?(СтрЗаканчиваетсяНа(п2,".epf"),ВнешниеОбработки,ВнешниеОтчеты).Подключить(п1,Файл.ИмяБезРасширения,Ложь,ЗащитаОтОпасныхДействий);
ИначеЕсли п1<>Неопределено и п2=Неопределено Тогда //Определим имя файла
Если Не ЭтаФорма.Параметры.Свойство("ИспользуемоеИмяФайла",рез) Тогда
рез = НРег(РеквизитФормыВЗначение("Объект").ИспользуемоеИмяФайла);
Если СтрНачинаетсяС(рез,"e1cib") Тогда
рез = Команды.РезетУФ.Подсказка;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат рез;
КонецФункции

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
РезетУФНаСервере();
КонецПроцедуры

Программный запуск зарегистрированной внешней обработки или отчёта

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

Предлагаю универсальную процедуру для открытия внешних обработок/отчетов по коду элемента справочника ВнешниеОбработки.

Данную процедуру можно поместить в общий модуль и вызывать при необходимости из любого модуля конфигурации.

Программное открытие обработок в 1С

В этой статье я разберу особенности программного открытия обработок в 1С. Мы узнаем, как открыть форму обработки, как открыть форму внешней обработки из самой внешней обработки, а также как открыть форму внешней обработки из клиентского режима платформы 1С 8.3.

Открыть форму обработки 1С

Начнем с того, что саму по себе открыть программной обработку нельзя. Можно открыть какую-либо из форм обработки. Для программного открытия управляемой формы обработки необходимо использовать метод ОткрытьФорму.

В первой статье, в которой мы начали знакомиться с обработками в 1С, я создал обработку «Обработка для примера» с формой.

В этой статье я покажу, как открыть программно форму этой обработки из другой обработки «Обработка1». Для этого у Обработки1 я создал управляемую форму и команду формы.

Обработка 1С и форма обработки 1С

В клиентском обработчике команды, напишем код, который будет открывать основную форму обработки.

Какая именно форма обработки будет открыта, можно указать в контекстной подсказке, которая появляется после ввода названия обработки.

Обработка 1С и форма обработки 1С

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

Обработка 1С и форма обработки 1С

Открыть форму внешней обработки 1С

Если нам необходимо, чтобы из одной формы внешней обработки открылась другая форма этой же внешней обработки, то также необходимо использовать метод ОткрытьФорму, как в примере выше, только вместо слова Обработка необходимо написать ВнешняяОбработка.

Разберем пример. Пусть, у внешней обработки будут две формы: Основная и Дополнительная.

Открыть форму внешней обработки

На основной форме создадим команду «Открытие дополнительной», при выполнении которой будет открываться дополнительная форма.

Открыть форму внешней обработки

У этой команды будет клиентский обработчик события, со следующим кодом:

Теперь, открыв внешнюю обработку, мы сможем из её основной формы открыть дополнительную.

Открыть форму внешней обработки

Открыть внешнюю обработку 1С

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

Разберем эту задачу. Откроем внешнюю обработку из обработки, которую создали в предыдущей статье, и с которой работали уже в этой — «Обработка 1».

В этой обработке создадим команду, при выполнении которой откроется форма внешней обработки.

Открыть внешнюю обработку 1С

В форме обработки напишем следующий код:

Код работает, начиная с платформы 8.3.15.

В вышеприведенном коде, процедура ОткрытьВнешнююОбработку — обработчик команды «Открыть внешнюю обработку», в этом обработчике используется метод НачатьПолучениеФайлаНаСервер, который выполнен в варианте открытия диалога выбора файла. После выбора файла срабатывает процедура описания оповещения ПослеВыбораФайла. В этой процедуре получается адрес временного хранилища файла (переменная Адрес), по которому находится название внешней обработки (в серверной процедуре ПолучитьИмяВнешнейОбработки), а потом эта внешняя обработка открывается.

После выполнения команды, откроется окно выбора файла внешней обработки.

Открыть внешнюю обработку 1С

Если файл будет выбран, внешняя обработка откроется.

Открыть внешнюю обработку 1С

Статьи про открытие форм:

Статьи по конфигурированию в 1С:

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

One thought on “ Программное открытие обработок в 1С ”

Добрый день. А из документа, можно открыть внешнюю обработку? В окне с подсказкой, нет пункта «Внешняя обработка».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *