![]() |
![]() |
![]() |
|
Проблема с OLE | ☑ | ||
---|---|---|---|---|
0
Новичок
13.03.09
✎
12:52
|
1. Запускаю первую 1с, а из нее подключаюсь в к другой 1с через OLE - запускаю отчет.
2. Через 3-4 минуты выходит сообщение: Сервер занят Действие не может быть завершено, так как другая программа занята. Для перехода к этой программе воспользуйтесь кнопкой "Переключиться". После этого 1С - которая OLE, не отключается никакой командой (ЗавершитьРаботуСистемы(0); СтатусВозврата(0), Возврат) С уважением, Ильдар |
|||
1
Нуф-Нуф
13.03.09
✎
12:54
|
тезка!
|
|||
2
Ёпрст
гуру
13.03.09
✎
12:55
|
(0) выходит по таймауту в 2 минуты...
|
|||
3
big
13.03.09
✎
13:00
|
Я оптимизировал отчет по скорости работы, выбирал меньшие периоды и т.п. Либо сидеть и ждать пока оно там само по себе всё сделает. А если надо просто отключить, то где-то была приблудка, делающая окно ОЛЕ-базы видимым.
|
|||
4
Cthulhu
13.03.09
✎
13:00
|
(2): причем таймаут этот не забороть никак, олина специфика..
|
|||
5
DrZombi
гуру
13.03.09
✎
13:47
|
(4)Не знаю, но олешнные базы отпадывают на ура :)
(0)Ты хоть ссылки на объекты зануляешь? (документы, справочники - созданные командой CreateO...) Так же, если ты попробуешь выйти из 1С, то оно выдаст такое сообщение типо, прес "Да" или "Нет" для подтверждения выхода. Дак вот это сообщение отрабатывает и в оле. В сущьности олешная база - это полноценная база, но невидимая для юзора и управляемая другим приложением. Т.е. все ошибки и т.д. оно отрабатывает, но ты это не видишь, но чувствуешь по времени застоя :) Так же если ты открываешь слишком много ОЛЕ баз и так же при этом других баз, то это тоже негативно скажится на оле базе :) |
|||
6
Новичок
13.03.09
✎
15:15
|
Объектов я никаких не создаю, просто запускаю отчет:
Оле.EvalExpr("ОткрытьФорму(""Отчет.АнализЦенообразованияПериодики"",1)"); ЗавершитьРаботуСистемы(0); |
|||
7
Ёпрст
гуру
13.03.09
✎
15:16
|
(6) А нафига его по Оле запускать вообще ?
|
|||
8
Valery
13.03.09
✎
15:20
|
Так просит типа период открыть. По Alt-Tab переключись и нажми на кнопку
|
|||
9
Новичок
13.03.09
✎
15:40
|
Запускать отчет в 1с, через пользователя, это неинтересно и криво.
Что под каждую задачу создавать нового пользователя или выдумывать какие-то параметры? |
|||
10
Новичок
13.03.09
✎
15:41
|
Про Alt-Tab не понял. Все это происходит ночью - роботом.
|
|||
11
Ёпрст
гуру
13.03.09
✎
15:43
|
(9) Чем криво то?
Оле - мега тормоз в принципе.. А под одним пользователем-роботом можно поназапускать всё что угодно. |
|||
12
Новичок
13.03.09
✎
15:44
|
Как под одним пользователем запустить несколько процессов? Пример?
|
|||
13
Ёпрст
гуру
13.03.09
✎
15:45
|
(12) зачем ?
а так, не прописывай ему рабочий каталог...и хоть обзапускайся. |
|||
14
Ёпрст
гуру
13.03.09
✎
15:46
|
+13 тем более, что по оле ты один хрен делаешь тоже самое - т.е указываешь юзверя!
:) |
|||
15
Новичок
13.03.09
✎
15:55
|
с 12 и 13 - можно долго объяснять. Предлагаю вернуться к решению проблемы, рано или поздно все с ней столкнемся.
|
|||
16
Valery
13.03.09
✎
15:55
|
(10) Так может ругается на смену дат? Тогда поставить "не изменять"
|
|||
17
Новичок
13.03.09
✎
15:56
|
Нет на смену дат не ругается. Проверял днем тоже самое: Сервер занят.
|
|||
18
Ёпрст
гуру
13.03.09
✎
15:56
|
(15) оптимизировать отчет, не запускать его по оле..
|
|||
19
Valery
13.03.09
✎
15:57
|
(18) Так посмотри на что ругается?
|
|||
20
Новичок
13.03.09
✎
15:59
|
Ошибки то нет. Когда нажмешь кнопку Переключиться, то 1С закрывается - и все в порядке.
Может кто знает как сделать прогу, чтобы без участия Пользователя нажималась кнопка Переключиться. |
|||
21
Ёпрст
гуру
13.03.09
✎
16:00
|
(20) скриптом нажимать через сендкей, например.. только лучше вообще отказаться от оле.
|
|||
22
Новичок
13.03.09
✎
16:03
|
Не могли бы Вы привести пример скрипта, а то я не силен в программировании. Только в 1с балуюсь.
|
|||
23
Torquader
13.03.09
✎
21:23
|
Если любой OLE-сервер долго не отвечает на запрос, его вызвавший (долго, это более 2 минут - настраивается где-то в реестр - говорят, что можно сделать 30 дней, так как параметр в миллисекундах, но я его так и не нашёл).
Если время ответа истекло (а 1С в это время формирует запрос), то подсистема OLE возвращает ошибку, что сервер не отвечает. Заставить сервер отвечать можно только путём разбития запроса на части, которые выполняются меньше 2 минут, но это сильно сказывается на производительности. Если у вас "клюшкодром", то всё можно сделать без ОЛЕ - просто запустить базу под определённым пользователем, чтобы она открыла окно (желательно с интерфейсом, из которого ничего нельзя сделать), а потом по DDE "пихнуть" ей команду "ОткрытьФормуМодально( ... и т.д. В этой форме последним действием должно быть сохранение результата в файл и создание специального файла-флага, который из запустившего приложения мы будем отслеживать в фоновом режиме, если случиться что-то страшное (Какая-то ошибка), то надо написать модуль выполнения отчёта так, чтобы он в файл-флаг складывал сообщение об ошибке. Удачи. |
|||
24
Cthulhu
14.03.09
✎
00:57
|
(23): см.(5), нигде это не настраивается...
(15): сталкивание с проблемой приводит к отказу от оли в случаях таймаутов, а практика показывает что случаев когда это (отказ от оли и достижение нужной цели без не1) нужно - это всегда возможно.. после такого сталкивания рецидивов не возникает. |
|||
25
timgan
14.03.09
✎
07:17
|
Кстати официальный ответ 1с:
При использовании работы ИБ через OLE выдается сообщение: "Действие не может быть завершено, так как другая программа занята. (сервер занят) Для перехода к этой программе воспользуйтесь кнопкой "Переключиться"." Время до появления диалога "зашито" в 1С:Предприятие и не может быть изменено из встроенного языка или внешними средствами. Однако согласно документации Микрософт данное сообщение появляется только в случае, если пользователь использовал кливиатуру или мышь во время работы OLE-сервера - поэтому можно посоветовать после запуска обработки дождаться ее завершения, и лишь затем продолжить работу. |
|||
26
timgan
14.03.09
✎
07:18
|
Если задачи происходят ночью, кто интересно дергает клавиатуру и мышь!
|
|||
27
kvk
14.03.09
✎
13:06
|
(20) Вот вариант: http://infostart.ru/projects/645/
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |