![]() |
![]() |
![]() |
|
V8 Как корректно разогнать юзеров? | ☑ | ||
---|---|---|---|---|
0
Shurjk
13.10.05
✎
05:28
|
Для резервного копирования базы, пытаюсь сначала разогнать юзеров процедурой
Коннектор = Новый COMОбъект("V8.COMConnector"); Сервер = Коннектор.ConnectServer("server"); Сервер.AddAuthentication("Login","password"); ИнформационнаяБаза = Сервер.CreateInfoBaseInfo(); ИнформационнаяБаза.Name = "1c"; СоединенияБазы = Сервер.GetIBConnections(ИнформационнаяБаза); Для Каждого Соединение Из СоединенияБазы Цикл Сервер.Disconnect(Соединение); КонецЦикла; После него запускается задача которая выгружает ИБ. Прихожу утром и вижу что задача выгрузки пишет "Ошибка исключительной блокировки информационной базы. Возможно, информационная база используется другой задачей. ". Хотя видно что работающих пользователей на этот момент не осталось. Как корректно разогнать юзеров? |
|||
1
Морозов Александр
13.10.05
✎
05:52
|
А вот на 7.7 не надо выгонять юзверей оно и так копируется (кроме файла CLK) - переходите на 7.7 :-)
|
|||
2
Shurjk
13.10.05
✎
05:58
|
(1) слишком трудоемкое решение хотелось бы чего нибудь попроще:)
|
|||
3
427
13.10.05
✎
06:13
|
во (0) юзеры то навесят этих самых... особенно когда потеряется незаписанный док строчек на 100
|
|||
4
Shurjk
13.10.05
✎
06:21
|
(3) Это происходит по ночам, в рабочее время можно обойтись корректными методами
|
|||
5
Морозов Александр
13.10.05
✎
06:24
|
(4) А что и ночью они у вас работают? Негры что-ли?
|
|||
6
Shurjk
13.10.05
✎
06:26
|
Как раз ночью некто и не работает, я тоже не работаю, для того и хочу чтоб база всегда выгружалась, а не только тогда когда все корректно вышли из системы
|
|||
7
Морозов Александр
13.10.05
✎
06:32
|
А нельзя чтоб 8 самая закрывалась например в 21-00 ?
|
|||
8
Shurjk
13.10.05
✎
06:33
|
а как это сделать?
|
|||
9
Морозов Александр
13.10.05
✎
06:43
|
Оповестить (Notify)
Синтаксис: Оповестить(<Имя события> , <Параметр> , <Источник>) Параметры: <Имя события> - Необязательный Тип: Строка. Имя события. Может быть использовано для идентификации сообщений принимающими их формами. <Параметр> - Необязательный Тип: Произвольный. Параметр сообщения. Могут быть переданы любые необходимые данные. <Источник>_- Необязательный Тип: Произвольный. Источник события. Например, в качестве источника может быть указана другая форма. Описание: Посылает оповещение всем открытым формам. Если для формы задана процедура-обработчик события ОбработкаОповещения, то она будет запущена, в процедуру будут переданы указанные параметры. Данный механизм может, например, применяться для организации обмена сообщениями между открытыми формами. Пример: Оповестить("ЗакрытьФорму", ЭтаФорма); |
|||
10
fabrikant
13.10.05
✎
06:46
|
(9) По моему, не в ту степь.
|
|||
11
Морозов Александр
13.10.05
✎
06:51
|
А как в 8 получить системное время?
|
|||
12
Shurjk
13.10.05
✎
07:00
|
(9) Мне тоже так какжется...
|
|||
13
Волшебник
модератор
13.10.05
✎
07:09
|
Лично мне кажется, что COM-соединение - это тоже соединение.
|
|||
14
Shurjk
13.10.05
✎
07:11
|
(13)но по идеи он и его тоже должен закрыть
|
|||
15
Волшебник
модератор
13.10.05
✎
07:15
|
(14) Но не обязательно COM-соединение окажется последним...
|
|||
16
Shurjk
13.10.05
✎
07:18
|
(14)На этот случай я после процедуры дописал ЗавершитьРаботуСистемы()
|
|||
17
Морозов Александр
13.10.05
✎
07:20
|
(10,12) Это я про то что сказал Петя - можут быть не записаны открытые или новые документы.
Может и глупость но мне кажется так: Процедура ВыйтиИз1С() СистемнаяДата= // вот тут надо получить системное время Если (СистемноеВремя= "21.00") или (СистемноеВремя>"21.00") Тогда Оповестить("закрываемся"); ЗавершитьРаботуСистемы (Лож); КонецЕсли; КоенецПроцедуры; ... ... ПодключитьОбработчикОжидания("ВыйтиИз1С",3600); |
|||
18
Волшебник
модератор
13.10.05
✎
07:32
|
(16) Я к тому, что ты можешь отключить себя и уже больше не можешь отключать других. А в базе остаются пользователи.
|
|||
19
Ковычки
13.10.05
✎
07:35
|
(18) Ты это брось, так логически-логически рассуждать, человек догадается и так как в (0) делать небудет... ;)
|
|||
20
Ковычки
13.10.05
✎
07:36
|
+(19) Так и шиеномания у (0) разовьется ;)
|
|||
21
Shurjk
13.10.05
✎
08:17
|
(18) А как лучше сделать?
|
|||
22
Shurjk
13.10.05
✎
09:04
|
Неужели никто не знает как? Ведь все у себя эту проблему решали
|
|||
23
Волшебник
модератор
13.10.05
✎
09:07
|
(22) Отсортируй соединения и закрывай собственное соединение последним.
|
|||
24
Шнобельсдорф
13.10.05
✎
09:10
|
(21)
connections = server.GetIBConnections(ibDesc) Dim i Dim connection For i = LBound(connections) To UBound(connections) set connection = connections(i) mHostName(i) = connection.HostName mUserName(i) = connection.UserName Next у соединения есть HostName и UserName, можешь по ним условия ставить |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |