bdd2

Выгонялка пользователей.

Опубликовал Сергей Данилов (pencroff) в раздел Администрирование - Защита, права, пароли

Данная разработка это первое что я решил выложить на этот дивный сайт. Она позволяет отключать пользователей штатными средствами. А так же их информирования о процессе отключения.

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

Обработка позволяет:

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

Доработка конфигурации:

  • Обработка настройки отключения (в приложении);
  • Регистр сведений;
  • Модуль приложения.

Регистр сведений

ргОтключениеПользователей, непереодический, с независимым режимом записи.

Измерения:

Пользователь - справочник пользователи, ведущее или основной отбор

Ресурсы:

  • Отключить - Булево;
  • ЗапретПодключения - Булево;
  • БыстроеОтключение - Булево;
  • СостояниеОтключения - Строка, 3 символа, фиксированная;
  • Сообщение - Строка, 300 символов, переменная;
  • ДатаВремяПуска - Дата, Дата и время;
  • ОтключениеМинут - Число, 2 разряда;  // до 99 минут
  • ПаузаДоОтключения - Число, 1 разряд. // от 3  до 5 минут

Модуль приложения

 

// Процедура контроля возможности подключения.
//
Процедура СтартПроверкиОтключения(Отказ) Экспорт
   
Пользователь = УправлениеПользователями.ОпределитьТекущегоПользователя();
   
Зп = Новый Запрос;
   
Зп.УстановитьПараметр("Пользователь",Пользователь);
   
Зп.Текст = "ВЫБРАТЬ
    | ргОтключениеПользователей.Пользователь,
    | ргОтключениеПользователей.ЗапретПодключения,
    | ргОтключениеПользователей.ДатаВремяПуска,
    | ргОтключениеПользователей.ОтключениеМинут,
    | ргОтключениеПользователей.ПаузаДоОтключения
    |ИЗ
    | РегистрСведений.ргОтключениеПользователей КАК ргОтключениеПользователей
    |ГДЕ
    | ргОтключениеПользователей.Пользователь = &Пользователь"
;
   
РезультатЗп = Зп.Выполнить().Выбрать();
    Если
РезультатЗп.Следующий() Тогда
        Если
РезультатЗп.ЗапретПодключения Тогда
           
НеПодключать = Ложь;
           
// Расчет времени не подключения
           
ТекДата = ТекущаяДата();
           
СтартДата = РезультатЗп.ДатаВремяПуска;
           
ВремяПаузы = (РезультатЗп.ОтключениеМинут + РезультатЗп.ПаузаДоОтключения) * 60;
           
ДельтаПаузы = ТекДата - СтартДата;
            Если
ВремяПаузы > ДельтаПаузы Тогда
               
НеПодключать = Истина;
            КонецЕсли;
           
// Конец Расчета времени не подключения
           
Если НеПодключать Тогда
               
#Если Клиент Тогда
                   
Предупреждение("Подключение запрещено. Ведутся сервисные работы.", 5, "Подключение...");
               
#КонецЕсли
               
//Отказ = Истина;
           
КонецЕсли;
        КонецЕсли;
    КонецЕсли;
   
// Проверка и опрос состояния отключения
   
ПодключитьОбработчикОжидания("ЦиклическийВызов",15);
КонецПроцедуры
// СтартПроверкиОтключения()


// Процедура контроля отключения. Конечный автомат состояний отключения.
//
Процедура ЦиклическийВызов() Экспорт
   
ОтклПользователей = РегистрыСведений.ргОтключениеПользователей;
   
Отбор = Новый Структура("Пользователь");
   
Отбор.Пользователь = УправлениеПользователями.ОпределитьТекущегоПользователя();
   
ВыборкаРегистра = ОтклПользователей.Выбрать(Отбор);
    Пока
ВыборкаРегистра.Следующий() Цикл
       
Запись = ВыборкаРегистра.ПолучитьМенеджерЗаписи();
       
Запись.Прочитать();
       
СостОткл = Запись.СостояниеОтключения;
       
ВремяОткл = Запись.ПаузаДоОтключения;
       
Пр = Лев(СостОткл,1);
        Если
Пр = "А" Тогда
           
СостОткл = "Б" + Строка(ВремяОткл*4);
           
Запись.СостояниеОтключения = СостОткл;
           
Запись.Записать();
           
#Если Клиент Тогда
               
Сигнал();
               
Сигнал();
               
Сигнал();
               
Предупреждение(Запись.Сообщение,15,"Предупреждение");
           
#КонецЕсли
       
ИначеЕсли Пр = "Б" Тогда
           
Время = Число(Прав(СостОткл,2));
           
Время = Время - 1;
            Если
Время = 0 Тогда
               
СостОткл = "В";
            Иначе
               
СостОткл = "Б" + Строка(Время);
            КонецЕсли;
           
Запись.СостояниеОтключения = СостОткл;
           
Запись.Записать();
        ИначеЕсли
Пр = "В" Тогда
           
СостОткл = "Г" + Строка(ВремяОткл-1);
           
Запись.СостояниеОтключения = СостОткл;
           
Запись.Записать();
           
#Если Клиент Тогда
               
Сигнал();
               
Сигнал();
               
Сигнал();
               
Предупреждение(Запись.Сообщение,15,"Предупреждение!");
           
#КонецЕсли
       
ИначеЕсли Пр = "Г" Тогда
           
Время = Число(Прав(СостОткл,2));
           
Время = Время - 1;
            Если
Время = 0 Тогда
               
СостОткл = "Д";
            Иначе
               
СостОткл = "Г" + Строка(Время);
            КонецЕсли;
           
Запись.СостояниеОтключения = СостОткл;
           
Запись.Записать();
        ИначеЕсли
Пр = "Д" Тогда
           
СостОткл = "Ш";
           
Запись.СостояниеОтключения = СостОткл;
           
Запись.Записать();
           
#Если Клиент Тогда
               
Сигнал();
               
Сигнал();
               
Сигнал();
               
Предупреждение("Извините но вы не предприняли никаких действий.",5,"Отключение.");
               
ЗавершитьРаботуСистемы();
           
#КонецЕсли
       
ИначеЕсли Пр = "Ш" Тогда
           
СтопПроверкиОтключения();
           
#Если Клиент Тогда
               
Сигнал();
               
Сигнал();
               
Сигнал();
               
Предупреждение("Тушим...",5,"Отключение.");
               
ПрекратитьРаботуСистемы();
           
#КонецЕсли
       
КонецЕсли;
    КонецЦикла;
КонецПроцедуры
// ЦиклическийВызов()


// Процедура контроля отключения.
//
Процедура СтопПроверкиОтключения() Экспорт
   
ОтклПользователей = РегистрыСведений.ргОтключениеПользователей;
   
Отбор = Новый Структура("Пользователь");
   
Отбор.Пользователь = УправлениеПользователями.ОпределитьТекущегоПользователя();
   
ВыборкаРегистра = ОтклПользователей.Выбрать(Отбор);
    Пока
ВыборкаРегистра.Следующий() Цикл
       
Запись = ВыборкаРегистра.ПолучитьМенеджерЗаписи();
       
Запись.Отключить = Ложь;
       
Запись.СостояниеОтключения = "К";
       
Запись.Записать();
    КонецЦикла;
КонецПроцедуры
// СтопПроверкиОтключения()


Процедура ПередНачаломРаботыСистемы(Отказ)
   
// Типовый вызовы
   
СтартПроверкиОтключения(Отказ);
КонецПроцедуры


Процедура
ПриЗавершенииРаботыСистемы()
   
// Типовый вызовы
   
СтопПроверкиОтключения();
КонецПроцедуры

PS Первая проба пера. Если что не так пишите откорректирую.

UPD: Спасибо за рейтинг. Скачал Разукрашку. Обновил код.

UPD2: Поправил обязательную настройку регистра.

UPD3: Откорректировал процедуру кнопки отключить, заполнение регистра значений. Заполняется все отмеченные пользователи а не только последний.

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

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

Наименование Файл Версия Размер
Обработка отключения
.epf 16,40Kb
25.02.10
2008
.epf 16,40Kb 2008 Скачать

См. также

PowerTools от 1 000
Добавить вознаграждение
Комментарии
1. Роман Ершов (MRAK) 692 09.02.10 15:54 Сейчас в теме
2. Сергей Данилов (pencroff) 121 09.02.10 15:59 Сейчас в теме
To 1. Подправил. Обработку прекрепил
3. Алексей Ситников (SiAl) 67 09.02.10 17:36 Сейчас в теме
4. Артур Аюханов (artbear) 840 09.02.10 17:37 Сейчас в теме
(0) 1. Код в публикации оформи нормально, нечитаемо - значит, нельзя проверить :(
Например, можешь найти на сайте "Разукрашка" и с ее помощью раскрасить код 1С.

2. Состояния отключения - Ш, К, Г и т.д - ну совершенно нечитаемо, неузнаваемо и т.д.

3. Что будешь делать, если пользователь заблокировал свою 1С ?
твой код отработает?
Проверял на случай, если у пользователя открыта измененная форма какого-нибудь документа?
5. Константин Хрипков (mbreaker) 1041 09.02.10 17:43 Сейчас в теме
хм... не совсем понял, в чём принципиальное отличие от Установки блокировки пользователей кроме "отключение не всех пользователей"?

могу предположить, конечно, что это лично для работы любимого главбуха... но для него можно просто вывести отдельный ярлык для запуска 1cv8.exe с указанием ключа блокировки (/UC)... а для себя любимого и подавно...

с монопольным режимом тоже лишний раз лучше не играться... это шаг назад к 7-ке... там где нужно он сам и установится, и снимется...

не говорю, что это бесполезная вещь, кому-то наверняка понравится... но, честно сказать, ради такого я бы не стал менять конфу, чтобы потом из релиза в релиз заморачиваться каждый раз на перенос этого функционала...
6. Сергей Данилов (pencroff) 121 09.02.10 17:58 Сейчас в теме
To (4)
Например, можешь найти на сайте "Разукрашка"/QUOTE]Если можно киньте на почту "Разукрашка", а то не могу скачать. Все поправлю.
[IS-QUOTE]Состояния отключения - Ш, К, Г и т.д - ну совершенно нечитаемо, неузнаваемо
Приму к сведению. Я тоже задумался над этим когда писал. Думаю что завтра откорректирую и выложу снова.
Что будешь делать, если пользователь заблокировал свою 1С ?
твой код отработает?
Пользователь не может заблокировать сам себя. Возникает предупреждение.
Проверял на случай, если у пользователя открыта измененная форма какого-нибудь документа?
Не проверял и проверять не планирую. Для этого и дается пользователю от 3-х до 5-ти минут что бы все сохранить и выйти. Иначе просто выходим ничего не сохраняя. ПрекратитьРаботуСистемы();

7. Сергей Данилов (pencroff) 121 09.02.10 18:00 Сейчас в теме
to (5) для того что бы объеденять было очень просто все расположенно во внешней обработке и всего в трех процедурах в модуле приложения. Поэтому не вижу сложностей с объединением.
8. Яков Коган (Yashazz) 1940 09.02.10 18:00 Сейчас в теме
Ещё бы режимы обозвать поприятнее, а то "Designer"... Впрочем, не ново. Coder1cv8 уже выкладывал такую, сугубо недурственную.
9. Дмитрий Леонов (Psylocibine) 09.02.10 18:19 Сейчас в теме
В файловом режиме работает?
10. Сергей Данилов (pencroff) 121 09.02.10 18:30 Сейчас в теме
(9) работает с любым вариантом системы. Для отключения пользователей используются вызовы:
  • ЗавершитьРаботуСистемы()
  • ПрекратитьРаботуСистемы()
11. Дмитрий Плотников (Zexes) 10.02.10 00:29 Сейчас в теме
12. Сергей Тучин (SergeyT2006) 10.02.10 07:56 Сейчас в теме
А чем не устраивает КонсольКластеровСерверов - стандартная обработка от 1С?
13. Saw (Re:аниматор) 10.02.10 09:16 Сейчас в теме
лучше сделать систему оповещения пользователям, чего кстати нет в стандарте
14. Сергей Данилов (pencroff) 121 10.02.10 10:35 Сейчас в теме
(13) Хорошая идея. Расширить функционал для системы оповещения.
15. Ильшат Давлетов (davlen) 56 10.02.10 10:59 Сейчас в теме
{Форма.СервисФорма(123,9)}: Переменная не определена (ДополнительныйМодуль)
Если <<?>>ДополнительныйМодуль.ПустоеЗначение(ЭлементМассива.Пользователь) Тогда

Что это за ДополнительныйМодуль
andre solovij; +1 Ответить 1
16. Сергей Данилов (pencroff) 121 10.02.10 11:14 Сейчас в теме
(15) Сори. Не заметил. Это я написал аналог функции 7.7 ПустоеЗначение().
Вот ее текст:
//	Аналог ПустоеЗначение из 7.7
Функция ПустоеЗначение (Элемент = Неопределено) Экспорт
	Если Элемент = Неопределено Тогда
		Возврат Истина;	
	КонецЕсли;
	ТипЭл = ТипЗнч(Элемент);
	Если ТипЭл = Тип ("Строка") Тогда
		Возврат ПустаяСтрока(Элемент);	
	ИначеЕсли ТипЭл = Тип ("Дата") Тогда
		Возврат (Элемент = Дата('00010101000000'));
	ИначеЕсли ТипЭл = Тип ("Число") Тогда
		Возврат (Элемент = 0);
	ИначеЕсли ТипЭл = Тип ("Структура") Тогда
		Возврат Ложь;
	Иначе		
		//	Продолжить для всех типов
		Возврат ПустаяСтрока(Строка(Элемент)); // Пока так
	КонецЕсли;
КонецФункции
...Показать Скрыть
andre solovij; +1 Ответить 3
17. Роман Ершов (MRAK) 692 10.02.10 11:43 Сейчас в теме
(12) она в файловом варианте работает? :)
18. Яков Коган (Yashazz) 1940 10.02.10 11:57 Сейчас в теме
(16) А что, "ЗначениеЗаполнено" уже отменили?
19. Сергей Данилов (pencroff) 121 10.02.10 12:06 Сейчас в теме
(18) :) Не знал. Посмотрю. Спасибо за подсказку.
20. sound sound (sound) 518 10.02.10 12:31 Сейчас в теме
Видимо, человек недавно с 8-кой, но чувствуется, что потенциал есть. С почином :)
21. Сергей Данилов (pencroff) 121 10.02.10 12:35 Сейчас в теме
22. Ильшат Давлетов (davlen) 56 10.02.10 13:50 Сейчас в теме
{Форма.СервисФорма(114)}: Поле объекта не обнаружено (ргОтключениеПользователей)
ОтклПользователей = РегистрыСведений.ргОтключениеПользователей;
23. Сергей Данилов (pencroff) 121 10.02.10 13:52 Сейчас в теме
(22) А вы читали текст статьи?
24. Ильшат Давлетов (davlen) 56 10.02.10 13:53 Сейчас в теме
(22)сори не внимательно читал :D
25. Александр Цегельников (markers) 186 11.02.10 03:25 Сейчас в теме
26. Сергей Данилов (pencroff) 121 11.02.10 11:29 Сейчас в теме
Доброго дня. Ребята кто может скачать Разукрашку и выслать на почту. А то не могу. Не красивый какой то пост. А своего рейтинга не хватает. Спасибо всем кто поставил плюсик. Всем удачи.
27. Сергей Садыхов (SerG_121) 429 12.02.10 00:10 Сейчас в теме
(25) markers твоя обработ норм но ета лучше, тем что она культурно выгоняет пользователей :)
28. Сергей Данилов (pencroff) 121 12.02.10 17:56 Сейчас в теме
:idea: Ребята сделайте +1 пожалуйста хочу скачать "Разукрашку" и переоформить пост.
Tavalik; vova329; vlasvik; alex185800; +4 Ответить
29. levank (levank) 13.02.10 19:09 Сейчас в теме
где взять ДополнительныйМодуль ?
30. Сергей Данилов (pencroff) 121 14.02.10 00:43 Сейчас в теме
(29) По подробнее пожалуйста про доп модуль. И прочтите все комментарии.
31. Андрей Краснокутский (Andry.Boris) 53 15.02.10 01:42 Сейчас в теме
Поставил... ошибок много... исправил...
не работает... автор проверь и откорректируй...
+ только за старание
32. Сергей Данилов (pencroff) 121 15.02.10 12:16 Сейчас в теме
(31) Спасибо за +
А если можно поконкретнее что за ошибки? А то у меня все работает :)
33. Людмила (euphoria12) 15.02.10 17:43 Сейчас в теме
Обработка в режиме 1с Предприятия не открывается, возникает ошибка:
(Недопустимое значение параметра (параметр номер '1') ВыборкаРегистра = ОтклПользователей.Выбрать(Отбор)).
Регистр, обработку добавили, модуль приложения дополнили... Как быть, подскажите, пожалуйста.
Прикрепленные файлы:
34. Сергей Данилов (pencroff) 121 15.02.10 17:55 Сейчас в теме
(33)А что за конфигурация? Ошибка отбора из-за того что у вас не совпадают выборки из справочника пользователи измерение регистра? И есть ли вообще измерение Пользователь?
35. Людмила (euphoria12) 16.02.10 11:10 Сейчас в теме
(34) Измерение регистра - добавлено как написано, СправочникСсылка.Пользователи, Конфигурация - УПП 1.2(1.2.26.1) немного дописанная. Файловый вариант базы для проверки.
При запуске 1С Предприятие происходит циклический вызов Процедуры контроля отключения (из модуля приложения) - и выдается подобное сообщение...хм (а также при запуске обработки)
36. Людмила (euphoria12) 16.02.10 11:36 Сейчас в теме
(35) УРАА, работает! нашла неувязку - обязательным должно быть свойство "Ведущее" для измерения РС. Спасибо.
з.ы. единственное - при попытке изменения времени до отключения (<3,>5) ошибка:Метод объекта не обнаружен (Сообщение)
ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
Прикрепленные файлы:
37. Сергей Данилов (pencroff) 121 16.02.10 11:57 Сейчас в теме
(36) Спасибо за заметку. Вот Функция Сообщить.
// Выводит ТекстСообщения в окне сообщений
// ======================================
// Детальность - число, определяет, к какому уровню детальности относится сообщение,
// добавляются отступы соответственно уровню детализации.
// Маркер - статус сообщения. Принимает значения: Инфо, Внимание, Важно, ОченьВажно, Обычное.
// Другой маркер выводит сообщение без статуса.
// Объект о котором формируется информация.
//  Для документа выводится Название, номер, дата.
//  Для справочника выводится Наименование, код.
// Возможные значения для Детальность - 0/1/2/3
Процедура Сообщение(ТекстСообщения, Детальность=0, Маркер="", Объект = "") Экспорт
    Отступ = "";
    ТекстОбъект = "";
    ДопТекст = "";
    ГлбинаОтступов = 3; //  MAX Колличество уровней детализации
    Если (Детальность <= ГлбинаОтступов) Тогда
        Для К=1 по Детальность Цикл
            Отступ = Отступ + "  ";
        КонецЦикла;
        Если НЕ ДополнительныйМодуль.ПустоеЗначение(Объект) Тогда
            // Обработка объекта
            СтрОбъект = Строка(ТипЗнч(Объект));
            Если Найти (СтрОбъект, "Документ") <> 0 Тогда
                ДлСтрОбъект = СтрДлина (СтрОбъект);
                НаименованиеОбъект = Найти (СтрОбъект, ":");
                ТекстОбъект = Прав(СтрОбъект,ДлСтрОбъект - НаименованиеОбъект-1) + " № " + Объект.Номер + " от " + Формат(Объект.Дата,"ДФ=dd.MM.yy")+ ": ";
                ДопТекст = Символы.Таб + Символы.Таб + Символы.Таб + Символы.Таб + ":Д";
            ИначеЕсли Найти (СтрОбъект, "Справочник") <> 0 Тогда
                ТекстОбъект = Объект.Наименование + " № " + Объект.Код + ": ";
                ДопТекст = Символы.Таб + Символы.Таб + Символы.Таб + ":С";
            КонецЕсли;
        КонецЕсли;
        Если Маркер = "Инфо" Тогда
            Маркер = СтатусСообщения.Информация;
        ИначеЕсли Маркер = "Внимание" Тогда
            Маркер = СтатусСообщения.Внимание;
        ИначеЕсли Маркер = "Важно" Тогда
            Маркер = СтатусСообщения.Важное;
        ИначеЕсли Маркер = "ОченьВажно" Тогда
            Маркер = СтатусСообщения.ОченьВажное;
        ИначеЕсли Маркер = "Обычное" Тогда
            Маркер = СтатусСообщения.Обычное;
        Иначе
            Маркер = СтатусСообщения.БезСтатуса;
        КонецЕсли;
        Сообщить(Отступ + ТекстОбъект + ТекстСообщения + ДопТекст, Маркер);
    КонецЕсли;
КонецПроцедуры
...Показать Скрыть
38. Иван Петров (Supert1) 18.02.10 11:02 Сейчас в теме
Вот такая ошибка:

{Форма.СервисФорма(123)}: Метод объекта не обнаружен (ПустоеЗначение)
			Если ДополнительныйМодуль.ПустоеЗначение(ЭлементМассива.Пользователь) Тогда
39. Сергей Данилов (pencroff) 121 18.02.10 13:54 Сейчас в теме
(38) Читай комментарии. Этот вопрос уже подымали.
40. Ярослав Радкевич (WKBAPKA) 199 21.02.10 12:44 Сейчас в теме
правда ЗначениеЗаполнено не работает с мутабельными, тобишь составными, как я понял, значениями (слово же ругательное придумали, мутабельное)....
41. Sergey Uskov (masson) 24.02.10 14:03 Сейчас в теме
пожалуйста, подскажите, что сделал я неверно. При запуске обработки всплывает окно "Выбранный файл не является внешней обработкой. Либо данная обработка не предназначена для запуска в данной конфигурации." конфигурация УПП 8.1.2.28.1 платформа 8.1.15.14 регистр сведений "ргОтключениеПользователей" в конфигураторе создал. Может быть не верно присоединил дополнительную обработку? Пожалуйста, подскажите.
42. Сергей Данилов (pencroff) 121 24.02.10 14:09 Сейчас в теме
(41) Обработку можно открывать и просто файлом. Через меню файл-открыть.
Попробуйте еще раз скачать ее с сайта.
43. Sergey Uskov (masson) 26.02.10 09:53 Сейчас в теме
спасибо за рекомендации. вновь скачал epf-шник. снова после открытия сообщение : "...
{Форма.СервисФорма(123,9)}: Переменная не определена (ДополнительныйМодуль)
Если <<?>>ДополнительныйМодуль.ПустоеЗначение(ЭлементМассива.Пользователь) Тогда
{Форма.СервисФорма(193,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма(198,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма(207,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма(212,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма(288,5)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение("Отключать текущего пользователя запрещено!");
..."

скорее всего что-то я упустил.
Пожалуйста, подскажите на что обратить внимание.
Спасибо.
cry; Светлый ум; RodinMax; ZNW; +4 Ответить
44. Виктор Базаров (vbazaroff) 24 27.02.10 15:42 Сейчас в теме
masson - а у тебя платформа какая ?
45. Sergey Uskov (masson) 28.02.10 15:04 Сейчас в теме
8.1.15.14 а необходима какая?
46. Сергей Данилов (pencroff) 121 28.02.10 15:07 Сейчас в теме
to (45) ваш ответ в (36) и в (16) Посмотрите эти комментарии и будет вам счастье :)
47. Екатерина Егорова (ZNW) 01.03.10 12:58 Сейчас в теме
Проблема та же, что и у masson -
при запуске ругается:
{Форма.СервисФорма(123,9)}: Переменная не определена (ДополнительныйМодуль)
Если <<?>>ДополнительныйМодуль.ПустоеЗначение(ЭлементМассива.Пользователь) Тогда
{Форма.СервисФорма(193,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма(198,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма(207,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма(212,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма(288,5)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение("Отключать текущего пользователя запрещено!");

:(

Платформа - 8.1 (8.1.14.72)
Конфигурация - УПП 1.2 (1.2.28.1)

48. Сергей Данилов (pencroff) 121 01.03.10 13:06 Сейчас в теме
To (45) и (47) уважаемые. Ошибка возникает из-за того что когда я писал обработку то использовал уже написанные мной процедуры и функции приведенные в комментариях (36) и (16). Поэтому нужно либо создать модуль "ДополнительныйМодуль" и в него поместить эти функции. Или добавить их в обработку и покончить с ошибками.
49. Zerg118 (ZergKRSK) 03.03.10 07:57 Сейчас в теме
Эта штука на Бухгалтерии Предприятия попрет?
50. Сергей Данилов (pencroff) 121 03.03.10 10:38 Сейчас в теме
to (49) Да. Вся выгонялка построена на регистре сведение и 3-х процедурах в модуле приложения. Обработка которае здесь позволяет просто редактировать записи в регистре.
51. Zerg118 (ZergKRSK) 03.03.10 10:58 Сейчас в теме
Спасибо, скачаем и затестим!
52. Алексей Кузнецов (lex872) 11.06.10 10:01 Сейчас в теме
Прикольноя обработочка, жаль что она не работает с БП... Может их можно подружить?

{Форма.СервисФорма(123,9)}: Переменная не определена (ДополнительныйМодуль)
Если <<?>>ДополнительныйМодуль.ПустоеЗначение(ЭлементМассива.Пользователь) Тогда
{Форма.СервисФорма(193,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма(198,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма(207,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма(212,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма(288,5)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение("Отключать текущего пользователя запрещено!");
53. Сергей Лепинин (IfYouWant_YouCan) 10.08.10 10:10 Сейчас в теме
откуда взялся дополнительныймодуль? ))
54. Роман (PRoman) 74 11.08.10 12:04 Сейчас в теме
 Следуя всем замечаниям перенес обработку из УТП в УПП (без дополнительного модуля) все заработало с первого раза.


не заработало с первого раза :)
55. Сергей Данилов (pencroff) 121 18.08.10 07:53 Сейчас в теме
56. Алексей Синютин (ZZnOB) 19.08.10 13:56 Сейчас в теме
Да... Очень жаль что не дружит с БП :cry:
57. Сергей Данилов (pencroff) 121 20.08.10 15:44 Сейчас в теме
(56) Что такое БП и почему не дружит?
58. Алексей Синютин (ZZnOB) 21.08.10 11:29 Сейчас в теме
БП - Бухгалтерия Предприятия. А не дружит, потому что:

{Форма.СервисФорма(123,9)}: Переменная не определена (ДополнительныйМодуль) 
Если <<?>>ДополнительныйМодуль.ПустоеЗначение(ЭлементМассива.Пользователь) Тогда 
{Форма.СервисФорма(193,3)}: Переменная не определена (ДополнительныйМодуль) 
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо"); 
{Форма.СервисФорма(198,3)}: Переменная не определена (ДополнительныйМодуль) 
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо"); 
{Форма.СервисФорма(207,3)}: Переменная не определена (ДополнительныйМодуль) 
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо"); 
{Форма.СервисФорма(212,3)}: Переменная не определена (ДополнительныйМодуль) 
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо"); 
{Форма.СервисФорма(288,5)}: Переменная не определена (ДополнительныйМодуль) 
<<?>>ДополнительныйМодуль.Сообщение("Отключать текущего пользователя запрещено!"); 
...Показать Скрыть

Вот так ругается
59. Taras Варварич (itar59) 87 23.09.10 12:24 Сейчас в теме
В файловом варианте все класс!!!!
но в серверном увы...... и ах.........
60. Сергей Данилов (pencroff) 121 24.09.10 09:37 Сейчас в теме
(59) Извините но какая разница какой вариант? Работа обработки не зависит от варианта. И что пишет в серверном варианте?
61. Denis Lookin (lookindenis) 86 01.10.10 22:29 Сейчас в теме
62. dmitn 06.10.10 10:52 Сейчас в теме
Выдает ошибки:

{МодульПриложения(50,20)}: Переменная не определена (УправлениеПользователями)
Пользователь = <<?>>УправлениеПользователями.ОпределитьТекущегоПользователя();
{МодульПриложения(94,26)}: Переменная не определена (УправлениеПользователями)
Отбор.Пользователь = <<?>>УправлениеПользователями.ОпределитьТекущегоПользователя();
{МодульПриложения(172,26)}: Переменная не определена (УправлениеПользователями)
Отбор.Пользователь = <<?>>УправлениеПользователями.ОпределитьТекущегоПользователя();
63. dmitn 06.10.10 14:28 Сейчас в теме
В общем, удалось адаптировать под свою конфигурацию. В целом понравилось :) Ставлю плюс
64. kojinandrej Кожин (kojinandrej) 56 05.04.11 20:14 Сейчас в теме
Супер работает бомба!!! :D :!:
65. Андрей Чемоданов (AndrChem) 21.04.11 10:39 Сейчас в теме
Бухгалтерия предприятия 2.0
получаю вот такое сообщение:
{Форма.СервисФорма.Форма(14)}: Недостаточно фактических параметров
Пользователь = УправлениеПользователями.ОпределитьТекущегоПользователя();
66. Арсений Гришаев (Pro-tone) 82 05.07.11 15:50 Сейчас в теме
Хорошая вещь, допиливать конечно под себя ее нужно еще, но я поставил +

Автор:

Предупреждение("Извините но вы не предприняли никаких действий.",5,"Отключение.");
ЗавершитьРаботуСистемы(); - сюда очень рекомендую поставить

ЗавершитьРаботуСистемы(Ложь); либо ПрекратитьработуСистемы();
потому что при Истина после вопроса о завершении работы юзеры жмут -"Нет", и их фиг выгонишь тогда,
а вот потом когда они начнут заходить у них будет "Тушим" и отрубаться сразу.

Автор, расшифруй, пожалуйста, префиксы состояний отключения в РС. А,Б,Ш,К и пр.

Также я бы не стал оставлять флаг "Быстрое отключение" в положении Истина после отключения надо бы юзеру ставить Ложь туда,
а если делаешь так, то добавить надо колонку в тч обработки твоей что-то типа "разрешено быстрое отключение".
67. Аркадий Кучер (Abadonna) 3648 05.07.11 16:16 Сейчас в теме
Начали баловаться в 8х тем, чем народ в 7.7 переболел? Курочить конфу... Абсолютно всё можно решить как стандартными методами самой 1С (8х), и так и сетевым администрированием.
68. Арсений Гришаев (Pro-tone) 82 06.07.11 09:29 Сейчас в теме
(67) ну да, можно еще проблему решить силой звукового давления своих голосовых связок
69. Аркадий Кучер (Abadonna) 3648 06.07.11 09:38 Сейчас в теме
(68) Проблема решается спокойно программно теми, кто не только в 1С наловчился кодить
70. Виталий Комаров (groundv) 01.09.11 08:26 Сейчас в теме
{Форма.СервисФорма.Форма(123,9)}: Переменная не определена (ДополнительныйМодуль)
Если <<?>>ДополнительныйМодуль.ПустоеЗначение(ЭлементМассива.Пользователь) Тогда
{Форма.СервисФорма.Форма(193,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма.Форма(198,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма.Форма(207,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма.Форма(212,3)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение(СтрСообщения,1,"Инфо");
{Форма.СервисФорма.Форма(288,5)}: Переменная не определена (ДополнительныйМодуль)
<<?>>ДополнительныйМодуль.Сообщение("Отключать текущего пользователя запрещено!");

КА 8.2
И где тут без Доп.модуля?
71. Виталий Комаров (groundv) 01.09.11 08:50 Сейчас в теме
После дописки "Дополнительного модуля" в конфе.
получаем
{ВнешняяОбработка.доОбработкаОтключения.МодульОбъекта(35)}: Метод объекта не обнаружен (ОпределитьТекущегоПользователя)
ТекПользователь = УправлениеПользователями.ОпределитьТекущегоПользователя();
72. Sas001 (Sas001) 15.09.11 10:59 Сейчас в теме
плюс за идею кулюторного отключения, ну и за труды конечно же :D
73. Vetal Mmmm (vetalm) 90 27.09.11 13:49 Сейчас в теме
обработка отличная - но есть баг - какимто образом пользователям всеже удается "невыганятся" из 1с
74. Владимир Федин (fwa) 07.10.11 11:02 Сейчас в теме
К сожалению не работает на платформе 8.2
75. Иван Мелихов (ivn75) 07.10.11 11:24 Сейчас в теме
жаль, что не работает на 8.2. Очень нужно
76. Дмитрий Малина (malina-da) 10.10.11 10:15 Сейчас в теме
Спасибо за обработку, полезная вещь.
77. полякова (opolyakova) 8 12.10.11 11:04 Сейчас в теме
78. Oleg Inkeri (accnt) 14.10.11 16:03 Сейчас в теме
хорошая,только по ходу конфу менять придется...
79. Алекс Фергюсон (Foxux) 17.10.11 19:30 Сейчас в теме
Жалко, что не пригодилась :( Толи описание не соответствует, толи я что то неверно делал. В общем нашел альтернативный этой обработке путь. Но автору все равно спасибо за старание.
80. Дмитрий Зимин (mhst) 24.10.11 15:20 Сейчас в теме
спасибо автору, обработка понравилась
81. Владимир Шатохин (vovkakursk) 24.10.11 19:29 Сейчас в теме
82. Сергей Данилов (pencroff) 121 31.10.11 16:15 Сейчас в теме
(73) vetalm,
К сожалению я так и не разобрался почему не происходит отключения.
Но это происходит когда уже запущена какая либо долго работающая операция.
83. Екатерина Толмачева (Umka18) 08.11.11 17:44 Сейчас в теме
Хорошая, только в конфу модуль вкорячивать неудобно..
84. Reticent (Reticent) 16.11.11 06:38 Сейчас в теме
ещё в вкручивал в программу, но больше интересует сохранения данных у пользователей
85. Алексей Станиславович (Drizer2000) 13 16.11.11 22:37 Сейчас в теме
А что выгонялка только для УПП? Для БП 2.0 подойдет, по-идее такие вещи должны быть универсальны
86. Алек4сандр Ершов (sanja) 137 28.12.11 16:30 Сейчас в теме
не закрывает базы. Где само отключение
87. Андрей Квасов (kvandr) 6 21.01.12 11:47 Сейчас в теме
Все хорошо работает, правда долго разбирался с настройкой
88. анна Анютка (anna30) 21.01.12 15:44 Сейчас в теме
89. Dima Dr. (Scukosan) 30.01.12 15:17 Сейчас в теме
задумка хорошая, но реализация явно "сырая"
чем то напомнило "тут читать, тут не читать, а тут я рыбу заворачивал.."
90. aaa aaa (a_a) 16.02.12 07:56 Сейчас в теме
обработка пригодилась, удобна в использовании
91. Надежда М (jiggli) 01.06.12 10:40 Сейчас в теме
Большое спасибо! Очень пригодилась
92. Oscar Oscar (OscarTT) 24.07.12 13:23 Сейчас в теме
"Foxux"
Жалко, что не пригодилась :( Толи описание не соответствует, толи я что то неверно делал. В общем нашел альтернативный этой обработке путь. Но автору все равно спасибо за старание."
А что за альтернатива?
93. Александр М (Fruit83) 28 30.08.12 17:08 Сейчас в теме
94. Юлия Пухова (luchyk007) 30.04.13 07:58 Сейчас в теме
Спасибо, уточните ещё, может Ваша обработка отправлять сообщения пользователям, или только отключает сеансы.
95. Сергей Данилов (pencroff) 121 30.04.13 11:52 Сейчас в теме
Он не позволяет слать сообщения. Но выводит несколько предупреждений перед отключением пользователя.
96. Serg Eli (elizarovs) 70 17.05.13 13:38 Сейчас в теме
Респект. Нужная программа!
Пришлось немного подточить. В идеале, к публикации хорошо бы было приложить конфу, которую можно было бы встроить в мою. Самописанная конфигурация, пришлось добавить, само собой, описанные выше объекты. Проблема вышла с Измерением Пользователь в регистре (автор написал "ИЛИ", а нужно "И". Хорошо, что в комментариях добрые люди описали проблему). А по-настоящему пришлось помучиться с функцией "ОпределитьТекущегоПользователя()". Имеющаяся в УПП не подошла. Взял из ЗУП, подточил, всё заработало. В любом случае благодарен автору.
97. Александр Новиков (ZergKRSK) 119 24.05.13 12:07 Сейчас в теме
(96) elizarovs, в УПП воспользовался глЗначениеПеременной("глТекущийПользователь") для определния текущего пользователя и всё, допфункцию не городил
98. Serg Eli (elizarovs) 70 24.05.13 12:24 Сейчас в теме
(97) ZergKRSK, В УПП может быть. У меня-то самописанная. Думал из УПП готовую функцию к себе скопировать, о результатах написал, чтобы другим проще было.
99. Nata (Nata) 7 19.05.14 10:59 Сейчас в теме