|
Проведение документа и COMобъект в управляемом приложении | ☑ | ||
---|---|---|---|---|
0
ks-78
23.03.13
✎
20:00
|
Есть следующая задача. При проведении документа нужно подключиться к определенной базе на Oracle, выполнить там определенные процедуры, и если все хорошо, документ проводится. Так сейчас сделано на 7.7. Теперь задача сотворить тоже самое на управляемом приложении 8.2.
На 7.7 все просто. В конце процедуры ОбработкаПроведения вызываем необходимую функцию из глобальника, делаем что нужно в оракле, если все хорошо, документ проводим. Иначе - отменяем проведение. Подскажите, как это лучше решить на управляемом приложении. Ведь COMОбъект живет только на клиенте, а проведение на сервере. Можно конечно инициировать это действо ПередЗаписью на форме, но проблема в том, что отказ в проведении может возникнуть позже уже на сервере. И как это победить?.. |
|||
1
rs_trade
23.03.13
✎
20:02
|
(0) Так сейчас сделано на 7.7
представляю тормоза в этой базе |
|||
2
rs_trade
23.03.13
✎
20:02
|
там и так доки еле проводятся. а тут еще подключение черт-знает куда в транзакции
|
|||
3
pumbaEO
23.03.13
✎
20:03
|
(1) почему? Если соединение не сбрасывается и ораклисты с хранимкой не запороли, почему должно тормозить?
|
|||
4
rs_trade
23.03.13
✎
20:04
|
COMОбъект и на сервере вполне себе живет
|
|||
5
ks-78
23.03.13
✎
20:05
|
при попытке его туда передать - ошибку выдает
|
|||
6
rs_trade
23.03.13
✎
20:05
|
(3) про _1SJOURN помнишь? один долбанный документ блокирует все что только можно.
|
|||
7
ks-78
23.03.13
✎
20:06
|
а про семерку - соединение не сбрасывается. и работает проведение весьма шустро.
|
|||
8
rs_trade
23.03.13
✎
20:06
|
(5) правильно. ты его на сервере и создавай. зачем его туда сюда гонять. он не сериализуется.
|
|||
9
ks-78
23.03.13
✎
20:08
|
(8) тут как раз и будет сбрасываться соединение после каждого проведения документа. а это уже действительно тормоза вызовет.
|
|||
10
rs_trade
23.03.13
✎
20:08
|
а при чем тут ком вообще? почему через адо не шустрить в оракловской базе?
|
|||
11
rs_trade
23.03.13
✎
20:10
|
или это конект к базе 1с на оракле?
|
|||
12
ks-78
23.03.13
✎
20:13
|
(11) 1с конектится к базе на оракле. по поводу адо - разве 1с это не как ком объект воспринимает?
|
|||
13
rs_trade
23.03.13
✎
20:18
|
(12) создается да, как ком. но ком-ы они разные же бывают. а что в чужой базе надо делать? только читать, или писать еще надо?
|
|||
14
ks-78
23.03.13
✎
20:20
|
(13) и читать и писать
|
|||
15
rs_trade
23.03.13
✎
20:25
|
(14) я к тому, что если прицепить таблицы оракла к 1с как внешн. источники, а таблицы 1с прилинковать к ораклу, и по содержимому выполнять определенные действия и там и там. пусть немного позже, не он-лайн в обработке проведени. так не пойдет?
|
|||
16
ks-78
23.03.13
✎
20:29
|
(15) Нет, задача именно он-лайн писать.
|
|||
17
rs_trade
23.03.13
✎
20:30
|
(16) повесь триггер на субд 1с. шустро будет.
|
|||
18
ks-78
23.03.13
✎
20:32
|
(17) проблема в том, что еще и сроки поджимают. самое быстрое по реализации - повторить то, что есть в семерке. Так что актуален вопрос из стартового топика.
|
|||
19
ДенисЧ
23.03.13
✎
21:36
|
чото хрень какая-то...
а) кто мешает ком создавать на сервере? б) при групповом проведении что делать будешь? |
|||
20
ks-78
23.03.13
✎
21:41
|
(19) а) на сервере переменные живут на время вызова. получается, что каждый раз надо будет заново устанавливать соединение.
б) проводиться документы будут только интерактивно. при групповом перепроведении в оракл стучаться не нужно. |
|||
21
rs_trade
23.03.13
✎
21:42
|
(20) а на разных клиентах как они живут? запили триггер. имхо лучшее решение.
|
|||
22
ДенисЧ
23.03.13
✎
21:44
|
(20) в общем отказывайся от этой идеи. Она дурная.
|
|||
23
ks-78
26.03.13
✎
01:20
|
в общем сделал все на сервере. По поводу хранения комобъекта на сервере, может пригодится кому Книга знаний: Хранение COM Объектов на Сервере ТонкогоКлиента
|
|||
24
ks-78
15.04.13
✎
05:54
|
В общем с работой на сервере COMОбъекта проблем нет. Теперь новое препятствие. Нужно передать этот самый COMОбъект в фоновое задание. Пытаюсь передать в параметрах, не получается. Создать комобъект заново, не вариант, поскольку у пользователей есть права только на одно соединение с базой oracle, к которой и подключается ComОбъект.
Подскажите, можно каким-либо образом передать COMОбъект в фоновое задание? |
|||
25
Hmster
15.04.13
✎
06:23
|
(24) никак. он либо хранится на сервере либо по требованию создается в фоновом.
если хочешь извращений сделай так чтобы фоновое не завершалось, было подобие ожидания, и наладь взаимодействие сеанса с фоном, например через РС |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |