Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как удалить файлы кильнутых пользователей 1С (число прочтений - 2442 )
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Как удалить файлы кильнутых пользователей 1С
19. Сентября 2008 :: 13:27
Печать  
Проблема в следущем.

Есть копия базы 1С, которая ежедневно обновляется из бэкапа джобом ночью.
Когда нерадивые пользователи забывают закрыть 1С, джоб закрывает их сессии в скуле при помощи alter database <DB> set single_user with rollback immediate
Но у них остаются открытыми временные файлы сеанса 1С в каталоге БД.
(они видны в режиме управления компьютером в общих папках)

А есть ли возможность поудалять эти файлы из джоба?
Или же как-то закрыть сеанс (по аналогии закрывания сеанса ч/з Управление компьютером - Общие папки - Сеансы - правый клик на юзвере - закрыть сеанс), только средствами скуля?

Никто этим не заморачивался?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Как удалить файлы кильнутых пользователей 1С
Ответ #1 - 19. Сентября 2008 :: 14:26
Печать  
для файлов надо расшарить и снова зашарить папку с базой данных.
Для удаления sql процессов пишешь сприпт. Можно на основе
sp_who2 и удаляешь 1с процессы.
Например ТЗ = rc.ВыполнитьИнструкцию("sp_who2");
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Как удалить файлы кильнутых пользователей 1С
Ответ #2 - 22. Сентября 2008 :: 07:23
Печать  
имхо, если есть возможность, то проще написать свою процедуру закрытия 1С, ориентированную на некую константу, и запускать ее по таймеру и в итоге 1С будет закрыта штатным способом.
  
Наверх
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: Как удалить файлы кильнутых пользователей 1С
Ответ #3 - 25. Сентября 2008 :: 08:02
Печать  
villy писал(а) 22. Сентября 2008 :: 07:23:
имхо, если есть возможность, то проще написать свою процедуру закрытия 1С, ориентированную на некую константу, и запускать ее по таймеру и в итоге 1С будет закрыта штатным способом.


в принципе такая возможность уже реализована для выгоняния при открытии периода и обновлении конфы. Останется написать процедурину для Робота, которая будет устанавливать нужную константу в определенное время и завершать 1С. А юзвери через 3мин отвалятся (так прописано в константе).

Благодарю за хорошую идею, а то я уже и скрипт написал для завершения сессий. Но так намного удобнее.
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: Как удалить файлы кильнутых пользователей 1С
Ответ #4 - 25. Сентября 2008 :: 08:04
Печать  
Z1 писал(а) 19. Сентября 2008 :: 14:26:
Для удаления sql процессов пишешь сприпт.


В принципе, скульные процессы все умирают при выполнении:
alter database <DB> set single_user with rollback immediate
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: Как удалить файлы кильнутых пользователей 1С
Ответ #5 - 25. Сентября 2008 :: 11:24
Печать  
решение готово. Добавил в джоб следующий код первым шагом джоба:
Код
Выбрать все
DECLARE @usr int
Select @usr = COUNT(*) from master..sysprocesses where dbid=DB_ID('TorgSB')
IF @usr > 0
BEGIN
  UPDATE TorgSB.._1SCONST
	SET VALUE = '1'
	Where ID = 6669 AND OBJID = '     0   '
  WAITFOR DELAY '00:04:0'
END 



который устанавливает нужную мне константу в 1 и ждет 4 минуты (минута про запас) и после этого спокойно восстанавливает базу из бэкапа.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать