gifts2017

Принудительное завершение работы пользователей информационной базы (файловый вариант)

Опубликовал Дмитрий Иванов (dmitrii665) в раздел Администрирование - Системное

Данная доработка позволяет программисту принудительно завершать работу пользователей ИБ в файловом режиме работы 1С

   Часто в работе программиста когда база работает в файловом варианте ( клиент-серверный вариант не берем там это возможно стандартными механизмами) возникает необходимость завершить работу некоторых пользователей которые например забыли выйти из программы.

 Доработка дает возможность принудительно выгонять выбранных нами пользователей в указанную дату и время.

описание доработки:

1. Добавляем в План видов характеристик "ПраваПользователей" в предопределенные данные новый элемент "ЗавершатьРаботуПользователя" тип Булево. Эта настройка появится по каждому пользователю в "настройке дополнительных прав" с помощью этой настройки будем указывать необходимость завершения работы.

2. Добавляем константу "ДатаЗавершенияРаботы" тип Дата состав: Дата + время. В эту константу будем записывать когда необходимо завершить работу.

3. В модуль "Модуль обычного приложения" в процедуру "ПриНачалеРаботыСистемы" добавляем текст

  //Проверяем необходимо ли завершать работу этого пользователя

   ЗавершатьРаботу = УправлениеПользователями.ПолучитьЗначениеПраваДляТекущегоПользователя      (ПланыВидовХарактеристик.ПраваПользователей.ЗавершатьРаботуПользователя,Неопределено);

   Если ЗавершатьРаботу.Количество() = 0 Тогда
          ВариантЗавершения = ложь; 
   Иначе
          ВариантЗавершения = ЗавершатьРаботу[0].Значение;
   КонецЕсли;

   Если ВариантЗавершения Тогда
          ПодключитьОбработчикОжидания("ЗавершениеРаботыПользователей",30); 
   КонецЕсли;

 

 4. Добавляем процедуру

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

          ДатаЗавершения = Константы.ДатаЗавершенияРаботы.Получить();
          Если ЗначениеЗаполнено(ДатаЗавершения) Тогда
                  Если НачалоДня(ДатаЗавершения) = НачалоДня(ТекущаяДата()) Тогда 
                         Если (Час(ТекущаяДата()))=(Час(ДатаЗавершения)) Тогда 
                                 ПрекратитьРаботуСистемы();
                         КонецЕсли;
                  КонецЕсли;
          КонецЕсли;

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

 

5. Качаем прикрепленную внешнюю обработку для установки даты и времени завершения работы.

Скачать файлы

Наименование Файл Версия Размер
Установка даты завершения работы.epf 177
.epf 6,16Kb
13.11.12
177
.epf 6,16Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Александр Капустин (kapustinag) 13.11.12 20:07
А имеющаяся в типовой УТ функция "Блокировка установки соединений с информационной базой" разве не делает уже именно то, что Вы написали? С единственным отличием: она выгоняет всех.
2. Артем Боровлев (borrman) 14.11.12 01:19
(1) kapustinag, А она работает для файлового варианта?
3. Алексей Ситников (SiAl) 14.11.12 03:10
4. креек фелер (GoodWinSpr) 14.11.12 06:24
5. Анатолий Бычин (tolyan_ekb) 14.11.12 07:12
Очередной велосипед. Поздравляю.
FlagmanGK; BigB; +2 Ответить 1
6. Дмитрий Иванов (dmitrii665) 14.11.12 09:16
(2) borrman, Да она как раз для файлового варианта
7. d ryabov (ryabov_d) 14.11.12 09:20
Ну собственно такой вариант отключения от базы использовался и на 7.7
В типовой обработке блокировки соединений в 8.2 видимо есть недоработки, поскольку не всех пользователей удается отключить (по крайней мере у нас), и все равно приходится обрывать соединение пользователей с тем компьютером, на котором лежит файловая база. А с приведеной выше обработкой завершение работы происходит на самом компьютере, который пользуется базой.
8. Дмитрий Иванов (dmitrii665) 14.11.12 09:52
(1) kapustinag, Да, благодарю! Действительно не видел функционала "Блокировка установки соединений с информационной базой" поэтому было очень неудобно и пришлось допиливать самому. Действительно стандартный функционал лучше, но и этот вариант имеет место быть.
9. Konstantin Konstantin (KonstB) 14.11.12 14:43
(8) dmitrii665, Учите типовой функционал, дабы не изобретать велосипедов :)
bforce; dmitrii665; +2 Ответить
10. Долгова Маргарита (Helleae) 14.11.12 15:13
В описании обработки указано, что она для УТ, а для БП или ЗУП её тоже можно использовать?
11. Дмитрий Иванов (dmitrii665) 14.11.12 15:44
(10) Helleae, Идея останется та же, только необходимо будет использовать другой план видов характеристик (п.1 описания) и другую функцию получения значения из ПВХ (п.3) все остальное то же самое.
12. Долгова Маргарита (Helleae) 14.11.12 16:39
13. ддд ддд (friday1) 17.11.12 19:59
спасибо! давно искал для файлового варианта, везде были только клиент серверные
14. Yalo (yalo) 18.11.12 15:17
Отключение пользователей в файловой варианте очень нужно. Спасибо
15. Андрей Тарлыков (Tarlich) 18.11.12 21:37
1) Доработка дает возможность принудительно выгонять - не выгонять а не дает зайти (если я правильно все понял)
2) Если у меня пользователей много мне тогда надо дописать что бы указать значение булево
3) если у пользователей на компах дата неправильная то работать небудет
4) по любому должен быть пользователь для которого данная переменная будет ложЬ и не дай бог случайно установить ее (а ну да можно обмануть датой)
5) а не проще тогда использовать в связке не при начале работы системы а обрадотке ожидания?
16. Андрей Тарлыков (Tarlich) 18.11.12 21:39
на сколько я понимаю ВЫГНАТЬ это значит вот мне сейчас надо что бы все прям сейчас вышли - а тут проверка только при входе в программу , много пользователей неделями не закрывают программу
17. Дмитрий Иванов (dmitrii665) 19.11.12 10:25
(15) Tarlich, По пунктам:
п.1 - Вы от части правы: вы неправильно поняли. Доработка дает возможность ВЫГОНЯТЬ! пользователей, а не "не дает зайти".
п.2 - Если сложно руками проставить галочку по пользователям можете сделать обработку.
п.3 - Согласен. Но у такого пользователя мало что будет корректно работать.
п.4 - Желательно.
п.5 - При начале работы системы подключается обработка ожидания, если со мной не согласны объясните.

Вы правильно понимаете слово ВЫГНАТЬ и доработка как раз делает то, что вы описали: выключает пользователей тогда когда вам нужно.

Пожалуйста, читайте информацию внимательно и осмысленно если собираетесь писать комментарии.
18. Владимир Кузнецов (mr.Kot) 19.11.12 12:31
Жалко, что типовыми средставми выгонять нельзя. Типовая обработка не работает, если у пользователя открыто модальное окно. Хорошо хоть восьмёрка позволяет делать динамическое обноление, если просто поменял форму или код, а иначе бы такой обработкой приходилось бы по чаще пользоваться.
dmitrii665; +1 Ответить
19. Елена Елена (сон) 25.11.12 19:06
А как войти в "Блокировку установки соединений с информационной базой"? Где она находится в УТ и в БП?
20. Алексей Смирнов (Vextel) 19.10.13 21:48
Интересное и простое решение.
Но я сейчас думаю над тем, что бы сначала вежливо попросить пользователя выйти, потом уже закрывать. Но тут нужно подумать над цикличностью запуска обработчика ожидания.
Плюс ещё нужно подумать над тем, что если вдруг пользователь действительно делает важные дела, перепроводит документы и т.д. Т.е. нужно как то может сначала мониторить активность, а не рубить сразу.
21. Дмитрий Иванов (dmitrii665) 21.10.13 09:16
Спасибо за комментарий. Вы абсолютно правы, с плеча рубить при таком раскладе нельзя.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа