![]() |
|
Работа с внешней обработкой в УФ на толстом клиенте | ☑ | ||
---|---|---|---|---|
0
Ненавижу 1С
гуру
09.07.20
✎
21:45
|
Как из управляемой формы внешней обработки в ТОЛСТОМ клиенте получить объект обработки на клиенте?
Объясню зачем. Есть внешняя обработка, она работает в тонком клиенте. В модуле обработки на сервере есть вызов COM-соединения. Теперь надо ее запустить в другой базе, на другом сервере. На сервере не установлена COM-компонента и по определенным причинам доступа к его управлению нет. Решено вызывать в толстом клиенте, но вся логика написана в модуле объекта. Переносить/дублировать в форму не хочется. |
|||
1
dka80
09.07.20
✎
21:51
|
Реквизитформывзначение не доступны?
|
|||
2
Ненавижу 1С
гуру
09.07.20
✎
21:53
|
(1) конечно нет, он доступен на сервере
есть ДанныеФормыВЗначение, но нужно передать обязательным параметром тип объекта и вот тут ничего не получилось путного |
|||
3
Фрэнки
09.07.20
✎
21:54
|
в контексте ФормаКлиентскогоПриложения (ClientApplicationForm)
РеквизитФормыВЗначение (FormAttributeToValue) |
|||
4
Ненавижу 1С
гуру
09.07.20
✎
21:55
|
(3) ну нет:
Доступность: Сервер, мобильное приложение (сервер). |
|||
5
Фрэнки
09.07.20
✎
21:55
|
(2) Так создается &НаСервере
там же в модуле формы |
|||
6
Ненавижу 1С
гуру
09.07.20
✎
21:56
|
(5) ДанныеФормыВЗначение доступен в толстом клиенте
|
|||
7
acht
09.07.20
✎
21:57
|
(0) Добавь обработке обычную, пустую форму обработки и укажи ее как дополнительную. При открытии в обычном приложении будет использоваться эта новая форма, а там дальше традиционный ЭтотОбъект и всетакое.
|
|||
8
Ненавижу 1С
гуру
09.07.20
✎
22:02
|
(7) и всю форму перерисовывать? еще и объяснять, что будет работать только в обычном приложении?
проще поднять еще один объект и его вызывать: #Если ТолстыйКлиентУправляемоеПриложение Тогда &НаКлиенте Процедура КомандаЗаполнитьНаТолстомКлиенте() Защита = Новый ОписаниеЗащитыОтОпасныхДействий; Защита.ПредупреждатьОбОпасныхДействиях = Ложь; Об = ВнешниеОбработки.Создать(Объект.ИмяФайла,Ложь,Защита); ЗаполнитьЗначенияСвойств(Об,Объект); |
|||
9
acht
09.07.20
✎
22:06
|
(8) > всю форму перерисовывать?
Ты ж в (0) божился, что вся логика написана в модуле объекта. Передумал? |
|||
10
acht
09.07.20
✎
22:09
|
И кста, у тебя ТолстыйКлиентУправляемоеПриложение или ТолстыйКлиентОбычноеПриложение с разрешением управялемых форм?
|
|||
11
Ненавижу 1С
гуру
09.07.20
✎
22:15
|
(9) логика в модуле, на форме интерфейс
(10) ТолстыйКлиентУправляемоеПриложение |
|||
12
Garykom
гуру
09.07.20
✎
22:21
|
Нехер сувать в модуль объекта то что не относится к БД
|
|||
13
Garykom
гуру
09.07.20
✎
22:23
|
Не вижу простого способа реализовать классическую хотелку "вызова клиента с сервера"
Да можно подсунуть некий эмулятор в модуль объекта и прокинуть канал до клиента где и будет "установлена COM-компонента", которой из эмулятора будут команды приходить и назад в эмулятор на сервер. Изврат. |
|||
14
Ненавижу 1С
гуру
09.07.20
✎
22:54
|
(12) вот сейчас к чему это? Есть где-то методология, что "сувать" в модуль объекта внешней обработки?
(13) да не нужно вызывать с сервера клиента, нужно просто не вызывать сервер в общем пока оставил как в (8) |
|||
15
acht
09.07.20
✎
23:01
|
(14) А попробуй ради интереса упростить до
Об = Новый("ВнешняяОбработкаОбъект.<ИмяОбработки>"); Так как текущая обработка уже внешняя, то по идее должна быть уже загружена, подключена и тип уже определен. ЕМНИП, так встроенные типовые "все функции" делают со своими "v8res://" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |