Имя: Пароль:
1C
 
Как выкинуть всех из базы без спроса?
Ø
0 HelpFinder
 
23.12.04
14:36
ЗавершитьРаботуСистемы(0) работает только когда пользователь дал согласие на выход. а если я хоче без его ведома киллять их?
есть ли альтернатива?
1 ValeraVV
 
23.12.04
14:38
Процедура ПриЗавершенииРаботыСистемы()
Тама подправь)
2 Ghost
 
23.12.04
14:39
2(1)А ежели какой-нибудь чудак открыл окно идентификации и ушел, то это не поможет.
3 Uho
 
23.12.04
14:42
(0) Права на папку с базой снять...
4 101
 
23.12.04
14:42
отрубить 'шару'
5 ValeraVV
 
23.12.04
14:43
(2) ну а это уже другая, страшная, история
6 Вадя
 
23.12.04
14:43
Чудаков останется пара штук, остальные вылетят. Отцепишь ручками.
8 Caligula
 
23.12.04
16:21
(0) Объясните плиз, а как с пом. ЗавершитьРаботуСистемы(0) откинуть пользователя?
9 Ghost
 
23.12.04
16:25
Если Константа.ОткинутьЮзера=1 Тогда
     ЗавершениеРаботыСистемы();
КонецЕсли;
10 Caligula
 
23.12.04
16:35
(9) ну если на пальцах ... если мне нужно выкинуть юзеров с базы, они должны по команде дружно запустить обработку, в которой строчка ЗавершениеРаботыСистемы(); и выкинутся??
11 MMF
 
23.12.04
16:36
(9) вот наглядный пример причины вопроса "почему моих юзверей комп спрашивает Повторить Транзакцию"
12 ValeraVV
 
23.12.04
16:37
(10) LOL. Ну а как же по другому.
Хотя можно еще применить шаманство.
13 maxanp
 
23.12.04
16:38
В ОбработкуОжидания ставишь проверку константы, только не забудь отключить проверку у админа, а то не исправишь потом эту константу
14 PS
 
23.12.04
16:40
А
Если Юзер.Откинулся()=0 Тогда
Че делать:))))
15 Caligula
 
23.12.04
16:40
(11)(12) Я чет не понял ... речь идет о том, как отрубить народ от базы, если админу например нуно монопольно войти??
16 maxanp
 
23.12.04
16:41
13 к 10
17 uri
 
23.12.04
16:45
Если Юзер.Откинулся()=0 Тогда
  Че делать:))))
Иначе
18 Ghost
 
23.12.04
16:46
2(11)Я ЧИТАЮ значение константы, так что расслабся =))).
19 DBegunkov
 
23.12.04
16:52
Вместо константы удобнее использовать файл с определенным именем, например: всем_выйти.flg. А в Процедуре, назначенной процедурой ОбрабокаОжидания() написать Если ФС.ФайлСуществует(КаталогИБ()+"всем_выйти.flg") Тогда ЗавершитьРаботуСистемы(0) КонецЕсли;
20 Туxлый
 
23.12.04
16:54
21 SergMit
 
23.12.04
17:04
Звонишь главбуху и просишь, чтобы все вышли из "бухгалтерии". Только потом, когда обновишь все, не забудь снова позвонить и разрешить, а то так и будут в коридоре толпиться...;-) http://1c.realnet.ru/kuban/140509.html
22 Мулька
 
23.12.04
17:05
Да уж.
23 MikaZX
 
23.12.04
17:24
(21) из бухгалтерии-то они выйдут, а прогу могут и не закрыть. :)
24 DeiMos
 
23.12.04
17:52
Процедура ВыбросПользователя()
   Польз = СоздатьОбъект("Справочник.Пользователи");
      
       Если Польз.НайтиПоКоду(СОКРЛП(ИмяПользователя()),0) = 1 Тогда
     Если Польз.Выброс=1 Тогда
     Польз.Выброс=0;
           Польз.Записать();
           ЗавершитьРаботуСистемы(0);
     КонецЕсли;
           Иначе
           ЗавершитьРаботуСистемы(0);
          КонецЕсли;
КонецПроцедуры // ВыбросПользователя
ОбработкаОжидания("ВыбросПользователя",5);
25 Caligula
 
24.12.04
09:21
26 Мулька
 
24.12.04
09:27
Еще раз да уж. Через обработку ожидания - имхо, самый неудачный оператор в 1С.
27 Agat
 
24.12.04
09:29
Кординально - RESET...
28 DBegunkov
 
24.12.04
09:45
(26)
А есть еще варианты, кроме ОбработкиОжидания? Если не использовать ВК, конечно...
29 Caligula
 
24.12.04
10:02
(26) а конкретные доводы?
30 Sure2
 
24.12.04
10:24
Если 1С для SQL, то можно выбросить средствами SQL:
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=4188
31 WAR
 
24.12.04
12:02
2(all) Интересно! А я вот так у себя выгоняю юзверьков:
Процедура СбросЮзверьков()
  Если НазваниеНабораПрав() <> "Администратор" Тогда
    ЗавершитьРаботуСистемы(0);
  Иначе
    Константа.ВремяСброса = "";
    Стр = " /FI ""USERNAME ne " + ИмяКомпьютера() + "<ИмяПрогера1>""" +
    " /FI ""USERNAME ne " + ИмяКомпьютера() + "<ИмяПрогера2>"" /T /F";
    КомандаСистемы("TaskKill /IM 1cv7.exe" + Стр);
    КомандаСистемы("TaskKill /IM 1cv7s.exe" + Стр);
  КонецЕсли;
КонецПроцедуры
Процедуру СбросЮзверьков() надо использовать с ОбработкойОжидания.
Выкидывает всех, кроме 2х прогеров.
Да, время выброса задается константой ВремяСброса, а в процедуру ПриЗаписиКонстанты я написал рассылку всем сообщения о том что надо выйти (но мой способ хорош для терминалки).
Процедура ПриЗаписиКонстанты(ИмяКонст,ЗначКонст)
  Если ИмяКонст = "ВремяСброса" Тогда
    Если ПустоеЗначение(ЗначКонст) = 0 Тогда
      Если СтрДлина(ЗначКонст) < 4 Тогда
        ЗначКонст = "";
        Возврат;
      КонецЕсли;
      Если Число(ЗначКонст) > 2359 Тогда
        ЗначКонст = "0000";
      КонецЕсли;
      Если Число(Прав(ЗначКонст,2)) > 59 Тогда
        ЗначКонст = Лев(ЗначКонст,2) + "59";
      КонецЕсли;
      КомандаСистемы("Start Msg * Господа, в " + Лев(ЗначКонст,2) + ":" + Прав(ЗначКонст,2) +
      " будет выполнено отключение всех пользователей!!! " +
      "Пожалуйста закончите к этому времени все текущие дела. Донесите эту информацию до всех сотрудников" +
      " из вашего отдела. Отдел ИВТ.");
    КонецЕсли;
  КонецЕсли;
КонецПроцедуры
32 Caligula
 
24.12.04
18:28
Все работает, ток значение в справочнике на 1 не позвращается :-(
  глПользователь.РазрешитьРаботу = 1; // то бишь
  спрПольз.Записать(); не рабо // эта хрень не работает
почему?
// ----------------
  спрПольз = СоздатьОбъект("Справочник.Пользователи");
  Если спрПольз.НайтиЭлемент(глПользователь) = 1 Тогда
    глПользователь = СпрПольз.ТекущийЭлемент();
    Если глПользователь.РазрешитьРаботу = 0 Тогда
      глПользователь.РазрешитьРаботу = 1;
      спрПольз.Записать();
      Сигнал(); Сигнал(); Сигнал();
      Предупреждение("Вы ща будете вырублены нах...", 10);
      ЗавершитьРаботусистемы();
    КонецЕсли;
  КонецЕсли;
33 DeiMos
 
24.12.04
18:45
Если глПользователь.РазрешитьРаботу = 0 Тогда
СпрПольз.РазрешитьРаботу = 1;
Ы?
34 Caligula
 
24.12.04
18:49
Вопросик возник ... какой оператор в 1с-ке делает задержку?
35 Caligula
 
24.12.04
18:54
up
36 Тупой 1Assник
 
24.12.04
19:27
вот например =)))
Сч=0;
Пока Сч<>1000000 Цикл
 Сч=Сч+1;
КонецЦикла;
37 Caligula
 
24.12.04
20:08
(36) ага, а юзер сможет в этот момент чем-нить заниматься?
38 ValeraVV
 
24.12.04
20:19
(37) чем нибудь сможет)))))
39 Caligula
 
25.12.04
13:13
(38) Предупреждение("Сходи чайку попей", 10);
 
40 Chai Nic
 
25.12.04
16:21
Все просто несерьезно. Если юзер заблокировал интерфейс и у него висит окно ввода пароля - то ОбработкаОжидания не выполняется. То же самое, если висит системное модальное окно (параметры принтера, диалог сохранения и прочее). Наконец, юзер может формировать длительный отчет, что тоже приведет к невозможности "выкинуть" его. Или окно транзации (повторить/отменить)... Кажется, 1с совершенно не думал об удобстве _администрирования_ :(
41 VZ
 
25.12.04
16:39
Гоподяяя... Развезли-то... Все просто до безобразия: просишь любым доступным методрм (net send, телефон, лично... ) выйти из базы. И выйти из базы у тех, кто отлучился. Потом смотришь, кто не вышел, запоминаешь. Отрубаешь их админскими средствами. Делаешь свое дело, потом запускаешь полную проверку конфигурации с переиндексацией + пересчетпми итогов. На возмущенные вопли спокойно отвечаешь, что поскольку ты был ВЫНУЖДЕН нештатно прекратить сеанс таких-то (фамилии громко и внятно), просто обязан провести проверку базы, дабы чего-плохого не было.
В следующий раз этой проблемы не будет.
42 OVG
 
25.12.04
16:58
(41) Во!!! Именно!!!
net send 'ВсеБухи' 'Выйти всем нах из базы в течении 5 минут!!! '
Через 5 минут рестарт SQL сервера или снятие шары на каталог БД. Всё протоколируется и несется к главбуху/гендиру. Кто не вышел - то я не виноват типа :)
А дальше административными средствами (в смысле средствами администрации компании). Пару раз по шапке получат - научатся.
43 Очкарик
 
25.12.04
18:45
v7backup решит проблему полностью.
киляет процессы выбрасывает юзеров и еще backup делать умеет..
44 DRB
 
25.12.04
20:55
(41) ну зачем? зачем ты так сдался - пусть бы пообсуждали :-)
45 romix
 
26.12.04
06:26
Если юзеров выгоняют из базы, чтобы поправить текстовичок или форму, то это неправильно.
Есть компонента ActiveMD, которая позволяет обновлять тексты и формы "на ходу", безо всяких #ЗагрузитьИзФайла.
А структуру базы менять нужно без юзеров, т.к. процесс может затянуться, к примеру, часика на 2.
46 trdm
 
26.12.04
13:35
1CAdd105.exe - выкидывает пользователей из базы даже если он блокировал систему "ключиком", не говоря уже о модальных диалогах.....
причем вроде как корректно....
старая проверенная вещь....