IE2017

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

Администрирование - Системное

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

 

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

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

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

См. также

Комментарии
1. Александр Капустин (kapustinag) 13.11.12 20:07 Сейчас в теме
А имеющаяся в типовой УТ функция "Блокировка установки соединений с информационной базой" разве не делает уже именно то, что Вы написали? С единственным отличием: она выгоняет всех.
2. Артем Боровлев (borrman) 14.11.12 01:19 Сейчас в теме
(1) kapustinag, А она работает для файлового варианта?
3. Алексей Ситников (SiAl) 70 14.11.12 03:10 Сейчас в теме
4. креек фелер (GoodWinSpr) 395 14.11.12 06:24 Сейчас в теме
5. Анатолий Бычин (tolyan_ekb) 88 14.11.12 07:12 Сейчас в теме
Очередной велосипед. Поздравляю.
FlagmanGK; BigB; +2 Ответить 1
6. Дмитрий Иванов (dmitrii665) 21 14.11.12 09:16 Сейчас в теме
(2) borrman, Да она как раз для файлового варианта
7. Дмитрий Рябов (ryabov_d) 14.11.12 09:20 Сейчас в теме
Ну собственно такой вариант отключения от базы использовался и на 7.7
В типовой обработке блокировки соединений в 8.2 видимо есть недоработки, поскольку не всех пользователей удается отключить (по крайней мере у нас), и все равно приходится обрывать соединение пользователей с тем компьютером, на котором лежит файловая база. А с приведеной выше обработкой завершение работы происходит на самом компьютере, который пользуется базой.
8. Дмитрий Иванов (dmitrii665) 21 14.11.12 09:52 Сейчас в теме
(1) kapustinag, Да, благодарю! Действительно не видел функционала "Блокировка установки соединений с информационной базой" поэтому было очень неудобно и пришлось допиливать самому. Действительно стандартный функционал лучше, но и этот вариант имеет место быть.
9. Konstantin Konstantin (KonstB) 162 14.11.12 14:43 Сейчас в теме
(8) dmitrii665, Учите типовой функционал, дабы не изобретать велосипедов :)
bforce; dmitrii665; +2 Ответить
10. Долгова Маргарита (Helleae) 14.11.12 15:13 Сейчас в теме
В описании обработки указано, что она для УТ, а для БП или ЗУП её тоже можно использовать?
11. Дмитрий Иванов (dmitrii665) 21 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) 69 18.11.12 21:37 Сейчас в теме
1) Доработка дает возможность принудительно выгонять - не выгонять а не дает зайти (если я правильно все понял)
2) Если у меня пользователей много мне тогда надо дописать что бы указать значение булево
3) если у пользователей на компах дата неправильная то работать небудет
4) по любому должен быть пользователь для которого данная переменная будет ложЬ и не дай бог случайно установить ее (а ну да можно обмануть датой)
5) а не проще тогда использовать в связке не при начале работы системы а обрадотке ожидания?
16. Андрей Тарлыков (Tarlich) 69 18.11.12 21:39 Сейчас в теме
на сколько я понимаю ВЫГНАТЬ это значит вот мне сейчас надо что бы все прям сейчас вышли - а тут проверка только при входе в программу , много пользователей неделями не закрывают программу
17. Дмитрий Иванов (dmitrii665) 21 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 21.10.13 09:16 Сейчас в теме
Спасибо за комментарий. Вы абсолютно правы, с плеча рубить при таком раскладе нельзя.
Оставьте свое сообщение