Имя: Пароль:
1C
 
Заблокировать базу, но не для всех
, ,
0 Stim
 
30.06.15
16:50
Задача - выгонять всех пользователей из базы каждый день в определенное время(и не пускать никого в это время), НО за исключением некоторого списка пользователей, который хранится  в базе.

т.е. сегодня выгоняем всех кроме Иванова и Сидорова, а завтра нужно Иванова выгонять, а вместо него разрешать Петрову.

Как подобное реализовать на серверной базе?

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

в базе должно крутиться какое-то регламентное задание и блокировщик при запуске системы?
какие еще решения есть?
1 VikingKosmo
 
30.06.15
16:51
выгонять всех, кому можно заходить выдать ключ разрешения доступа
2 Господин ПЖ
 
30.06.15
16:52
выгоняешь всех, вырубаешь учетки в 1с кроме кому можно, они заходят

только хардкор!
3 DmitrO
 
30.06.15
16:52
(1)ключ доступа они друг другу расскажут :)
4 DmitrO
 
30.06.15
16:53
(0)может просто лицензий прикупить, пусть работают :)
5 DmitrO
 
30.06.15
16:55
ПередНачаломРаботыСистемы(<Отказ>)
6 DmitrO
 
30.06.15
16:55
ну и убивать сеансы регл. заданием
7 Ёпрст
 
30.06.15
16:56
(3) менять его раз в 3 дня, пусть заипутся :)
8 Одинесю
 
30.06.15
16:56
За (1)
9 Fish
 
30.06.15
16:58
Где-то здесь проскакивала обработочка, умеющая выгонять пользователей, но что-то не найду.
10 Has
 
30.06.15
16:58
ключ + батник + права на запуск батника нужным пользователям
11 Segate
 
30.06.15
17:04
(1) Создай роль "доступ в запрещенное время"
1)При начале работы системы проверяй доступность роли в определенные часы
2) регламентное задание, которое предупреждает пользователя, а через 5 минут убивает его сеанс, если сам не вышел.(опять же если у того нет доступа к роли)
12 Stim
 
30.06.15
17:14
(1) а как отбирать ключи доступа? они же будут заходить
13 Stim
 
30.06.15
17:14
+ Авторизация средствами 1С если чо
14 Stim
 
30.06.15
17:14
+ да и заходить они могут с любого компа
15 Ёпрст
 
30.06.15
17:17
(12) в консоле сервера втыкаешь галку - запрет соединения и указываешь пароль. Кому надо - делаешь ярлык на запуск с этим паролем. Усё.
16 Ёпрст
 
30.06.15
17:18
+15 в ярлыке 1cv8.exe" /UC[код доступа]
17 VikingKosmo
 
30.06.15
17:21
регулярно менять код доступа не предлагать?
18 Stim
 
30.06.15
17:24
(15) блин, ты через строчку читаешь чтоле?

управлять доступом нужно из 1С. Поставил там Иванову галочку - и ему доступ заблокировался. Снял - разблокировался.
и никому не нужно бегать по всем компам Иванова и удалять/ добавлять ярлыки
19 VikingKosmo
 
30.06.15
17:25
кучеряво вы живете. У одного Иванова компов немеряно...
20 Stim
 
30.06.15
17:26
(19) да пусть даже с одного. что - добавлять/удалять ему ярлыки с кодом запуска? а если он его скопирует? или попросит кого-нить прислать
21 mTema32
 
30.06.15
17:26
(18) Тогда (11)
22 mTema32
 
30.06.15
17:27
(20) Какие у вас там настойчивые и любознательные пользователи)) Хотя больше смахивает на начальные стадии паранойи))) Уж извините, за прямоту.
23 Stim
 
30.06.15
17:29
(22) нужно предусмотреть все действия пользователей.
24 Marine Band
 
30.06.15
17:32
я реализовывал через свою систему авторизации. Все заходят под одним пользователем(на самом деле пользователей не один, а несколько, но они глобальные: менеджеры, администраторы, бухгалтеры). Далее авторизация идет внутри 1С, если не авторизовался, то 1С закрылась.
25 Stim
 
30.06.15
17:33
хм. а какие есть варианты выгонялки?
регламентное задание по сути ведь ничего не может сделать с сеансом, кроме как программного подключения к консоли серверов и пр.

по-хорошему проще добавить обработчик ожидания, какую-то константу БазаЗаблокирована, которыми завершать работу пользователя
26 Marine Band
 
30.06.15
17:34
(25) Рег задание подключается к консоле сервера и выгоняет.
27 Marine Band
 
30.06.15
17:34
(26) + через ком
28 Stim
 
30.06.15
17:36
(27) ну это понятно.
какие еще есть варианты?
29 Marine Band
 
30.06.15
17:47
(28) Этого мало? 0_о
30 Stim
 
30.06.15
17:55
(29) это неинтересно.
31 Necessitudo
 
30.06.15
22:08
(24) А в консоли кластера видишь стопицот пользователей "Иванов"? Гори в аду!!!
32 Фрэнки
 
01.07.15
08:32
Интересно, а когда Иванов запустит несколько сеансов? Всем пользователям нельзя, но они же знают, что Иванову можно и в сеансе Иванова будут входить в базу.

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

База: типовая/на поддержке/самописка на БСП ?
33 Stim
 
01.07.15
08:49
(32) смысл - оставлять только служебных пользователей, для регламентных работ.
34 Stim
 
01.07.15
08:49
+ База - УНФ изм, если это важно
35 Stim
 
01.07.15
08:58
+ я пока придумал - регламентное задание с расписанием, без обработчика.
и обработка ожидания, которая у каждого будет крутиться, смотреть в регистр пользователей, и завершать работу, если регл задание выполняется
36 Фрэнки
 
01.07.15
09:05
(34) ну важно знать, что и где разрешено менять.
Если можно менять вообще везде, то самое адекватное, ИМХО, это дописать свой реквизит в элементы справочника Пользователи
Ловить значение реквизита при старте системы и завершать работу, если в нем задан запрет.
Затем можно повесить обработчик ожидания в сеанс юзера и выкидывать юзера, если в его реквизите будет вывешивать признак завершения работы.
Можно привязать к юзерам регистр сведений со временем начала и окончания блокировок. Дописать свои обработки на установку в кучу записей, кому что разрешено и когда.
37 Stim
 
01.07.15
09:08
(36) неоптимальное решение.
реквизит в справочник - проще всего, но его надо выводить на форму, значит, форма будет изменена, а значит получим немного гемороя при обновлении.

лучше добавить РС, в котором хранить пользователей. он при обновлении никак не помешает
38 Фрэнки
 
01.07.15
09:21
(37) кто заставляет тебя менять типовую форму, если использование нетипового реквизита может быть сделано в своей собственной форме в обработке?

Но в регистре сведений конечно оптимальней, потому что можно не просто проверять только одно булево значение истина/ложь, но и кучу других полей запихать. Например, время начало блокировки, время конец блокировки и т.п.
39 Stim
 
01.07.15
09:28
(38) кстати, вариант.. наверн так и сделаю, не буду прикручивать регл задание
40 Segate
 
01.07.15
09:30
(36)А чем тебя мой вариант-то не устраивает? Его и обновлять удобно, проблем никаких, и нагрузка минимальная. зачем обработчики ожидания-то?
41 Stim
 
01.07.15
09:31
+ но хочу оставить вариант резервного подключения.

как узнать код разблокировки /UC? только по СтрокаСоединенияИнформационнойБазы?
42 Stim
 
01.07.15
09:33
(40) мне часы доступа надо хранить где-то. должен быть какой-то регистр или справочник, в коде нельзя прямо указывать, сам понимаешь. если захотят поменять, опплюются.
регл задание, которое убивает сеанс - по ком-подключению к кластеру? фууу
43 Ymryn
 
01.07.15
09:36
(37) если УФ, то добавление в форму можно реализовать кодом. В том числе и вне модуля формы. Так что на обновление особо не повлияет.
44 Stim
 
01.07.15
09:39
(43) интересно.. как это?
45 Segate
 
01.07.15
09:44
(44)подписка на событие ОбработкаПолученияФормы, я так думаю
46 Ymryn
 
01.07.15
09:47
У нас сделано через изменение в общем модуле
МодификацияКонфигурацииПереопределяемый

Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт

А дальше уже вызов своего модуля, который по классике.
НовоеПоле = ДобавитьПоле(...)
47 Stim
 
01.07.15
11:38
(45) нет такой подписки
48 Segate
 
02.07.15
13:34
(47) Уверен?
http://joxi.ru/VrwMd0RIWOP12X
49 rs_trade
 
02.07.15
13:38
(0) Выгоняй сам руками и через консоль. Будешь важным и нужным для проведения регламентных работ человеком.
Программист всегда исправляет последнюю ошибку.