Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория по 1С.docx
Скачиваний:
76
Добавлен:
07.02.2015
Размер:
24.76 Mб
Скачать

4. Просмотр действий активного пользователя

Просмотреть можно с помощью отбора в журнале регистрации, но можно как мне кажется быстрее. Открываем список активных пользователей, выбираем пользователя и в панели инструментов нажимаем кнопку “работа пользователя”.

В результате вы увидите тот же Журнал регистрации с уже готовым отбором по пользователю, который можно отредактировать(к примеру по событию).

 

5. Обработка которая показывает активных пользователей (для 1с версии 8.1)

Не помню зачем ее делал, но только она устроила заказчика. Возможно я к ней прикрутил еще внутренний телефон, информацию о сотруднике или что то в этом духе, но к сожалению конечной версии обработки у меня нет.

Данная процедура вызывалась при срабатывании события ОбновлениеОтображения и при клике кнопки Обновить

Структура таблиц:

Таблица значений 1: АктивныеПользов

Поля:

Пользователь //строка(250)

Приложение  //строка(250)

НачалоРаботы //строка(250)

Компьютер //строка(250)

Соединение //строка(250)

Таблица значений 2:  ВсеПользов

Поля:

Имя  //строка(250)

Пользователь  //строка(250)

Пароль //строка(250)

Роли //строка(250)

ПроцедураОбновитьСписокПользователей()

// активные пользователи

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

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

   ДляКаждогоСоединениеИзСоединенияИнформационнойБазыЦикл

       ТЗ=АктивныеПользов.Добавить();

       ТЗ.Пользователь=Соединение.Пользователь.Имя;

       ТЗ.Приложение=ПредставлениеПриложения(Соединение.ИмяПриложения);

       ТЗ.НачалоРаботы=Соединение.НачалоСеанса;

       ТЗ.Компьютер=Соединение.ИмяКомпьютера;

       ТЗ.Соединение=Соединение.НомерСоединения;

   КонецЦикла;

// все пользователи

   ВсеПользов.Очистить();

   Выборка=ПользователиИнформационнойБазы.ПолучитьПользователей();

   ДляКаждогоЭлементМассиваИзВыборкаЦикл

        ТЗ=ВсеПользов.Добавить();

        ТЗ.Имя=ЭлементМассива.Имя;

        ТЗ.Пользователь=ЭлементМассива.ПолноеИмя;

        ТЗ.Пароль=ЭлементМассива.ПарольУстановлен;//пароль

       Роли=ЭлементМассива.Роли;

        ДляКаждогоРольИзРолиЦикл

           ТЗ.Роли=Роль.Имя;

       КонецЦикла;

   КонецЦикла;

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

Если интересно данное решение для 8.2 и не знаете как сделать напишите я сделаю и выложу.

08. Блокировка сеансов пользователей

Прочитав статью о списке активных пользователей, можно убедится что он полезен при обновлении и резервном копировании ИБ, да с помощью него мы узнали кто работает в ИБ и можем попросить выйти, Но есть такие работники которые не понимают что если говоришь что входить нельзя, то входить нельзя. Для такого случая можно воспользоватся БлокировкойСеансов.

С помощью БлокировкиСеансовновые сеансы будут блокироваться и выдаваться сообщение, сообщение задаете вы.

При клиент-серверномварианте работы блокировку сеанса можно задать с помощью утилиты администрирования кластера сервера.

Программный способ блокировки сеанса в 1с

Для программной блокировки используется объект встроенного языка 1с: БлокировкаСеансов. С помощью метода глобального контекстаУстановитьБлокировкуСеансов(); , а получить с помощьюПолучитьБлокировкуСеансов();

Небольшой пример создания блокировки и получения ее:

&НаСервере

ПроцедураКомандаБП()

// создаем блокировку

Блокировка=НовыйБлокировкаСеансов;

// код для входа при блокировки

Блокировка.КодРазрешения="key";

// дата начала

Блокировка.Начало='19900101';

// дата окончания блокировки

Блокировка.Конец='20130101';

// сообщение выдоваемое пользователю

Блокировка.Сообщение="В данный момент проих обновление программы,

|доступ к программе получите завтро.!";

// Включаем блокировку, если Ложь то отключаем

Блокировка.Установлена=Истина;

// устанавливаем блокировку

УстановитьБлокировкуСеансов(Блокировка);

// Получаем

ПолучитьБлокировкуСеансов();

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