Корректно завершить работу 1С v7.7 в C# #374593


#0 by Voffka
Делаю: Закрываю так: Но когда открывается 1С после такого кода, она восстанавливает индексы, тоесть что то не корректно закрылось. Как коректно завершить работу 1Ски?
#1 by Shadd
Если подключаешься к СОМ -объекту- надо от него отключится- потом завершать, думаю так
#2 by Fragster
v7.ЗавершитьРаботу, или как-то так - см. СП
#3 by Voffka
Вот это отключает Marshal.ReleaseComObject(v7); Вот это отчишает вот это завершает
#4 by Voffka
как я думал
#5 by Shadd
можно вопрос не по сабжу? а на куя тебе вообще нужно 1С через С# запускать?
#6 by Voffka
есть приложение написанное на шарпе, которое конектиться к 1С и выгребает то что нужно.
#7 by Voffka
делаю запрос на шарпе, он отрабатывает нормально, данные получил, а вот закрыть 1С не получается.
#8 by Shadd
а ты напрямую коннектишься к базе? запускаешь её ил лезешь в dbf?
#9 by чувак
Убей процесс прямо :))
#10 by Fragster
от отсутствия переиндексации это не спасет
#11 by Voffka
Напрямую. запускаю, и выполняю в шарпе одинэсовский запрос. в дбф не лезу.
#12 by Voffka
Пробовал, убивать процесс - в правельно говорит
#13 by чувак
Если скульный, то почему бы нет?
#14 by Voffka
база пока дбф, но планируется её потом на скуль перенести.
#15 by Fragster
а вот пока не перевели -
#16 by Voffka
вот все что там делаю. object query = a1c.InvokeMethod(a1c.v7, "CreateObject", new object[] { "Запрос" });            {                    );            }
#17 by Voffka
я не смог сделать , ошибка лезет
#18 by Fragster
a1c.InvokeMethod(a1c.v7, "ExecuteBatch", new object[] { "ЗавершитьРаботуСистемы" }); перед диспозом вставь
#19 by Fragster
и отпишись о результатах ;)
#20 by H A D G E H O G s
#21 by Fragster
Типа query = ""; но для строгой типизации...
#22 by Voffka
Не так быстро, у меня идет восстановление инд....
#23 by H A D G E H O G s
Ох уж мне этот С шарп. Берите Дельфи, там вы можете сами числом ссылок управлять, а не заниматься коллекционированием мусора.
#24 by Voffka
Освобождает выделеный объект, он COM поэтому его надо грохнуть
#25 by H A D G E H O G s
а не заниматься коллекционированием мусора -> и не заниматься коллекционированием мусора с неизвестным результатом.
#26 by Fragster
да на самом деле если сработает (вроде должно,  потому как  v7.ExecuteBatch("ЗавершитьРаботуСистемы"); V7 = 0; работает) - то все ссылки сразу станут неверными, и их очистка не нужна будет...
#27 by Voffka
a1c.InvokeMethod(a1c.v7, "ExecuteBatch", new object[] { "ЗавершитьРаботуСистемы" });  типо прокатило, но 1с висит.
#28 by Fragster
ты диспоуз убрал, чтоли?
#29 by Fragster
а еще в типовых есть фишка - спрашивать перед выходом - так вот, она 30 предупреждает о выходе - ее надо убрать
#30 by Voffka
Типо просто в настройках 1Ски? "не спрашивать при выходе"?
#31 by Jolly Roger
Marshal.FinalReleaseComObject
#32 by Voffka
Убрал в настройках пердупреждение о выходе, заработало, сцуко.
#33 by Fragster
Ave мне (с)
#34 by DrZombi
А попробовать передать обратиться к функции.... типо... И все... 1С закрылось сама, и ненать ее просить :) Соответственно надо будет писать Завершение работы системы на Английском ;)
#35 by DrZombi
Неуспел :)... конец... Пятница блин...
#36 by Voffka
Хватит работать, домой собирайся уже.  :)
#37 by DrZombi
еще 10 мин
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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