Имя: Пароль:
1C
1С v8
Сообщения от обработки, работающей в базе по COM-соединению
0 borrman
 
05.09.12
12:04
Добрый день!
Версия 8.2. Тонкий клиент/web-клиент
Есть обработка, работающая в базе, к которой я подключаюсь по COM-соединению.
Необходимо получать от нее состояние.
Т.е. - выполняется какое-то длительное дейтсвие, например, перепроведение документов (ну не важно что именно).

Мне нужно сообщать пользователю на каком этапе обработка, чтобы пользователь понимал, что работа идет, а не просто 1С "зависла".

Может кто-то подскажет идею?

Спасибо
1 Reset
 
05.09.12
12:07
Пиши той обработкой константу какую-нибудь, а в соединении читай ее.
2 Heckfy
 
05.09.12
12:08
3 MrStomak
 
05.09.12
12:09
Общий смысл такой - нужно вызывать обработку много раз, чтобы каждый раз она делала только часть работы. В процессе возврата вызова сообщать состояние.
(1) Ну она же не многопоточно исполняется, 1с поди висит ждёт ответа, плюс множественная запись в константу - ахтунг
4 Reset
 
05.09.12
12:11
(3) 1С перестала быть многопользовательской системой?
5 Heckfy
 
05.09.12
12:11
(3) нужно вызывать обработку много раз, чтобы каждый раз она делала только часть работы - скорость правда в разы падает. :(
6 MrStomak
 
05.09.12
12:14
(5) Нет, не в разы, совсем немного упадёт, тут скорее вопрос может ли обработка легко делиться, если это какое-нибудь проведение документво то там всё просто, а если что-то посложнее то бывает что никак не разбить на равноценные этапы
7 Reset
 
05.09.12
12:15
Сейчас та обработка, как я понял, работает в обычном приложении. Вы оба предлагаете ее переписать, чтобы она работала в COM соединении?
И после это вы назваете запись константы раз в минуту ахтунгом?
8 Heckfy
 
05.09.12
12:16
(7) Лучше в файл куда нибудь в темпы....
9 Kreont
 
05.09.12
12:17
Сообщить поставь после важных шагов.
А что б долго не работала, оптимизируй код наконец то :)

(6) Можно все разбить, или по периоду или по количеству данных
10 Reset
 
05.09.12
12:18
(8) Можно и файл
11 MrStomak
 
05.09.12
12:18
(7) Давно в 1С стало возможным многопоточное программирование?
12 Reset
 
05.09.12
12:18
(11) При чем здесь многопоточно программирование? Научитесь читать вопросы
13 MrStomak
 
05.09.12
12:20
(12)
14 Reset
 
05.09.12
12:21
(13) Я мог (некстати) и неправильно понять автора. Если он запускает обработку именно из СОМ соединение, тогда можно думать о вашием методе
15 MrStomak
 
05.09.12
12:22
(12) При вызове обработки из 1С через COM, 1С будет висеть и ждать результата. Надо либо пакетным запуском отдельный сеанс для этой обработки, либо уходить от ком, либо еще как извращаться
16 Reset
 
05.09.12
12:23
ТС,
"Есть обработка, работающая в базе, к которой я подключаюсь по COM-соединению. "
и
"Есть база,  к которой я подключаюсь по COM-соединению и запускаю обработку "

это две большие разницы
17 Reset
 
05.09.12
12:25
(15) Это очевидно
18 MrStomak
 
05.09.12
12:31
(16) Ну тут трубуется пояснение от автора. Я понял так, как понял, что он именно запускает, исходя из "чтобы пользователь понимал, что работа идет, а не просто 1С "зависла" ". Ведь всё-таки довольно странно подключаться и узнавать состояние, когда база "висит" от чего-то другого.
19 Reset
 
05.09.12
12:35
(18) Да скорее всего ключевая фраза <<чтобы пользователь понимал, что работа идет, а не просто 1С "зависла".>>  и я был не прав. Так что лучше выпилюсь из темы
20 borrman
 
05.09.12
13:57
(18)
Да. Все верно.
Получается такая схема:
Все на клиенте:
-создаю COM-подключение
-в этой базе создаю обработку и запускаю ее.

разбить обработку на кусочки не получится.
21 Rovan
 
гуру
05.09.12
14:02
(0) идея такая:
1) подключаемся к базе
2) запрашиваем у обработки общее кол-во объектов
3) запускаем обработку объектов порционно
(например 1-10, 11-20....)
при этом отображаем общий % выполнения процесса
22 borrman
 
05.09.12
14:05
(21)
хорошо. с обработкой проведения согласен.
что делать с Универсальный обмен данными XML?
23 zladenuw
 
05.09.12
14:07
(22) а там разве состояние не пишется что делает в данный момент ?
24 Rovan
 
гуру
05.09.12
14:09
(22) ээээ...можно попробовать ОЛЕ-соединение (в видимом режиме)
и если обработка пишет что-то в Состояние, то всё будет видно
25 borrman
 
05.09.12
14:46
видимый не подходит :(
Независимо от того, куда вы едете — это в гору и против ветра!