Каталог решений - Легкие способы отключения пользователей

Легкие способы отключения пользователей

Легкие способы отключения пользователей

В наличии

Много чего написано по отключению пользователей в базах 1С 8, Я хочу в этой статье изложить те способы, которые использую на производстве, и те которые не отнимают много времени в настройке

Категория:

Описание

 

1. Отключение пользователей в файловой версии 1С 8.

Для отключение пользователей в файловой версии Я создал *.bat файл с одной строчкой

net session /delete /y

Он отключает все открытые общие файлы на компьютере на котором лежит база.
Далее создал задание (Планировщик заданий Windows), который бы запускал этот файл в назначенное время.
Вы спросите а как же те сеансы которые открыты на компьютере , Я их тоже устранил создав новый *.bat файл со строкой

taskkill /IM 1cv8.exe /f
правда он отключает все запущенные 1С на текущим компьютере , но для меня это не было так страшно так как архивация производилась в ночное время и уже никто не работал в базе, этот батник тоже можно добавить в Планировщик Windows.

Так же по taskkill можете почитать в других источниках , есть возможности отключать процессы в отдельных сеансах

2. Отключение пользователей в клиент-серверной базе.

Так же как и в случае файловой базы Я использовал *.bat файлы.
Создал два *.bat файла , первый отключает сервер 1С предприятие, второй его включает очень просто .

Содержание первого файла :

net stop «1C:Enterprise 8.2 Server Agent»

Содержание второго файла :

net start «1C:Enterprise 8.2 Server Agent»

Добавил два новых задания в планировщик Windows , с разницой во времени 15 минут для того чтобы все зависшие пользователи смогли отключиться, эти действия анологичны Запуск сервера 1С Предприятие и Остановка сервера 1С Предприятие

3. Программный способ отключения пользователей в 1С

Стояла задача выполнять архивацию ежеденевно в 22:30.
В этом способе Я не стал заморачиваться, создал новую роль «НеЗакрывать1С».
Создал новую процедуру в модуле обычного приложения :

Процедура ЗавершениеРаботыПользователей() Экспорт

      Если НЕ РольДоступна("НеЗакрывать1С") Тогда

             Если Час(моп_ВыполнениеОперацийНаСервере.ТекущаяДатаНаСервере()) >= 22 Тогда // получаю врмемя на сервере    

                     ПрекратитьРаботуСистемы(Ложь);

             КонецЕсли;

      КонецЕсли;

КонецПроцедуры

 

Добавил в процедуру ПриНачалеРаботыСистемы() тоже самое и подключил обработчик ожидания :

 

Если НЕ РольДоступна("НеЗакрывать1С") Тогда

    Если Час(моп_ВыполнениеОперацийНаСервере.ТекущаяДатаНаСервере()) >= 22 Тогда // получаю врмемя на сервере

        ПрекратитьРаботуСистемы(Ложь);

    КонецЕсли;

КонецЕсли; 

 

 ПодключитьОбработчикОжидания("ЗавершениеРаботыПользователей", "600");

 

Функция текущая дата на сервере выглядит так :

 

Функция ТекущаяДатаНаСервере() Экспорт

    Возврат ТекущаяДата();

КонецФункции

 

Таким образом мы получаем дату на сервере , в случае если в свойствах общего модуля установлена галочка «Сервер», я поставил только её.

Получается текущий код отрубает пользователей на два часа , но обычно после полночи уже никто не заходит в базу.

Если кому-то помогла эта статья буду очень рад.


has been added to your cart:
Оформление заказа