1. Снусмумрик 229 30.06.20 13:06 Сейчас в теме

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

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

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


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

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

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

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

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

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

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

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

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

Вакансии

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата до 150 000 руб.
Полный день

Программист 1С
Екатеринбург
зарплата от 80 000 руб. до 130 000 руб.
Полный день

Ведущий программист 1С
Москва
зарплата от 150 000 руб.
Полный день

Ведущий программист 1С (УТ 11)
Москва
зарплата до 200 000 руб.
Полный день