как открыть форму обработки в тонком клиенте?

1. Snus71 233 30.06.20 13:06 Сейчас в теме
Типовая УТ 11.4
Есть обработка, зарегистрированная в справочнике допобработок. Хочу из документа по кнопке вызвать эту обработку. Делаю через расширение, конфа на поддержке, использование тонкого клиента для заказчика принципиально
&НаКлиенте
Процедура Расш1_ОткрытьОбработкуСертПосле(Команда)
	Спр = ОткрытьСерт();
КонецПроцедуры

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


На толстом клиенте все работает прекрасно. На тонком - падает на
    	Обработка.ПолучитьФорму("ВнешняяОбработка.ПечатьСертификатов.Форма")

получает Неопределено и само-собой никакую форму открыть не может.

Как быть?
По теме из базы знаний
Найденные решения
4. andy_zhav 197 30.06.20 13:39 Сейчас в теме
(1)
&НаКлиенте
Процедура Команда2(Команда)
	ИияОбработки = ПоместитьОбработкуВХранилище();
	ОткрытьФорму("ВнешняяОбработка."+ ИияОбработки + ".Форма");
КонецПроцедуры

&НаСервере
Функция ПоместитьОбработкуВХранилище()
    Спр = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Печать сертификатов",Истина);
    Если НЕ Спр.Пустая() Тогда
        ДвоичныеДанные = Спр.ХранилищеОбработки.Получить();  
	Возврат ВнешниеОбработки.Подключить(ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор));
  КонецЕсли;
КонецФункции
Показать
6. andy_zhav 197 30.06.20 13:54 Сейчас в теме
(5)

ОткрытьФорму("ВнешняяОбработка."+ИмяОбработки + ".Форма", Новый Структура("Док", Объект.Ссылка));

А в форме обработки в процедуре ПриСозданииНаСервере прописать код:
Если Параметры.Свойство("Док") Тогда
  Объект.Док = Параметры.Док;
КонецЕсли;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Ivanov_OM 38 30.06.20 13:32 Сейчас в теме
(1)Метод ПолучитьФорму работает только в Тонком клиенте, НаСервере ПолучитьФорму() не работает.
Нужно на Сервере заполнить структуру параметров, передаваемых при открытии формы.
Получить ее на клиенте и открыть форму.
4. andy_zhav 197 30.06.20 13:39 Сейчас в теме
(1)
&НаКлиенте
Процедура Команда2(Команда)
	ИияОбработки = ПоместитьОбработкуВХранилище();
	ОткрытьФорму("ВнешняяОбработка."+ ИияОбработки + ".Форма");
КонецПроцедуры

&НаСервере
Функция ПоместитьОбработкуВХранилище()
    Спр = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Печать сертификатов",Истина);
    Если НЕ Спр.Пустая() Тогда
        ДвоичныеДанные = Спр.ХранилищеОбработки.Получить();  
	Возврат ВнешниеОбработки.Подключить(ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор));
  КонецЕсли;
КонецФункции
Показать
5. Snus71 233 30.06.20 13:48 Сейчас в теме
(3)
(4)
А данные как туда передать?
Обработка.Док = Объект.Ссылка;
6. andy_zhav 197 30.06.20 13:54 Сейчас в теме
(5)

ОткрытьФорму("ВнешняяОбработка."+ИмяОбработки + ".Форма", Новый Структура("Док", Объект.Ссылка));

А в форме обработки в процедуре ПриСозданииНаСервере прописать код:
Если Параметры.Свойство("Док") Тогда
  Объект.Док = Параметры.Док;
КонецЕсли;
7. Snus71 233 30.06.20 14:14 Сейчас в теме
(6) круть! работает ! спасибо!
2. platonov.e 158 30.06.20 13:09 Сейчас в теме
Открывайте на клиенте
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот