Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 02:57

Выкинуть из базы определенного пользователя - программно.

Автор boobzx, 18 сен 2013, 00:55

0 Пользователей и 1 гость просматривают эту тему.

boobzx

В общем задача.. Нужно выкинуть из базы определенного пользователя.

Т.е. Пишу обработку где выполняю код..

&НаСервере
Процедура ПолучитьАктПолНаСервере()

АктивныеПользователи.Очистить();

СоединенияИнформационнойБазы = ПолучитьСоединенияИнформационнойБазы();

Для Каждого Соединение Из СоединенияИнформационнойБазы Цикл 
ТЗ=АктивныеПользователи.Добавить(); 
Если ИмяПользователя() = Соединение.Пользователь.Имя Тогда
УсловноеОформление.Элементы[0].Отбор.Элементы[0].ПравоеЗначение = ИмяПользователя();
КонецЕсли;
ТЗ.Пользователь=Соединение.Пользователь.Имя;
ТЗ.Компьютер=Соединение.ИмяКомпьютера;
ТЗ.НачалоСеанса=Соединение.НачалоСеанса;                         
ТЗ.НачалоСоединения=Соединение.НачалоСоединения; 
ТЗ.ТипКлиента=ПредставлениеПриложения(Соединение.ИмяПриложения);
КонецЦикла;

нНомерТекущегоСоединения=НомерСоединенияИнформационнойБазы();
//В итоге получаем ТЗ со списком пользователей и Номер Текущего Соединения

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


Соответственно этой командой я ищу все активные сеансы. И вот если там я нашел определенного пользователя, то мне нужно его выкинуть. Как сделать? ЗавершитьРаботуСистемы(Ложь) - выкидывает только меня. Перечитал кучу форумов, ответа так и не нашел. Есть хрень под названием Сервис->управление пользователями->и там заблокировать ИБ.. но это мне не подходит.. 1 выкидываются все.. а мне не надо.. и есть самописные конфигурации.. где такой фичи вообще нет. Неужели никак не выгнать определенного пользователя?

Новенькая

А нужно именно выгнать? может просто не пускать определенного пользователя в систему?

LordWizard

Бейсбольная бита, удар!... и Пользователь уходит не только с программы, но и на больничный!
Если СКУЛ, то

Коннектор = Новый COMОбъект("V8.COMConnector");
Сервер = Коннектор.ConnectServer("server");
Сервер.AddAuthentication("Login","password");
ИнформационнаяБаза = Сервер.CreateInfoBaseInfo();
ИнформационнаяБаза.Name = "1c";
СоединенияБазы = Сервер.GetIBConnections(ИнформационнаяБаза);

Для Каждого Соединение Из СоединенияБазы Цикл
    Сервер.Disconnect(Соединение); //только здесь можно ненароком отключить самого себя
КонецЦикла;
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

boobzx

Новенькая, не пускать другое дело.. есть пользователи.. которые тупа уходят и забывают закрыть 1с.. этот филиал в другом городе.. и занимаюсь я ими ночью.. а там никого нет.. выход.. только кикнуть их с 1с..
LordWizard, я это решение тоже видел.. но он мне не подходит.. потому что есть и файловый вариант базы..  и к тому же я так понял.. этот код требует аутентификацию на серерве 1с.. а этого у меня нет:) ыыы программисту 1с.. дали пользователя с правами гость:) я ничего не могу делать.. как только заходить в 1с.. и что-то творить там... пароли мне не дают:)
Сервер.AddAuthentication("Login","password");
Я так понимаю.. логин и пароль от 1с сервера? в любом случае.. от скуля и от сервера 1с.. паролей у меня нет.. кроме заведенного для меня пользователя в базы..по этому выход я вижу только 1... как-то кикнуть их из самой базы программно..
Добавлено: 18 сен 2013, 12:19


Говорят такое решение есть в 1с-рарус.. там даже можно сообщения посылать другим пользователям.. и по отдельности выкидывать.. но как там это сделали.. х.з:)

LordWizard

глянь на инфостарте - может там что есть по этому поводу? Реально не понимаю - как ты без прав собираешься что-то делать!
Добавлено: 18 сен 2013, 12:46


Соединение с рабочим процессом (IWorkingProcessConnection)
Disconnect (Disconnect)
Синтаксис:

Disconnect(<Соединение>)
Параметры:

<Соединение> (обязательный)

Тип: Соединение.
Описание соединения с информационной базой. Объект может быть получен ка элемент массива, возвращаемого методом GetInfoBaseConnections.
Описание:

Разрывает соединение клиента с рабочим процессом.

Доступность:

Интеграция.
Примечание:

После разрыва соединения соответствующее клиентское приложение завершится аварийно.

(выдержка из синтаксис- помощника)
Тут не указано, что и как. Значит можно рубить и так, без сервера и СКУЛа.
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск