gifts2017

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

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

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

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

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

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

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

7. Сергей Данилов (pencroff) 09.02.10 18:00
to (5) для того что бы объеденять было очень просто все расположенно во внешней обработке и всего в трех процедурах в модуле приложения. Поэтому не вижу сложностей с объединением.
8. Яков Коган (Yashazz) 09.02.10 18:00
Ещё бы режимы обозвать поприятнее, а то "Designer"... Впрочем, не ново. Coder1cv8 уже выкладывал такую, сугубо недурственную.
9. Дмитрий Леонов (Psylocibine) 09.02.10 18:19
В файловом режиме работает?
10. Сергей Данилов (pencroff) 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) 10.02.10 10:35
(13) Хорошая идея. Расширить функционал для системы оповещения.
15. Ильшат Давлетов (davlen) 10.02.10 10:59
{Форма.СервисФорма(123,9)}: Переменная не определена (ДополнительныйМодуль)
Если <<?>>ДополнительныйМодуль.ПустоеЗначение(ЭлементМассива.Пользователь) Тогда

Что это за ДополнительныйМодуль
andre solovij; +1 Ответить 1
16. Сергей Данилов (pencroff) 10.02.10 11:14
(15) Сори. Не заметил. Это я написал аналог функции 7.7 ПустоеЗначение().
Вот ее текст:
//	Аналог ПустоеЗначение из 7.7
Функция ПустоеЗначение (Элемент = Неопределено) Экспорт
	Если Элемент = Неопределено Тогда
		Возврат Истина;	
	КонецЕсли;
	ТипЭл = ТипЗнч(Элемент);
	Если ТипЭл = Тип ("Строка") Тогда
		Возврат ПустаяСтрока(Элемент);	
	ИначеЕсли ТипЭл = Тип ("Дата") Тогда
		Возврат (Элемент = Дата('00010101000000'));
	ИначеЕсли ТипЭл = Тип ("Число") Тогда
		Возврат (Элемент = 0);
	ИначеЕсли ТипЭл = Тип ("Структура") Тогда
		Возврат Ложь;
	Иначе		
		//	Продолжить для всех типов
		Возврат ПустаяСтрока(Строка(Элемент)); // Пока так
	КонецЕсли;
КонецФункции
...Показать Скрыть
andre solovij; +1 Ответить 3
17. Роман Ершов (MRAK) 10.02.10 11:43
(12) она в файловом варианте работает? :)
18. Яков Коган (Yashazz) 10.02.10 11:57
(16) А что, "ЗначениеЗаполнено" уже отменили?
19. Сергей Данилов (pencroff) 10.02.10 12:06
(18) :) Не знал. Посмотрю. Спасибо за подсказку.
20. sound sound (sound) 10.02.10 12:31
Видимо, человек недавно с 8-кой, но чувствуется, что потенциал есть. С почином :)
21. Сергей Данилов (pencroff) 10.02.10 12:35
22. Ильшат Давлетов (davlen) 10.02.10 13:50
{Форма.СервисФорма(114)}: Поле объекта не обнаружено (ргОтключениеПользователей)
ОтклПользователей = РегистрыСведений.ргОтключениеПользователей;
23. Сергей Данилов (pencroff) 10.02.10 13:52
(22) А вы читали текст статьи?
24. Ильшат Давлетов (davlen) 10.02.10 13:53
(22)сори не внимательно читал :D
25. Александр Цегельников (markers) 11.02.10 03:25
26. Сергей Данилов (pencroff) 11.02.10 11:29
Доброго дня. Ребята кто может скачать Разукрашку и выслать на почту. А то не могу. Не красивый какой то пост. А своего рейтинга не хватает. Спасибо всем кто поставил плюсик. Всем удачи.
27. serg_121 (SerG_121) 12.02.10 00:10
(25) markers твоя обработ норм но ета лучше, тем что она культурно выгоняет пользователей :)
28. Сергей Данилов (pencroff) 12.02.10 17:56
:idea: Ребята сделайте +1 пожалуйста хочу скачать "Разукрашку" и переоформить пост.
Tavalik; vova329; vlasvik; alex185800; +4 Ответить
29. levank (levank) 13.02.10 19:09
где взять ДополнительныйМодуль ?
30. Сергей Данилов (pencroff) 14.02.10 00:43
(29) По подробнее пожалуйста про доп модуль. И прочтите все комментарии.
31. Андрей Краснокутский (Andry.Boris) 15.02.10 01:42
Поставил... ошибок много... исправил...
не работает... автор проверь и откорректируй...
+ только за старание
32. Сергей Данилов (pencroff) 15.02.10 12:16
(31) Спасибо за +
А если можно поконкретнее что за ошибки? А то у меня все работает :)
33. Людмила (euphoria12) 15.02.10 17:43
Обработка в режиме 1с Предприятия не открывается, возникает ошибка:
(Недопустимое значение параметра (параметр номер '1') ВыборкаРегистра = ОтклПользователей.Выбрать(Отбор)).
Регистр, обработку добавили, модуль приложения дополнили... Как быть, подскажите, пожалуйста.
Прикрепленные файлы:
34. Сергей Данилов (pencroff) 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) 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) 18.02.10 13:54
(38) Читай комментарии. Этот вопрос уже подымали.
40. Ярослав Радкевич (WKBAPKA) 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) 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) 27.02.10 15:42
masson - а у тебя платформа какая ?
45. Sergey Uskov (masson) 28.02.10 15:04
8.1.15.14 а необходима какая?
46. Сергей Данилов (pencroff) 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) 01.03.10 13:06
To (45) и (47) уважаемые. Ошибка возникает из-за того что когда я писал обработку то использовал уже написанные мной процедуры и функции приведенные в комментариях (36) и (16). Поэтому нужно либо создать модуль "ДополнительныйМодуль" и в него поместить эти функции. Или добавить их в обработку и покончить с ошибками.
49. Zerg118 (ZergKRSK) 03.03.10 07:57
Эта штука на Бухгалтерии Предприятия попрет?
50. Сергей Данилов (pencroff) 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) 11.08.10 12:04
 Следуя всем замечаниям перенес обработку из УТП в УПП (без дополнительного модуля) все заработало с первого раза.


не заработало с первого раза :)
55. Сергей Данилов (pencroff) 18.08.10 07:53
56. Алексей Синютин (ZZnOB) 19.08.10 13:56
Да... Очень жаль что не дружит с БП :cry:
57. Сергей Данилов (pencroff) 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) 23.09.10 12:24
В файловом варианте все класс!!!!
но в серверном увы...... и ах.........
60. Сергей Данилов (pencroff) 24.09.10 09:37
(59) Извините но какая разница какой вариант? Работа обработки не зависит от варианта. И что пишет в серверном варианте?
61. Denis Lookin (lookindenis) 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) 05.04.11 20:14
Супер работает бомба!!! :D :!:
65. Андрей Чемоданов (AndrChem) 21.04.11 10:39
Бухгалтерия предприятия 2.0
получаю вот такое сообщение:
{Форма.СервисФорма.Форма(14)}: Недостаточно фактических параметров
Пользователь = УправлениеПользователями.ОпределитьТекущегоПользователя();
66. Арсений Гришаев (Pro-tone) 05.07.11 15:50
Хорошая вещь, допиливать конечно под себя ее нужно еще, но я поставил +

Автор:

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

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

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

Также я бы не стал оставлять флаг "Быстрое отключение" в положении Истина после отключения надо бы юзеру ставить Ложь туда,
а если делаешь так, то добавить надо колонку в тч обработки твоей что-то типа "разрешено быстрое отключение".
67. Аркадий Кучер (Abadonna) 05.07.11 16:16
Начали баловаться в 8х тем, чем народ в 7.7 переболел? Курочить конфу... Абсолютно всё можно решить как стандартными методами самой 1С (8х), и так и сетевым администрированием.
68. Арсений Гришаев (Pro-tone) 06.07.11 09:29
(67) ну да, можно еще проблему решить силой звукового давления своих голосовых связок
69. Аркадий Кучер (Abadonna) 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) 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) 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) 31.10.11 16:15
(73) vetalm,
К сожалению я так и не разобрался почему не происходит отключения.
Но это происходит когда уже запущена какая либо долго работающая операция.
83. Екатерина Толмачева (Umka18) 08.11.11 17:44
Хорошая, только в конфу модуль вкорячивать неудобно..
84. Reticent (Reticent) 16.11.11 06:38
ещё в вкручивал в программу, но больше интересует сохранения данных у пользователей
85. Алексей Станиславович (Drizer2000) 16.11.11 22:37
А что выгонялка только для УПП? Для БП 2.0 подойдет, по-идее такие вещи должны быть универсальны
86. Алек4сандр Ершов (sanja) 28.12.11 16:30
не закрывает базы. Где само отключение
87. Андрей Квасов (kvandr) 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) 30.08.12 17:08
94. Юлия Пухова (luchyk007) 30.04.13 07:58
Спасибо, уточните ещё, может Ваша обработка отправлять сообщения пользователям, или только отключает сеансы.
95. Сергей Данилов (pencroff) 30.04.13 11:52
Он не позволяет слать сообщения. Но выводит несколько предупреждений перед отключением пользователя.
96. Serg Eli (elizarovs) 17.05.13 13:38
Респект. Нужная программа!
Пришлось немного подточить. В идеале, к публикации хорошо бы было приложить конфу, которую можно было бы встроить в мою. Самописанная конфигурация, пришлось добавить, само собой, описанные выше объекты. Проблема вышла с Измерением Пользователь в регистре (автор написал "ИЛИ", а нужно "И". Хорошо, что в комментариях добрые люди описали проблему). А по-настоящему пришлось помучиться с функцией "ОпределитьТекущегоПользователя()". Имеющаяся в УПП не подошла. Взял из ЗУП, подточил, всё заработало. В любом случае благодарен автору.
97. Александр Новиков (ZergKRSK) 24.05.13 12:07
(96) elizarovs, в УПП воспользовался глЗначениеПеременной("глТекущийПользователь") для определния текущего пользователя и всё, допфункцию не городил
98. Serg Eli (elizarovs) 24.05.13 12:24
(97) ZergKRSK, В УПП может быть. У меня-то самописанная. Думал из УПП готовую функцию к себе скопировать, о результатах написал, чтобы другим проще было.
99. Nata (Nata) 19.05.14 10:59
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа