|
Внутренние окна 1С показывать в другом приложении | ☑ | ||
---|---|---|---|---|
0
aktor
13.06.13
✎
14:43
|
Всем привет!
Есть 2 базы 1С v8.2. Одна только толстый клиент. Хочу открыть внутренние окна 1с (формы списка, формы элементов и т.д.) в другой базе или приложении, без основного окна 1с. Знаю один способ: Подключаем базу по com-соединению и пишем код "...ПолучитьФорму().Открыть()", но у него есть 2 недостатка: 1. Сом-соединение часто отваливается, потом долго переподключается. 2. Открытое окно формы часто "пропадает" и только нажав "Shift + Tab" можно его найти. Есть другой способ? В каком направлении смотреть? |
|||
1
ДенисЧ
13.06.13
✎
14:43
|
Смотри направо.
|
|||
2
ДенисЧ
13.06.13
✎
14:43
|
Там стенка должна быть
|
|||
3
zladenuw
13.06.13
✎
14:48
|
(0) что бы не отваливался. надо его во временно хранилище прятать и дергать раз 100 секунд. где то было статья по этому поводу. а вот то что пропадает окно. есть глюк. как победить хз
|
|||
4
aktor
13.06.13
✎
14:49
|
Направо это буква "Я" или softpoint?
|
|||
5
ДенисЧ
13.06.13
✎
15:00
|
(4) голову поверни вправо. В реале.
|
|||
6
zladenuw
13.06.13
✎
15:01
|
(5) ггг. он не понял тролинга :)
|
|||
7
c00Lo
13.06.13
✎
15:09
|
Смотри как документооборот в упп интегрируется
|
|||
8
aktor
13.06.13
✎
15:21
|
(7) Смотрел, в основе интеграции лежит Web-сервис, через него удобно делать обмен и команды (ДО 8 - УТ 11 сделано через задачи пользователя и запуск БП в ДО по кнопке из УТ), но просмотр списков и/или форм через Web-сервисы мне сложно представить как... Подскажешь?
Есть, конечно, ещё более очевидный способ: объединить конфы и открывать все окна в одной базе... |
|||
9
palpetrovich
13.06.13
✎
15:38
|
(8) а создать нужную форму в базеПриемнике и заполнять данными из БазИсточника не?
|
|||
10
aktor
13.06.13
✎
17:07
|
(9) можно, но чем принципиально это будет отличатся от объединения? Трудозатраты на создание форм плюс создание обменов будет больше, чем на объединение конфигураций, а результат почти одинаковый...
|
|||
11
Dorosh
13.06.13
✎
17:27
|
1. Объект Соединение запихиваешь в кэш. Перед любым вызовом другой базы в попытке проверяешь валидность объекта. Если выпал в исключение - переподключаешься.
2. Перед открытием формы вешаешь обработчик ожидания, в нем вызов WSH скрипта, в нем ищешь форму по заголовку окна и поднимаешь наверх. |
|||
12
aktor
13.06.13
✎
21:25
|
(11) Спасибо, возможно это оживит ком соединение...
Есть идеи как не через ком сделать? |
|||
13
NcSteel
13.06.13
✎
21:27
|
(0) Веб клиент .
|
|||
14
Torquader
13.06.13
✎
22:47
|
Окна "проваливаются" из-за того, что остаётся активным вызывающее окно.
Происходит так: 1) Пользователь нажимает кнопку мышью или в активном окне. 2) Система начитает выполнение алгоритма, вызывает другой поток, который создаёт окно на экране. 3) Приходит событие отпускания клавиши (или мыши или клавиатуры), и оно делает активным окно, которые выполняло вызов. 4) Появляется окно из другого потока (у него своя очередь), но оно уже не активно, так как в (3) фокус перехватили. Сей момент происходит не только с 1С, но с любой другой программой, создающей окно, не привязанное к родительскому в том же процессе (том же или другом потоке). |
|||
15
Dorosh
14.06.13
✎
09:21
|
(12) Вариантов всего 2 - COM или OLE. OLE тяжелей на подъем, но не имеет проблем ком-коннектора с 32/64 разрядностью.
|
|||
16
aktor
14.06.13
✎
13:01
|
(13) Веб клиент только для управляемых форм. Мы можем получить ссылку на внутренне окно?
(15) Я понимаю что штатными средствами 1с варианта всего 2. Но есть же ещё "не штатные" :-) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |