Имя: Пароль:
1C
 
Как отключиться от 7.7
0 Artemyyy
 
09.10.07
09:41
V77 = Новый COMОбъект("V77.Application");
   Состояние("Выполняется соединение с информационной базой 1С:Предприятие 7.7.");
   Результат = V77.Initialize(V77.RMTrade,"/D"+КаталогБД+" /N Администратор /P Админ","NO_SPLASH_SHOW");
   Если Не Результат Тогда
       Сообщить("Не удалось установить соединение с базой данных 1С:Предприятие 7.7.",СтатусСообщения.ОченьВажное);
       Возврат;
   КонецЕсли;

в итоге в процессах висит 7-ка. ее приходится вырубать из диспетчера, а иногда даже и переиндексировать

V77=""; не помогает

может в чем ошибочка? подскажите плиз
1 Кроха
 
09.10.07
09:51
V77.ExitSystem(1) попробуй
2 Artemyyy
 
09.10.07
09:53
не работает
3 Кроха
 
09.10.07
09:56
а она вообще подключается?
4 Artemyyy
 
09.10.07
09:58
V77.ExitSystem(1), хоть V77.ExitSystem(0) - не выгружает из системы и все тут
5 Artemyyy
 
09.10.07
09:59
подключается - данные забирает
6 Кроха
 
09.10.07
10:01
а попробуй без NO_SPLASH_SHOW
7 Artemyyy
 
09.10.07
10:06
не помогло и на этот раз
8 Zaval
 
09.10.07
10:07
(0) Попробуй его в = НУЛЛ превратить. А ваще при корректном закрытии формы, породившей В77 все нормально отключается. А вот если перезапустить отладку - ...(6) Ноу сплэш ни при чем...
9 Artemyyy
 
09.10.07
10:12
при закрытии отладки процесс 7-ки понятно отваливается, но мне надо несколько раз в процессе жизни отладки подключаться к 7-ке
10 Стальная Крыса
 
09.10.07
10:14
(0) еще бы неплохо озвучить ОС. :)
11 Artemyyy
 
09.10.07
10:16
V77=NULL; безрезультатно
ОС- Хрюшка профессиональная 2СП
12 Стальная Крыса
 
09.10.07
10:17
(9) мда... как же все это "отвалится" если идет процесс отладки и прога просто "висит"...
13 Artemyyy
 
09.10.07
10:19
да даже если и просто запустить предприятие - все-равно не отваливается. надо ж его как-то "отвалить"
14 Стальная Крыса
 
09.10.07
10:21
на "отвал" требуется некоторое время время.
попробуй немного подождать, только без отладки.
15 Стальная Крыса
 
09.10.07
10:21
да...
может у нее вопрос висит "о завершении работы" ?  :)
16 Artemyyy
 
09.10.07
10:23
поправка ! - при том, что написано в (0) - соединение отваливается - а если дополнить
СпрСотрудники = V77.CreateObject("Справочник.Сотрудники");
и либо забирать данные оттуда - или просто создавать этот объект - как раз после этого 7-ка и не отваливается
17 Стальная Крыса
 
09.10.07
10:26
ждет пока будет освобожден СпрСотрудники !
18 Zaval
 
09.10.07
10:26
(9) Давай! Возьми базу дбфную гигов на 5, подключись, а потом перезапусти остановленную отладку, не закрывая предприятия...:) помотрим, что у кого отвалится...
(0) где у тебя енто написано?
19 Artemyyy
 
09.10.07
10:28
да - разобрался
нужно освободить сотрудника СпрСотрудники=""
далее все отваливается успешно
Спасибо всем! Пока все работает
20 vde69
 
09.10.07
11:01
// функция устанавливает связь с 1с 7.7
// в качестве параметра требуеться элемент справочника ВнешниеБазы
// в случае удачи возвращает обьект, в случае не удачи - неопределено
Функция v77_УстановитьСвязь (ВнешняяБаза)Экспорт
   Результат = Неопределено;
   #Если Клиент Тогда
       Состояние("Идет установка связи, ждите.....");
   #КонецЕсли
   
   Попытка
       СтрокаСоединения = ВнешняяБаза.ПолучитьОбъект().ПолучитьСтрокуСоединения(ПараметрыСеанса.ТестовыйРежим);
   Исключение
       #Если Клиент Тогда
           Сообщить("Ошибка получения строки соединения");
       #КонецЕсли
       Возврат Неопределено;
   КонецПопытки;
   
   BaseOLE = Неопределено;
   Попытка
       // сначало пробуем как файловый вариант
       BaseOLE = Новый COMОбъект("v77.Application");
   Исключение
       BaseOLE = Неопределено;
   КонецПопытки;
       
   Если BaseOLE = Неопределено Тогда
       Попытка
           // теперь пробуем скульный вариант
           BaseOLE = Новый COMОбъект("v77s.Application");
       Исключение
           BaseOLE = Неопределено;
       КонецПопытки;
   КонецЕсли;

   Если BaseOLE = Неопределено Тогда
       #Если Клиент Тогда
           Сообщить("Ошибка создания обьекта v77.Application, и v77s.Application, установите 1с 7.7 на этот компьютер");
       #КонецЕсли
   Иначе
       Если BaseOLE.Initialize(BaseOLE.RMTrade, СтрокаСоединения, "NO_SPLASH_SHOW") = 0 Тогда
           #Если Клиент Тогда
               Сообщить("Ошибка подключения, проверьте параметры подключения. Возможно база открыта монопольно, или требуеться переиндексация");
           #КонецЕсли
       Иначе
           Результат = BaseOLE;
       КонецЕсли;
   КонецЕсли;
   
   Возврат Результат;
КонецФункции

// функция разрывает связь с 1с 7.7
// в качестве параметра требуеться СомОбьект базы
Процедура v77_РазорватьСвязь (BaseOLE) Экспорт
   Попытка
       BaseOLE.ExecuteBatch("ЗавершитьРаботуСистемы(0)");
   Исключение
       Сообщить("Ошибка закрытия процесса 1с 7.7")
   КонецПопытки;
   
   BaseOLE = 0;    
КонецПроцедуры
21 Кроха
 
09.10.07
11:28
(8) эта чтобы посмотреть....
22 Sashi
 
09.10.07
13:35
(0) а если так:
V77 = Неопределено;
23 vde69
 
09.10.07
13:38
(22) самый правильный способ

BaseOLE.ExecuteBatch("ЗавершитьРаботуСистемы(0)");
24 Sashi
 
09.10.07
13:47
(23) не знаю, у меня (22) работает без проблем
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn