Вход | Регистрация
 

Работа с внешней обработкой в УФ на толстом клиенте

Работа с внешней обработкой в УФ на толстом клиенте
Я
   Ненавижу 1С
 
09.07.20 - 21:45
Как из управляемой формы внешней обработки в ТОЛСТОМ клиенте получить объект обработки на клиенте?

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

Решено вызывать в толстом клиенте, но вся логика написана в модуле объекта. Переносить/дублировать в форму не хочется.
   dka80
 
1 - 09.07.20 - 21:51
Реквизитформывзначение не доступны?
   Ненавижу 1С
 
2 - 09.07.20 - 21:53
(1) конечно нет, он доступен на сервере
есть ДанныеФормыВЗначение, но нужно передать обязательным параметром тип объекта и вот тут ничего не получилось путного
   Фрэнки
 
3 - 09.07.20 - 21:54
в контексте ФормаКлиентскогоПриложения (ClientApplicationForm)

РеквизитФормыВЗначение (FormAttributeToValue)
   Ненавижу 1С
 
4 - 09.07.20 - 21:55
(3) ну нет:

Доступность:
Сервер, мобильное приложение (сервер).
   Фрэнки
 
5 - 09.07.20 - 21:55
(2) Так создается &НаСервере
там же в модуле формы
   Ненавижу 1С
 
6 - 09.07.20 - 21:56
(5) ДанныеФормыВЗначение доступен в толстом клиенте
   acht
 
7 - 09.07.20 - 21:57
(0) Добавь обработке обычную, пустую форму обработки и укажи ее как дополнительную. При открытии в обычном приложении будет использоваться эта новая форма, а там дальше традиционный ЭтотОбъект и всетакое.
   Ненавижу 1С
 
8 - 09.07.20 - 22:02
(7) и всю форму перерисовывать? еще и объяснять, что будет работать только в обычном приложении?

проще поднять еще один объект и его вызывать:

#Если ТолстыйКлиентУправляемоеПриложение Тогда
&НаКлиенте
Процедура КомандаЗаполнитьНаТолстомКлиенте()            
    Защита = Новый ОписаниеЗащитыОтОпасныхДействий;
    Защита.ПредупреждатьОбОпасныхДействиях = Ложь;
    Об = ВнешниеОбработки.Создать(Объект.ИмяФайла,Ложь,Защита);
    ЗаполнитьЗначенияСвойств(Об,Объект);
   acht
 
9 - 09.07.20 - 22:06
(8) > всю форму перерисовывать?
Ты ж в (0) божился, что вся логика написана в модуле объекта. Передумал?
   acht
 
10 - 09.07.20 - 22:09
И кста, у тебя ТолстыйКлиентУправляемоеПриложение или ТолстыйКлиентОбычноеПриложение с разрешением управялемых форм?
   Ненавижу 1С
 
11 - 09.07.20 - 22:15
(9) логика в модуле, на форме интерфейс
(10) ТолстыйКлиентУправляемоеПриложение
   Garykom
 
12 - 09.07.20 - 22:21
Нехер сувать в модуль объекта то что не относится к БД
   Garykom
 
13 - 09.07.20 - 22:23
Не вижу простого способа реализовать классическую хотелку "вызова клиента с сервера"
Да можно подсунуть некий эмулятор в модуль объекта и прокинуть канал до клиента где и будет "установлена COM-компонента", которой из эмулятора будут команды приходить и назад в эмулятор на сервер.

Изврат.
   Ненавижу 1С
 
14 - 09.07.20 - 22:54
(12) вот сейчас к чему это? Есть где-то методология, что "сувать" в модуль объекта внешней обработки?
(13) да не нужно вызывать с сервера клиента, нужно просто не вызывать сервер

в общем пока оставил как в (8)
   acht
 
15 - 09.07.20 - 23:01
(14) А попробуй ради интереса упростить до
Об = Новый("ВнешняяОбработкаОбъект.<ИмяОбработки>");

Так как текущая обработка уже внешняя, то по идее должна быть уже загружена, подключена и тип уже определен. ЕМНИП, так встроенные типовые "все функции" делают со своими "v8res://"

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.