edinorog
@edinorog
Троллей не кормить!

Есть скрипт для мягкого отрубания юзверей от БД 1с в файловом варианте?

в сетевом хранилище лежит БД. к сожалению не удается дисциплинировать юзверей выходить из базы в нужное время. нужно отрубать их на время пока делается резервная копия. а лазить каждый раз руками не автоматизировано получается. идеи есть?
  • Вопрос задан
  • 951 просмотр
Решения вопроса 2
Jump
@Jump Куратор тега Системное администрирование
Системный администратор со стажем.
Нет. Точнее они конечно есть, но результат их работы примерно такой же как выдергивание сетевого шнура из файлопомойки.

И самое главное зачем? Ну оставили базу висеть - вам то какая разница?

Единственный нормальный вариант это добавление в конфигурацию обработки которая будет запускаться через определенные интервалы времени и проверять нет ли команды на принудительное завершение работы.
Ответ написан
eapeap
@eapeap
Сисадмин, Беларусь
Есть Effector Saver - по расписанию архивирует 1С базы, перед этим отрубает Юзеров. Главное - может с SQL работать, но с файловыми тоже, естественно, может.
Файловую 1С можно тупо архивировать Акронисом Тру Имидж Сервер с включенными опциями для БД - Теневые копии и снимок нескольких дисков, и никого не выгонять.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Лучше всего программно в 1С через БлокировкаСеансов (SessionsLock).
SessionsLock = New SessionsLock;
SessionsLock.Begin = DateTimeSessionLockFrom;
SessionsLock.End = DateTimeSessionLockTill;
SessionsLock.Message = "База архивируется";
SessionsLock.Use = True;
SessionsLock.KeyCode = "KeyForAdmin";    
SetSessionsLock(SessionsLock);


Для файловой базы в каталоге после выполнения указанного кода появится файл 1cv8.cdn (в имени точно не уверен). В принципе можно этот файл формировать и подкладывать самостоятельно.
Ответ написан
Комментировать
@mr_alex
Начинающий Front-End разработчик
Скрипт архивации 7z:
@Echo Off 
echo %date% %time% ***Start*** 
SetLocal EnableDelayedExpansion 
Set $SRC=list_add.txt 
Set $EXC=list_excl.txt 
Set $DST=F:\Archive1c 
Set $PSW=password 
Set $COMPR=1 
Set $COPIES=20 
C:\"Program Files"\7-Zip\7z.exe a -t7z -mhe=on "%$DST%\files%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%.7z" @%$SRC% -scsWIN -p%$PSW% -mx=%$COMPR% -ssw -xr@%$EXC% >> log_7z.log 
For /F "Delims=" %%i In ('DIR /B/O:-N %$DST%\files????-??-??_??-??-??.7z') Do ( 
Set /A $COPIES-=1 
If !$COPIES! LSS 0 DEL "%$DST%\%%i" 
) 
echo %date% %time% ***End*** 
xcopy f:\Archive1c\*.* \\na\arсhive\ /h /e /r /y /D

list_add.txt содержимое
D:\1C_Base\1C_81\TDment\ 
d:\1C_Base\1C_82\TDment20\ 
D:\1C_Base\KaminZPment\ZPL2\

list_excl.txt содержимое
cdx
Затем можно задать переиндексацию.
TS, если БД файловая то пользователи сидят через РДП, то есть задай отключать сеанс в полночь и начинай архивацию, а после переиндексация ИБ.
forum.infostart.ru/forum16/topic83796
Ответ написан
Комментировать
@klis
Из вне никак. В конфигурациях времен УТ 10.х был реализован механизм завершения работы пользователей на прикладном уровне (т.е. на уровне конкретной конфигурации). В последних релизах, его, насколько мне известно, зачем-то выдрали. Но реализовать что-то подобное достаточно просто.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы