Как открыть форму Доп обработки (из Спр.ДополнительныеОтчетыИОбработки) на УФ
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
я так делаю, вызывая доп. обработку из справочника заданий
если надо просто выполнить модуль из обработки
дальше выполнение методов обработки без открытия формы
если же именно форму открыть то так
если надо просто выполнить модуль из обработки
лОбработкаОбъект = ПолучитьОбъектОбработки();
Функция ПолучитьОбъектОбработки() Экспорт
лОписаниеОшибки = "";
лИмяОбработки = ПолучитьИмяОбработки(лОписаниеОшибки);
Если лИмяОбработки = "" Тогда
Возврат лОписаниеОшибки;
КонецЕсли;
лРезультат = "";
Попытка
лРезультат = ВнешниеОбработки.Создать(лИмяОбработки, Ложь);
Исключение
лРезультат = ОписаниеОшибки();
КонецПопытки;
Возврат лРезультат;
КонецФункции
Функция ПолучитьИмяОбработки(пОписаниеОшибки = "") Экспорт
лРезультат = "";
Если Не ЗначениеЗаполнено(ИмяСсылкаОбработки) Тогда
пОписаниеОшибки = "Не выбрана обработка синхронизации!";
Возврат лРезультат;
КонецЕсли;
Если ТипЗнч(ИмяСсылкаОбработки) = Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки") Тогда
Попытка
лАдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ИмяСсылкаОбработки.ХранилищеОбработки.Получить());
лРезультат = ВнешниеОбработки.Подключить(лАдресВоВременномХранилище, , Ложь);
Исключение
пОписаниеОшибки = ОписаниеОшибки();
КонецПопытки;
ИначеЕсли ТипЗнч(ИмяСсылкаОбработки) = Тип("Строка") Тогда
лФайл = Новый Файл(ИмяСсылкаОбработки);
Если лФайл.Существует() Тогда
лРезультат = ИмяСсылкаОбработки;
Иначе
пОписаниеОшибки = "Не найдена указанная внешняя обработка!";
КонецЕсли;
Иначе
пОписаниеОшибки = "Неизвестный тип параметра ""ИмяСсылкаОбработки""!";
КонецЕсли;
Возврат лРезультат;
КонецФункции //ПолучитьИмяОбработки()
Функция ПолучитьОбъектОбработки() Экспорт
лОписаниеОшибки = "";
лИмяОбработки = ПолучитьИмяОбработки(лОписаниеОшибки);
Если лИмяОбработки = "" Тогда
Возврат лОписаниеОшибки;
КонецЕсли;
лРезультат = "";
Попытка
лРезультат = ВнешниеОбработки.Создать(лИмяОбработки, Ложь);
Исключение
лРезультат = ОписаниеОшибки();
КонецПопытки;
Возврат лРезультат;
КонецФункции
Показатьдальше выполнение методов обработки без открытия формы
если же именно форму открыть то так
&НаКлиенте
Процедура ОтрытьОбработку(Объект)
лИмяФайлаОбработки = "";
лЭтоОбработкаИзФайловойСистемы = ЭтоОбработкаИзФайловойСистемы(Объект, лИмяФайлаОбработки);
Если лЭтоОбработкаИзФайловойСистемы Тогда
Если Не лИмяФайлаОбработки = "" Тогда
лФайл = Новый Файл(лИмяФайлаОбработки);
Если лФайл.Существует() Тогда
лАдресВоВременномХранилище = "";
лОповещение = Новый ОписаниеОповещения("ОткрытьФормуОбработкиИзФайла", ЭтотОбъект);
НачатьПомещениеФайла(лОповещение, лАдресВоВременномХранилище, лИмяФайлаОбработки, Ложь, Новый УникальныйИдентификатор);
КонецЕсли;
КонецЕсли;
Иначе
лОписаниеОшибки = "";
лИмяОбработки = ПодключитьДополнительнуюОбработку_НаСервере(ПараметрКоманды, лОписаниеОшибки);
Если лОписаниеОшибки = "" И Не лИмяОбработки = "" Тогда
ОткрытьФорму("ВнешняяОбработка." + лИмяОбработки + ".Форма");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ЭтоОбработкаИзФайловойСистемы(пСсылка, пИмяФайлаОбработки = "")
лРезультат = Истина;
Если ТипЗнч(пСсылка.ИмяСсылкаОбработки) = Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки") Тогда
лРезультат = Ложь;
Иначе
пИмяФайлаОбработки = пСсылка.ИмяСсылкаОбработки;
КонецЕсли;
Возврат лРезультат;
КонецФункции
&НаСервере
Функция ПодключитьДополнительнуюОбработку_НаСервере(пСсылка, пОписаниеОшибки = "")
лОбъект = пСсылка.ПолучитьОбъект();
лИмяОбработки = лОбъект.ПолучитьИмяОбработки(пОписаниеОшибки);
Возврат лИмяОбработки;
КонецФункции
Показать&НаКлиенте
Процедура ОткрытьОсновнуюФормуОбработки(Команда)
ИмяВнешнейОбработки = ПодключитьВнешнююОбработку(СсылкаНаОбработку);
ОткрытьФорму("ВнешняяОбработка." + ИмяВнешнейОбработки + ".Форма");
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПодключитьВнешнююОбработку(Ссылка)
Возврат ДополнительныеОтчетыИОбработки.ПодключитьВнешнююОбработку(Ссылка);
КонецФункции
Показать
(1) Все просто. пару строчек кода. Дополнительная обработка - ссылка на соответствующий элемент справочника
ИДОбработки = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ДополнительнаяОбработка);
ОткрытьФорму("ВнешняяОбработка." + ИДОбработки + ".Форма", ,ЭтаФорма);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот