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

09.02.10

База данных - Инструменты администратора БД

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

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

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

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

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

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

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

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

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

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

Измерения:

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

Ресурсы:

  • Отключить - Булево;
  • ЗапретПодключения - Булево;
  • БыстроеОтключение - Булево;
  • СостояниеОтключения - Строка, 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: Откорректировал процедуру кнопки отключить, заполнение регистра значений. Заполняется все отмеченные пользователи а не только последний.

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

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2757    11    1    

30

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    3246    10    1    

31

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177341    1070    0    

846

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27158    78    146    

59

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11706    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    31041    31    18    

47

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61228    87    59    

72

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10894    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. MRAK 723 09.02.10 15:54 Сейчас в теме
2. pencroff 123 09.02.10 15:59 Сейчас в теме
To 1. Подправил. Обработку прекрепил
3. SiAl 76 09.02.10 17:36 Сейчас в теме
4. artbear 1447 09.02.10 17:37 Сейчас в теме
(0) 1. Код в публикации оформи нормально, нечитаемо - значит, нельзя проверить :(
Например, можешь найти на сайте "Разукрашка" и с ее помощью раскрасить код 1С.

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

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

5. mbreaker 1412 09.02.10 17:43 Сейчас в теме
хм... не совсем понял, в чём принципиальное отличие от Установки блокировки пользователей кроме "отключение не всех пользователей"?

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

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

не говорю, что это бесполезная вещь, кому-то наверняка понравится... но, честно сказать, ради такого я бы не стал менять конфу, чтобы потом из релиза в релиз заморачиваться каждый раз на перенос этого функционала...
7. pencroff 123 09.02.10 18:00 Сейчас в теме
to (5) для того что бы объеденять было очень просто все расположенно во внешней обработке и всего в трех процедурах в модуле приложения. Поэтому не вижу сложностей с объединением.
8. Yashazz 4707 09.02.10 18:00 Сейчас в теме
Ещё бы режимы обозвать поприятнее, а то "Designer"... Впрочем, не ново. Coder1cv8 уже выкладывал такую, сугубо недурственную.
9. Psylocibine 09.02.10 18:19 Сейчас в теме
В файловом режиме работает?
10. pencroff 123 09.02.10 18:30 Сейчас в теме
(9) работает с любым вариантом системы. Для отключения пользователей используются вызовы:
  • ЗавершитьРаботуСистемы()
  • ПрекратитьРаботуСистемы()
11. Zexes 10.02.10 00:29 Сейчас в теме
12. SergeyT2006 10.02.10 07:56 Сейчас в теме
А чем не устраивает КонсольКластеровСерверов - стандартная обработка от 1С?
17. MRAK 723 10.02.10 11:43 Сейчас в теме
(12) она в файловом варианте работает? :)
13. Re:аниматор 338 10.02.10 09:16 Сейчас в теме
лучше сделать систему оповещения пользователям, чего кстати нет в стандарте
14. pencroff 123 10.02.10 10:35 Сейчас в теме
(13) Хорошая идея. Расширить функционал для системы оповещения.
65. AndrChem 21.04.11 10:39 Сейчас в теме
Бухгалтерия предприятия 2.0
получаю вот такое сообщение:
{Форма.СервисФорма.Форма(14)}: Недостаточно фактических параметров
Пользователь = УправлениеПользователями.ОпределитьТекущегоПользователя();
15. davlen 62 10.02.10 10:59 Сейчас в теме
{Форма.СервисФорма(123,9)}: Переменная не определена (ДополнительныйМодуль)
Если <<?>>ДополнительныйМодуль.ПустоеЗначение(ЭлементМассива.Пользователь) Тогда

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

{Форма.СервисФорма(123)}: Метод объекта не обнаружен (ПустоеЗначение)
			Если ДополнительныйМодуль.ПустоеЗначение(ЭлементМассива.Пользователь) Тогда
39. pencroff 123 18.02.10 13:54 Сейчас в теме
(38) Читай комментарии. Этот вопрос уже подымали.
40. WKBAPKA 214 21.02.10 12:44 Сейчас в теме
правда ЗначениеЗаполнено не работает с мутабельными, тобишь составными, как я понял, значениями (слово же ругательное придумали, мутабельное)....
41. masson 24.02.10 14:03 Сейчас в теме
пожалуйста, подскажите, что сделал я неверно. При запуске обработки всплывает окно "Выбранный файл не является внешней обработкой. Либо данная обработка не предназначена для запуска в данной конфигурации." конфигурация УПП 8.1.2.28.1 платформа 8.1.15.14 регистр сведений "ргОтключениеПользователей" в конфигураторе создал. Может быть не верно присоединил дополнительную обработку? Пожалуйста, подскажите.
42. pencroff 123 24.02.10 14:09 Сейчас в теме
(41) Обработку можно открывать и просто файлом. Через меню файл-открыть.
Попробуйте еще раз скачать ее с сайта.
43. 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; KateEgorova; +4 Ответить
44. vbazaroff 25 27.02.10 15:42 Сейчас в теме
masson - а у тебя платформа какая ?
45. masson 28.02.10 15:04 Сейчас в теме
8.1.15.14 а необходима какая?
46. pencroff 123 28.02.10 15:07 Сейчас в теме
to (45) ваш ответ в (36) и в (16) Посмотрите эти комментарии и будет вам счастье :)
48. pencroff 123 01.03.10 13:06 Сейчас в теме
To (45) и (47) уважаемые. Ошибка возникает из-за того что когда я писал обработку то использовал уже написанные мной процедуры и функции приведенные в комментариях (36) и (16). Поэтому нужно либо создать модуль "ДополнительныйМодуль" и в него поместить эти функции. Или добавить их в обработку и покончить с ошибками.
47. KateEgorova 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)

49. ZergKRSK 129 03.03.10 07:57 Сейчас в теме
Эта штука на Бухгалтерии Предприятия попрет?
50. pencroff 123 03.03.10 10:38 Сейчас в теме
to (49) Да. Вся выгонялка построена на регистре сведение и 3-х процедурах в модуле приложения. Обработка которае здесь позволяет просто редактировать записи в регистре.
51. ZergKRSK 129 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 73 11.08.10 12:04 Сейчас в теме
 Следуя всем замечаниям перенес обработку из УТП в УПП (без дополнительного модуля) все заработало с первого раза.


не заработало с первого раза :)
55. pencroff 123 18.08.10 07:53 Сейчас в теме
56. ZZnOB 19.08.10 13:56 Сейчас в теме
Да... Очень жаль что не дружит с БП :cry:
57. pencroff 123 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. itar59 87 23.09.10 12:24 Сейчас в теме
В файловом варианте все класс!!!!
но в серверном увы...... и ах.........
60. pencroff 123 24.09.10 09:37 Сейчас в теме
(59) Извините но какая разница какой вариант? Работа обработки не зависит от варианта. И что пишет в серверном варианте?
61. 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 59 05.04.11 20:14 Сейчас в теме
Супер работает бомба!!! :D :!:
66. Pro-tone 163 05.07.11 15:50 Сейчас в теме
Хорошая вещь, допиливать конечно под себя ее нужно еще, но я поставил +

Автор:

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

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

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

Также я бы не стал оставлять флаг "Быстрое отключение" в положении Истина после отключения надо бы юзеру ставить Ложь туда,
а если делаешь так, то добавить надо колонку в тч обработки твоей что-то типа "разрешено быстрое отключение".
67. Abadonna 3958 05.07.11 16:16 Сейчас в теме
Начали баловаться в 8х тем, чем народ в 7.7 переболел? Курочить конфу... Абсолютно всё можно решить как стандартными методами самой 1С (8х), и так и сетевым администрированием.
68. Pro-tone 163 06.07.11 09:29 Сейчас в теме
(67) ну да, можно еще проблему решить силой звукового давления своих голосовых связок
69. Abadonna 3958 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
И где тут без Доп.модуля?
72. Sas001 15.09.11 10:59 Сейчас в теме
плюс за идею кулюторного отключения, ну и за труды конечно же :D
73. vetalm 91 27.09.11 13:49 Сейчас в теме
обработка отличная - но есть баг - какимто образом пользователям всеже удается "невыганятся" из 1с
82. pencroff 123 31.10.11 16:15 Сейчас в теме
(73) vetalm,
К сожалению я так и не разобрался почему не происходит отключения.
Но это происходит когда уже запущена какая либо долго работающая операция.
74. fwa 07.10.11 11:02 Сейчас в теме
К сожалению не работает на платформе 8.2
75. ivn75 2 07.10.11 11:24 Сейчас в теме
жаль, что не работает на 8.2. Очень нужно
76. malina-da 10.10.11 10:15 Сейчас в теме
Спасибо за обработку, полезная вещь.
77. opolyakova 16 12.10.11 11:04 Сейчас в теме
78. 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 Сейчас в теме
83. Umka18 08.11.11 17:44 Сейчас в теме
Хорошая, только в конфу модуль вкорячивать неудобно..
84. Reticent 16.11.11 06:38 Сейчас в теме
ещё в вкручивал в программу, но больше интересует сохранения данных у пользователей
85. Drizer2000 14 16.11.11 22:37 Сейчас в теме
А что выгонялка только для УПП? Для БП 2.0 подойдет, по-идее такие вещи должны быть универсальны
86. sanja 153 28.12.11 16:30 Сейчас в теме
не закрывает базы. Где само отключение
87. kvandr 6 21.01.12 11:47 Сейчас в теме
Все хорошо работает, правда долго разбирался с настройкой
88. anna30 21.01.12 15:44 Сейчас в теме
89. Scukosan 30.01.12 15:17 Сейчас в теме
задумка хорошая, но реализация явно "сырая"
чем то напомнило "тут читать, тут не читать, а тут я рыбу заворачивал.."
90. a_a 16.02.12 07:56 Сейчас в теме
обработка пригодилась, удобна в использовании
91. jiggli 01.06.12 10:40 Сейчас в теме
Большое спасибо! Очень пригодилась
92. OscarTT 24.07.12 13:23 Сейчас в теме
"Foxux"
Жалко, что не пригодилась :( Толи описание не соответствует, толи я что то неверно делал. В общем нашел альтернативный этой обработке путь. Но автору все равно спасибо за старание."
А что за альтернатива?
93. Fruit83 28 30.08.12 17:08 Сейчас в теме
Хорошая весчь. Спасибо.
94. luchyk007 30.04.13 07:58 Сейчас в теме
Спасибо, уточните ещё, может Ваша обработка отправлять сообщения пользователям, или только отключает сеансы.
95. pencroff 123 30.04.13 11:52 Сейчас в теме
Он не позволяет слать сообщения. Но выводит несколько предупреждений перед отключением пользователя.
96. elizarovs 83 17.05.13 13:38 Сейчас в теме
Респект. Нужная программа!
Пришлось немного подточить. В идеале, к публикации хорошо бы было приложить конфу, которую можно было бы встроить в мою. Самописанная конфигурация, пришлось добавить, само собой, описанные выше объекты. Проблема вышла с Измерением Пользователь в регистре (автор написал "ИЛИ", а нужно "И". Хорошо, что в комментариях добрые люди описали проблему). А по-настоящему пришлось помучиться с функцией "ОпределитьТекущегоПользователя()". Имеющаяся в УПП не подошла. Взял из ЗУП, подточил, всё заработало. В любом случае благодарен автору.
97. ZergKRSK 129 24.05.13 12:07 Сейчас в теме
(96) elizarovs, в УПП воспользовался глЗначениеПеременной("глТекущийПользователь") для определния текущего пользователя и всё, допфункцию не городил
98. elizarovs 83 24.05.13 12:24 Сейчас в теме
(97) ZergKRSK, В УПП может быть. У меня-то самописанная. Думал из УПП готовую функцию к себе скопировать, о результатах написал, чтобы другим проще было.
99. Nata 8 19.05.14 10:59 Сейчас в теме
Оставьте свое сообщение