Правильное закрытие соединения с базой 1с по OLE #94263


#0 by AleK
Нужно ли каким-либо образом закрывать сеанс работы через OLE?Flag = v77.Initialize(v77.RMTrade,"/Dкаталог /Nпользователь /Pпароль","NO_SPLASH_SHOW")При выходе из обработки или процедуры сеанса, а также в ловушках исключительной ситуации данная переменная v77 приравнивается к нулю. Однако иногда, кода метод v77.Initialize не может создать сеанс с базой, по какой то причине, в данной базе, к которой пытались подсоединиться, остается висеть сеанс данного пользователя (от OLE сенса, который как бы и не создался). И чтобы его убрать, приходится перегрузить компьютер или перерегистрироваться в сети.
#1 by Сюзанна
Чтобы снять зависший сеанс необязательно перезагружаться. Если это сервер, закрой эту сессию, если на локальной машине - сними процесс.
#2 by andrew
мало очистить переменную - надо, чтобы модуль 1С, в котором определена переменная, закрылся.Если переменная определена в обработке - когда закроется форма обработки. Если переменная глобальная - когда закроется вызывающая 1С
#3 by AleK
Переменная определена в модуле обработки, и при ее закрытии и даже закрытии всех сеансов 1с, тот зависший процесс не закрывается. База на удаленном компьютере (складе) под dbf. Именно только перерегистрация в сети помогает или перезагрузка. А удаленно снять процесс (какой?) на этом удаленном компьютере не мешая пользователю работать возможно?
#4 by Frog
БазаОле.ExecuteBatch("ЗавершитьРаботуСистемы");А вот так закрывается ;-)
#5 by smaharbA
taskkill /?tskill /?
#6 by AleK
Нельзя ли подробнее? В моем случае это будет выглядеть так?:V77.ExecuteBatch("ЗавершитьРаботуСистемы");Это закрытие нормально открытого сеанса, а если v77.Initialize(...) вывалилась, то тогда что закрывать?Подробнее прочитать, где искать? В хелпе 1с нет.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С