#0
by Alter72
Цепляюсь из v8 к v7: БазаОЛЕ = COMObject("V77.Application", "servername") Соответственно семерка запускается и работает на компе servername Все подключается и работает прекрасно. Внимание вопрос: как завершить соединение чтобы семерка закрылась? На локальном соединении прокатывает присвоение БазаОЛЕ = "", но при запуске на серваке процесс семерки остается висеть после этого.
#2
by Alter72
БазаОЛЕ . завершениеработысистемы на такое говорит "неизвестный метод". а если вызывать через БазаОЛЕ.EvalExpr("завершениеработысистемы") Говорит "исключение, попытка вызвать процедуру как функцию"
#5
by НЕА123
+ в смысле EvalExpr(то бишь Вычислить) должно что-то возвращать, а Выполнить не обязательно.
#7
by Alter72
ну "Выполнить" это вы сами придумали. 7ка такого не знает ;) Чтобы не править конфу сделали внешнюю обработку для 7ки с завершением работы при открытии. Если запускать эту обработку руками, все прекрасно закрывается. При запуске через ОЛЕ удивительным образом продолжает работать дальше! Причем в отладчике 7ки видно что в обработку заходит и ЗавершитьРаботуСистемы выполняет! Полтергейст... Причем не могу даже обоснования такому поведению придумать.
#9
by Alter72
если руками запускать обработку закрытия, то ниче не спрашивает. А че там происходит когда запущена через ОЛЮ неизвестно - окошко-то не появляется.
#11
by Alter72
[code]БазаОле.ЗавершитьРаботуСистемы;[/code] Выполняет без ошибки, но Оле база кладет на такие завершения - как был сеанс пользователя запущен, так и остается висеть, блокируя повторные подключения под ним.
#12
by Irbis
Бывает диалог подтверждения выхода вызывается. Не знаю почему, но бывает процесс висит пока форму, из которой запустили ОЛЕ, не закроешь. Как с этим бороться хз.
#15
by Torquader
Вообще-то, завершением OLE-серверов ведает определённый сервис в системе, и он должен удалять объекты из памяти после того, как на них не осталось ни одной ссылки. Поэтому надо и БазаОле=0 и сбросить все дочерние переменные, так как некоторые из них просто подвешивают процесс. Вариант №2 - создавать на сервере не семёрку, а другое приложение, которое может вызвать семёрку через OLE, тогда семёрку можно будеть успешно завершить присвоением Семёрка=0, а это "несчастное" приложение может ожидать следующего запроса или его можно тупо "прибить" через WMI.
#16
by Alter72
А по подробнее: че за сервис? где он выполняется (на клиенте откуда инициирую OLE-соединение, или на сервере где запускается OLE-приложение)? Первый раз такое слышу: это собственные предположения или документированно (ссылку)? по Варианту 2: ...и реализовать в этом приложении обертки для вызовов всех методов 7ки??
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как завершить сеанс 1с (закрыть программу)
- Как корректно завершить COM соединение?
- Подскажите чайнику ... Что такое в запросах Левое соединение, полное соединение
- Корректно завершить работу 1С v7.7 в C#
- Ошибка при выполнении модуля. Завершить работу системы?
- Соединение 8.3 и 8.2 через COM соединение.....
- Левое соединение с регистром сведений. Соединение по ресурсу.
В этой группе 1С
- Интерфейс кассира и закрытие смены
- ЗиК. Табель не формируется.
- Что-то не получается сделать элемент на панели недоступным...
- Найти похожие характеристики
- Как получить Уникальный Идентификатор для записи в регистре сведений
- БП Начисление зарплаты на 97 счет
- После установки SP2 не загружается server 2003
- Как лучше проверить все элементы на незаполненость
- проблема приема почты 1ской, отправленной с Mozilla Thunderbird
- Как скопировать табличную часть документа!
- v7: Как в журнале операций отключить просмотр проводок?
- Как запустить *.bat файл из 1с v77?
- Динамический DSN
- Выгрузка из 1С:8.1 УПП в "Возмещение НДС: Налогоплательщик"
- Структура таблицы Params в SQL? Подскажите.
- Не могу подключить "GflAx.dll"
- УТ 10.3 Контроль за ценообразованием. Вопрос пользователя.
- Макеты оформления (СКД)
- Учет в одной базе 1С по нескольким фирмам
- Запрос ВСпискеПоИерархии?