Отследить бездействие

1. areavel 11.04.13 15:29 Сейчас в теме
Здравствуйте. Как в 7.7 можно отследить бездействие пользователя?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Кошки рулят 11.04.13 16:20 Сейчас в теме
(1) areavel, Зачем это нужно?
И что ты называешь бездействием?
Я не бездействовал! Я сразу капу нажал! (с) КДД чтоли?
15. dvk09 2 12.04.13 05:27 Сейчас в теме
А это добавил в процедуру ПриНачалеРаботыСистемы()
	Состояние("Инициализация внешней компоненты FormEx.dll");
	Если ЗагрузитьВнешнююКомпоненту("FormEx.dll")=0 Тогда
		Предупреждение("ОШИБКА ИНИЦИАЛИЗАЦИИ ВНЕШНЕЙ КОМПОНЕНТЫ FormEx.dll","!!!");
		ФормЕкс=0;
	Иначе
		ФормЕкс=1;
		глОкна=СоздатьОбъект("Окна");
		глСервис = СоздатьОбъект("Сервис");
		глИнформатор=СоздатьОбъект("Информатор");
		//глСервис.ВключитьРаскраскуТаблиц(); 
		глСервис.ВключитьРаскраскуТаблиц();
		глСервис.ИспользоватьПланРаскраски(1);
		Если ПустоеЗначение(Константа.ИнтервалЗакрытия)=0 Тогда
			глСервис.ОбработкаОжидания("Автозакрытие",60000);
		КонецЕсли;
		Если НазваниеНабораПрав()="НАЧАЛЬНИК_АВТОМОЙКИ" Тогда
			глОкна.ДоступностьМеню("&Сервис",0);
			глОкна.ДоступностьМеню("&Новый	Ctrl+N",0);
			глОкна.ДоступностьМеню("&Открыть	Ctrl+O",0);
			глОкна.ДоступностьМеню("&Сохранить	Ctrl+S",0);
			глОкна.ДоступностьМеню("&Сохранить	Ctrl+S",0);
			глОкна.ДоступностьМеню("Сохранить &как",0);
		КонецЕсли;
	КонецЕсли;
	
	Состояние("Инициализация внешней компоненты ROM-Mail.dll");
	Если ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll")=0 Тогда
		Предупреждение("ОШИБКА ИНИЦИАЛИЗАЦИИ ВНЕШНЕЙ КОМПОНЕНТЫ ROM-Mail.dll","!!!");
		ПочтаВК=0;
	Иначе
		ПочтаВК=1;
	КонецЕсли;
Показать
3. AnryMc 849 11.04.13 16:27 Сейчас в теме
Кто будет смотреть за смотрящим
4. areavel 11.04.13 16:28 Сейчас в теме
пользователь не производит никаких действий в окне 1с.
для чего нужно: закрыть программу 1с, если время бездействия превысило заданную величину.
6. Prionix 11.04.13 16:53 Сейчас в теме
(4) areavel, если пользователь запустил отчет который делается больше чем задано "время бездействия" - отчет закроется? или оставил редактируемый документ и выехал (задержался). Что на это скажет пользователь!
10. Кошки рулят 11.04.13 18:20 Сейчас в теме
(4) areavel, Не нужно тебе это.
Не занимайся ерундой. То, что ты пытаешься накосячить в конфигурации почти гарантированно будет ломать индексы (у дбф базы) и, скорее всего, рано или поздно повредит сам файл дбф. Доиграешься в куличики ...
12. deniseek77 86 11.04.13 22:47 Сейчас в теме
(4) areavel, Если дело только в безопасности- настраивайте блокировки компьютера. Либо ищите внешние компоненты блокировки сеанса в 1с. Если нужно депримировать нежелающих работать- тогда по другому: пишите параллельный лог файл по своей структуре, а обработками его разбирайте...
5. AHDP 8 11.04.13 16:29 Сейчас в теме
Журнал регистрации действий пользователей читай, добавив отображение интересующих событий.
7. Walker.pro 7 11.04.13 16:54 Сейчас в теме
Если работаете через удаленный рабочий стол, поставьте на него таймаут.
8. AHDP 8 11.04.13 16:56 Сейчас в теме
+6 Кстати, после длительных действий программно можно закрыть, а вот для изменённых данных штатно никак. :(
9. AnryMc 849 11.04.13 17:00 Сейчас в теме
11. AHDP 8 11.04.13 22:31 Сейчас в теме
(8) Я вас не понял.
(10) Не научите ломать индексы из конфигурации?
13. Кошки рулят 12.04.13 00:11 Сейчас в теме
(11) AHDP, Запускай базу и вали ее аварийно - индексы и поломаются, долго ждать не придется. А за ними и сами дбфы не заставят себя ждать ...
Можешь, для верности, в момент аварии записывать что-нибудь в базу или документ проводить/распроводить.
И, главное: делай все это на рабочей базе, любитель русской рулетки и одноруких бандитов ...
14. dvk09 2 12.04.13 05:22 Сейчас в теме
Я примерно так делал...
Процедура Автозакрытие()
	Перем Конт;
	Если ФормЕкс=0 Тогда
		Возврат;
	Иначе
		//Сообщить(ТипЗначения(глИнформатор));
		//Сообщить(ТипЗначенияСтр(глИнформатор));
		ВремяПростоя=глИнформатор.ПолучитьВремяПростояСистемы()/60000;
		//Сообщить(ВремяПростоя);
		текИнтервалЗакрытия=?(ПустоеЗначение(глПользователь.ЗакрытьПриПростое)=1,Константа.ИнтервалЗакрытия,глПользователь.ЗакрытьПриПростое);
		Если ВремяПростоя>=текИнтервалЗакрытия Тогда
			Сообщить("Тут надо выходить из системы ;-)");
			НеОткрытПериод=1;
			текЧас=0;
			ТекущееВремя(текЧас);
			Если текЧас>21 Тогда
				спрПользователи=СоздатьОбъект("Справочник.Пользователи");
				спрПользователи.ВыбратьЭлементы();
				Найден=спрПользователи.НайтиЭлемент(глПользователь);
				Если Найден=1 Тогда
					спрПользователи.ТекущийЭлемент();
					спрПользователи.Склероз=1;
					спрПользователи.Записать();
				КонецЕсли;
			КонецЕсли;
			Если Число(НеудачнаяПопыткаЗакрытия)=10 Тогда
				WShell=СоздатьОбъект("WScript.Shell");
				WShell.SendKeys("{ESC}");
				//Предупреждение("Закрываю 1С",5);
				WShell.SendKeys("%{F4}");
			КонецЕсли;
			ЗавершитьРаботуСистемы(0);
			НеудачнаяПопыткаЗакрытия=10;
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры
Показать
16. dvk09 2 12.04.13 05:30 Сейчас в теме
17. areavel 12.04.13 08:57 Сейчас в теме
Вот решение, если кому-то пригодиться:

Процедура Таймер() Экспорт
Простой = Информатор.ПолучитьВремяПростояСистемы();
//Сообщить("ПрошлоВремени = <"+ПрошлоВремени+">");
Простой=Цел(Простой/1000);
Форма.Обновить();
Сообщить(Простой);
Если Простой>10 Тогда
Сообщить("Застоялись больше, чем на 10 сек.");
//Форма.Закрыть();
//ЗавершитьРаботуСистемы(0);
КонецЕсли;
КонецПроцедуры

//*******************************************
Процедура Сформировать()
Окно=СоздатьОбъект("Окна");
Окно.СтильОкна(Форма,Стиль);
РасширениеФормы = СоздатьОбъект("РасширениеФормы");
РасширениеФормы.ОбработкаОжидания("Таймер", 50);
Информатор = СоздатьОбъект("Информатор");
КонецПроцедуры

Процедура ПриОткрытии()
Если ЗагрузитьВнешнююКомпоненту("1cpp.dll") = 0 Тогда //ZNH
Сообщить("Неудачная попытка загрузить 1cpp.dll Некоторые функции будут недоступны !!!");
КонецЕсли;
Если ЗагрузитьВнешнююКомпоненту("Formex.dll") = 0 Тогда //ZNH
Сообщить("Неудачная попытка загрузить Formex.dll Некоторые функции будут недоступны !!!");
КонецЕсли;
КонецПроцедуры
18. areavel 12.04.13 09:33 Сейчас в теме
тему можно закрывать.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот