Красивая временная блокировка (7.7+Formex)

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

Просто красивая блокировка сеанса

Можно просто добавить на панель инструментов или

заменить стандартную блокировку с помощью http://infostart.ru/projects/602/

 

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

Наименование Файл Версия Размер
fn_lock.ert
.1240304255 36,50Kb
25.09.09
334
.1240304255 36,50Kb 334 Скачать
fn_lock + Formex
.1240390985 246,17Kb
25.09.09
183
.1240390985 246,17Kb 183 Скачать

См. также

Добавить вознаграждение
Комментарии
1. dahanago (sys_adminus) 21.04.09 14:25 Сейчас в теме
это конечно прикольная штука- но ввожу пароль, а он не впускает обратно :-(
2. Алексей Плутенко (Noy) 1054 21.04.09 14:29 Сейчас в теме
(1) Странно, я тестировал на 20 пользователях - вроде все ОК.
3. dahanago (sys_adminus) 21.04.09 14:36 Сейчас в теме
к стати у меня терминал - щас покапаюсь
4. Артур Аюханов (artbear) 847 21.04.09 14:38 Сейчас в теме
5. vip (vip) 21.04.09 14:52 Сейчас в теме
6. Алексей Плутенко (Noy) 1054 21.04.09 14:56 Сейчас в теме
(1,3) Как вариант - обработку можно запустить со "своим" паролем - передать в Форма.Параметр строку. (Например ОткрытьФормуМодально("Отчет","777","C:\... .\fn_lock.ert") - пароль будет "777" ).
7. Василий (ded00786) 348 22.04.09 09:54 Сейчас в теме
8. Дмитрий (Bezborodoff) 22.04.09 10:02 Сейчас в теме
9. Елена Кершукова (kery) 22.04.09 10:42 Сейчас в теме
А я красоты не увидела.
{C:\2009\ZIK2009\FN_LOCK.ERT(57)}: Неудачная попытка создания объекта (Окна)
10. Андрей (andrewalexk) 22.04.09 10:47 Сейчас в теме
:)
..а у мадемуазель формекс стоит?
11. Алексей Плутенко (Noy) 1054 22.04.09 10:57 Сейчас в теме
(9) Скачайте http://www.dorex.ru/files/?formex_t.zip Затем из архива достаньте файлик FormEx.dll и положите его в каталог с обработкой...
12. Адилет Киясов (kiyaas) 22.04.09 12:39 Сейчас в теме
Здравствуйте!! Я начинающий 1с программсит! не подскжете как это добавиьт????
13. Алексей Плутенко (Noy) 1054 22.04.09 12:42 Сейчас в теме
(12) Зайти в конфигуратор - Открыть Конфигурацию - Интерфейсы - нужный интерфес - панели инструментов - там добавляешь пункт "Отчеты - Отчеты.ВнешнийОткрыть" на вкладке дополнительно указываешь путь к файлу (лучше положить его в ExtForms), назначеашь иконку/комбинацию клавиш
14. Адилет Киясов (kiyaas) 22.04.09 12:52 Сейчас в теме
(13)
Окна=СоздатьОбъект("Окна");
{D:\NSS-OFFICE\EXTFORMS\FN_LOCK.ERT(57)}: Неудачная попытка создания объекта (Окна)
15. Алексей Плутенко (Noy) 1054 22.04.09 13:00 Сейчас в теме
16. Алексей Плутенко (Noy) 1054 22.04.09 13:04 Сейчас в теме
Добавил архив вместе с компонентой Альфа и обработкой.
Для тех, у кого еще нет єтой прекрасной компоненты
(14) и (9) Это для вас...
17. Olga (Джиневра) 22.04.09 13:06 Сейчас в теме
Вау :) Какая красивая задумка.
19. Адилет Киясов (kiyaas) 22.04.09 13:30 Сейчас в теме
все равно такая же ошибка!!!
20. pata тирарек (pata) 22.04.09 13:30 Сейчас в теме
21. Алексей Плутенко (Noy) 1054 22.04.09 13:31 Сейчас в теме
(19) Возьми обработку из архива (!!!) и длл-ку и все положи в ExtForms
22. Дмитрий Топыч (ТипТопыч) 22.04.09 13:42 Сейчас в теме
dahanago попробуй капслок нажать и большими символами набери пароль.
23. Елена Кершукова (kery) 22.04.09 13:53 Сейчас в теме
(21) Выражаю признательность за донесение искусства 1С до всяких, не особо умелых пользователей. Мерси.
24. chsm (chsm) 22.04.09 16:02 Сейчас в теме
Вхожу в 1С без пароля, заставку каким паролем убрать?
25. Василий Демидов (Душелов) 3771 22.04.09 16:04 Сейчас в теме
(24) Отправь SMS на короткий номер ХХХХ со словом пароль и в ответ пришлют смс с паролем снятия блокировки. :))
26. Алексей Плутенко (Noy) 1054 22.04.09 16:07 Сейчас в теме
(25) :) :) :)
(24) по-логике пустым...
но там немного мутно все с пользователями, у которых пароль "неопределён"...
я думал что поборол проблемку, оказывается не совсем.
27. Александр (sarius) 24 22.04.09 17:09 Сейчас в теме
28. Андроид Мар (Андроид) 172 22.04.09 17:19 Сейчас в теме
У меня ошибка такая.. У меня не прописан католог пользователя..
FN_LOCK.ERT(76)}: Поле агрегатного объекта не обнаружено (ПолучитьХэшПароляПользователя)
ХешПравильногоПароля=Сервис.ПолучитьХэшПароляПользователя(ИмяПользователя(), КаталогИБ());
29. АЛьФ (АЛьФ) 22.04.09 17:48 Сейчас в теме
2(28) Наверное, надо обновить FormEx.
30. Александр (sarius) 24 23.04.09 09:30 Сейчас в теме
Кстати, насчет пароля - может взять пароль в ВРЕГ() в самой проверке пароля?
31. Алексей Плутенко (Noy) 1054 23.04.09 10:11 Сейчас в теме
(30) А есть проблемы с паролем? У меня все пароли цифровые - там проблем нет.
Если есть ошибка - пишите - я поправлю.
32. Александр (sarius) 24 23.04.09 15:41 Сейчас в теме
(31) Да, такая проблема есть - ввод большими буквами ее решает. У себя в обработке поднял регистр - проблемы нет.
33. Алексей Плутенко (Noy) 1054 23.04.09 16:21 Сейчас в теме
(32) Исправил, обновил.
34. Олег (demaoleg) 24.04.09 00:16 Сейчас в теме
В ExtForms базы - создать папку FormEx.grp вложить оба файла (ert и dll) все работает на ура.
35. vip (vip) 24.04.09 00:31 Сейчас в теме
(34) А без этого не работает? ;))
36. napala@ (napala@) 90 27.04.09 16:28 Сейчас в теме
Красота какая! даже не хочется включать обратно ))
37. simply1 Very Simply (simply1) 3 29.04.09 10:36 Сейчас в теме
Красиво. Только размеры нужно подправить. Красота должна быть красивой до конца. :))
Идея - супер! Автору - уважуха и респект!

Провел несколько экспериментов и сделал для себя открытие. Оказывается, пароль в 1С 7.7 регистронезависимый! :((((
Столько лет я верил что регистр имеет значение ...

Исходя из этого, при проверке можно оставить только переменные: <ХешПравильногоПароля> и <ХешПароля2>. И условие упростить:

Если ХешПравильногоПароля=ХешПароля2 Тогда
... снять блокировку ...
КонецЕсли;
38. Алексей Плутенко (Noy) 1054 29.04.09 10:48 Сейчас в теме
(37) Размеры как раз и подбирал что бы покрасивше (но это уже дело вкуса).
по поводу регистронезависимого пароля - для меня тоже открытие (sarius подсказал), но так как я лично тестов не проводил, то просто добавил еще одну проверку.
39. simply1 Very Simply (simply1) 3 29.04.09 11:05 Сейчас в теме
Список контролируемых клавиш - хороший ход.
Но не понятно, зачем он здесь?
Разве не достаточно перехватывать только клавишу <Esc>?
40. Алексей Плутенко (Noy) 1054 29.04.09 11:46 Сейчас в теме
(39) Нет, нужно перехватывать еще и хоткеи...
У меня используется обработка http://infostart.ru/projects/3800/ - так если вызывать с помощью хоткея какой-нибудь журнал - то он открывается под "экраном блокировки", что есть не очень-то красиво...
то же самое относиться к хоткеям на кнопках и пунктах меню...
41. Яков Коган (Yashazz) 1957 29.04.09 11:49 Сейчас в теме
Красиво, но идейно не вполне верно - отсутствующий сотрудник может оставить на экране важные сведения, каковые всё равно видно, а это уязвимость. Лучше, если занавеска будет совсем сплошная, чтоб изображение рабочего окна 1С стало нечитабельным.
42. Алексей Плутенко (Noy) 1054 29.04.09 11:59 Сейчас в теме
(41) там легко поправить в коде ищи строки:
Для х=1 по 220 Цикл
х=х+14;
Форм.Прозрачность=х;
КонецЦикла;

Меняй на

Для х=1 по 250 Цикл
х=х+14;
Форм.Прозрачность=х;
КонецЦикла;
Форм.Прозрачность=255;

P.S. у нас в компании важные данные вообще запрещено оставлять на экране даже при блокировке, в остальных случаях - наоборот присутствует определенная открытость - сотрудник временно отошел, но он работает и даже видно над чем.
43. simply1 Very Simply (simply1) 3 29.04.09 15:10 Сейчас в теме
(40) я комбинации горячих клавиш сам нигде не назначал, кроме тех, что по умолчанию заложены в конигурацию. Поэтому, у меня ни один хоткей под блокировкой не срабатывает.
Но уж сильно большой список нужных клавиш у тебя получился.
Я бы пошел по принципу "чего меньше". Меньше перечислений нужных или НЕ нужных. Проследил бы закономерность всех хоткеев, например, они все используют сочетание Контр+Шифт, или везде используются функциональные (F?) и т.д.
Но не подумай что я тебя учу? Тем более, что обработка уже написана и работает!
Хочу отметить - написана хорошо даже для не опытных или начинающих - только скачай и запускай! Это признак профессионализма!
44. simply1 Very Simply (simply1) 3 29.04.09 15:13 Сейчас в теме
(42) - поддерживаю полностью!
А я изменил прозрачность до 190.
45. Алексей Плутенко (Noy) 1054 29.04.09 15:43 Сейчас в теме
(43) мерси за коплимант! (с) За двома Зайцами
:)

А по сути я и пошел по принципу "чего меньше" - просто у меня уже есть несколько обработок, которые содержат в себе списки "отфильтрованных" клавиш и я банально сделал копи-паст ;)
46. simply1 Very Simply (simply1) 3 30.04.09 10:21 Сейчас в теме
Предлагаю при включении блокировки в цикл вставить задержку на 500 миллисекунд. Или другое число, кому как нравится :)

"...
Для х=1 по 190 Цикл
х=х+14;
Форм.Прозрачность=х;
ВыполнитьЗадержку(500);
КонецЦикла;
..."

Когда экран затемняется постепенно, то очень красиво получается.
А для разблокировки задержка не нужна. Работать надо ведь быстро, правильно? :)

Вот код функции:

//-----------------------------------------------
Функция ВыполнитьЗадержку(мс=1000) Экспорт
// Устанавливает задержку в указанных миллисекундах
Попытка
TextScript="
|Function pause(ms)
| WScript.Sleep ms
|End Function
|";
ScrptCtrl=CreateObject("MSScriptControl.ScriptControl");
ScrptCtrl.Language = "vbscript";
ScrptCtrl.AddCode(TextScript);
ScrptCtrl.Run("pause",1000);
ScrptCtrl=Пусто;
Возврат 1;
Исключение
Возврат 0;
КонецПопытки;
КонецФункции // ВыполнитьЗадержку
47. Алексей Плутенко (Noy) 1054 30.04.09 10:29 Сейчас в теме
(46) Хорошая идея, только сильно зависит от скорости компа. Например у меня и так плавно затухает...
48. simply1 Very Simply (simply1) 3 30.04.09 10:32 Сейчас в теме
(46) что-то в цикле задержка не срабатывает ... :(
Надо еще покопаться.
49. Алексей Плутенко (Noy) 1054 30.04.09 10:41 Сейчас в теме
(48) Попробуй "обычную" задержку:
ТекВремя=ТекущееВремя(); Пока ТекВремя=ТекущееВремя() Цикл Состояние ("Пауза");КонецЦикла;
50. Сергей Пономарев (.S.e.R.e.G.a.) 30.04.09 13:12 Сейчас в теме
51. simply1 Very Simply (simply1) 3 30.04.09 14:39 Сейчас в теме
(46) функция не рабочая, прошу никого не копировать. Объект WScript с 1С-ом не подружен. Подружу, перевыложу.

(49) - задержка на 1 секунду. Это слишком много, миллисекунд 100 - с головой.

52. antz Петров (antz) 30.04.09 14:58 Сейчас в теме
53. Алексей Плутенко (Noy) 1054 30.04.09 14:59 Сейчас в теме
54. GSoft. (GSoft) 2778 30.04.09 15:29 Сейчас в теме
а у меня сделано так

-==Глобальный модуль==-

//ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ
Перем ЕстьАктивность; //нужна для определения активности пользователя


//глобальная процедура внешней компоненты FormEx

//__________________________________________________________­___________________
Процедура ПриНажатииКнопкиКлавиатуры(Конт, КодКл, кнАльт, кнШифт, кнКонтрол, Символ)
ЕстьАктивность = 1;
КонецПроцедуры


//__________________________________________________________­___________________
Процедура ЗаблокироватьПрограмму()
//проверка активности пользователя
//в конце каждой минуты флаг активности выставляем в ноль
//если за минуту активность была то время неактивности обнуляем
//иначе время неактивности накапливаем
//как только время неактивности достигает значения переменной
//КолвоМинутДоБлокировки - блокируем программу.

Если ПустоеЗначение(глПользователь.КолвоМинутДоБлокировки) = 1 Тогда
Возврат;
КонецЕсли;

Если ЕстьАктивность = 0 Тогда
ВремяНеактивностиПользователя = 1 + ВремяНеактивностиПользователя;
Иначе
ВремяНеактивностиПользователя = 1;
КонецЕсли;

Если ВремяНеактивностиПользователя = глПользователь.КолвоМинутДоБлокировки Тогда //КолвоМинутДоБлокировки Тогда
Если глПрограммаЗаблокирована = 0 Тогда
глПрограммаЗаблокирована = 1;
ОткрытьФормуМодально("Обработка.ПроверкаПароля", "Блокировка");
КонецЕсли;
КонецЕсли;

ЕстьАктивность = 0;
КонецПроцедуры // ЗаблокироватьПрограмму



//__________________________________________________________­___________________
Процедура парамОбработкаОжидания()
ЗаблокироватьПрограмму();
КонецПроцедуры // парамОбработкаОжидания


//__________________________________________________________­___________________
Процедура ПриНачалеРаботыСистемы()
Если ЗагрузитьВнешниеКомпоненты() = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;

Если глПриНачалеРаботыСистемы() <> 1 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;

//вызов процедуры парамОбработкаОжидания каждые 60 секунд (60000мС)
глСервис.ОбработкаОжидания("парамОбработкаОжидания", 60000);
КонецПроцедуры // ПриНачалеРаботыСистемы
55. Алексей Плутенко (Noy) 1054 30.04.09 15:33 Сейчас в теме
(54) Завидую...
а вот у меня есть несколько пользователей, работающих исключительно с мышей...

А каждый чих мышки ловить - накладно выходит.
56. GSoft. (GSoft) 2778 30.04.09 15:52 Сейчас в теме
(55)

повесь на обработку нажатия кнопки мыши. В формексе есть на правую и левую, сингл и дабл клик
57. Евгений Мартыненков (JohnyDeath) 291 30.04.09 16:03 Сейчас в теме
58. Артур Аюханов (artbear) 847 30.04.09 17:25 Сейчас в теме
(54) Ага, решение из (57) я делал как раз для подобных задач
59. simply1 Very Simply (simply1) 3 30.04.09 17:49 Сейчас в теме
(46) и (51) - туфта все это!

Есть метод Sleep у объекта "Система" внешней компоненты 1С++.
При мощном ПК затухание смотрится красиво только при задержке 12 миллисекунд, не больше.
60. simply1 Very Simply (simply1) 3 30.04.09 17:52 Сейчас в теме
(57) - мы с тобой в обоих форумах одновременно! :)))
61. Аркадий Кучер (Abadonna) 3652 01.05.09 06:24 Сейчас в теме
54.>ЗаблокироватьПрограмму();
при нективности. Посмешил. У меня стоит ЗавершитьРаботуСистемыНах() ибо не фиг там неактивному торчать. И бокировать у менеджера только 1С не вижу смысла.
Боликровать надо комп, решается скрин-сейвером с паролем. А тех манагеров, у которых он не стоит, у нас на первый раз предупреждают, на второй - выгоняют
62. GSoft. (GSoft) 2778 04.05.09 11:03 Сейчас в теме
и такое есть:
у каждого пользователя в настройках есть реквизит - колво минут до блокировки,но это значение не может превышать значение константы, достигнув которого система пользователя выкидывает
63. GSoft. (GSoft) 2778 06.05.09 02:24 Сейчас в теме
собстно там просто надо в процедуре ЗаблокироватьПрограмму() убрать первое условие вначале и добавить добавить условие на проверку времени неактивности со значением константы


//__________________________________________________________­___________________
Процедура ЗаблокироватьПрограмму()
//проверка активности пользователя
//в конце каждой минуты флаг активности выставляем в ноль
//если за минуту активность была то время неактивности обнуляем
//иначе время неактивности накапливаем
//как только время неактивности достигает значения переменной
//КолвоМинутДоБлокировки - блокируем программу.

Если ЕстьАктивность = 0 Тогда
ВремяНеактивностиПользователя = 1 + ВремяНеактивностиПользователя;
Иначе
ВремяНеактивностиПользователя = 1;
КонецЕсли;

Если ВремяНеактивностиПользователя = глПользователь.КолвоМинутДоБлокировки Тогда
Если глПрограммаЗаблокирована = 0 Тогда
глПрограммаЗаблокирована = 1;
ОткрытьФормуМодально("Обработка.ПроверкаПароля", "Блокировка");
КонецЕсли;
КонецЕсли;

Если ВремяНеактивностиПользователя > Константа.КолвоМинутДоВыходаПриНеактивности Тогда
ЗавершитьРаботуСистемы(0);
КонецЕсли;


ЕстьАктивность = 0;
КонецПроцедуры // ЗаблокироватьПрограмму

64. Namer Worder (Paully) 06.05.09 16:17 Сейчас в теме
Меня так и не пускает обратно:
ХешПравильногоПароля=Сервис.ПолучитьХэшПароляПользователя(ИмяПользователя(), КаталогИБ());
{C:\DOCUMENTS AND SETTINGS\NEVASILEVSKIY\МОИ ДОКУМЕНТЫ\1С БАЗЫ\BASE КУРГАН\BASE\EXTFORMS\FORMEX.GRP\FN_LOCK.ERT(106)}: Поле агрегатного объекта не обнаружено (Полу
И чего не так? Скачал отдельно длл-ку, с офф.сайта - ни к черту. Все описанные рекомендации - делал.
65. Алексей Плутенко (Noy) 1054 06.05.09 16:28 Сейчас в теме
(64) У тебя загружается старая версия длл. Найди по поиску formex.dll на всех локальных дисках и все длл замени на новую версию.
66. Namer Worder (Paully) 06.05.09 16:59 Сейчас в теме
не помогло... че делать - как быть?
67. Алексей Плутенко (Noy) 1054 06.05.09 17:26 Сейчас в теме
в 1С - Помощь - О программе - Закладка Formex - там есть путь к внешней компоненте...
в твоем случае должен быть
C:\DOCUMENTS AND SETTINGS\NEVASILEVSKIY\МОИ ДОКУМЕНТЫ\1С БАЗЫ\BASE КУРГАН\BASE\EXTFORMS\FORMEX.GRP\FORMEX.DLL
68. GSoft. (GSoft) 2778 06.05.09 18:40 Сейчас в теме
69. Namer Worder (Paully) 07.05.09 08:29 Сейчас в теме
да, все так и есть - по поиску же ВСЕХ локальных дисков - все нашел и позаменял...
70. Namer Worder (Paully) 07.05.09 08:30 Сейчас в теме
но ничего не изменяется...
71. Namer Worder (Paully) 07.05.09 08:43 Сейчас в теме
(67)
Не нахожу таковой закладки. 1C++ - есть. На этом - все.
72. Алексей Плутенко (Noy) 1054 07.05.09 09:32 Сейчас в теме
(71) Значит формекс не обновлен. Запусти на "чистой" машине!
73. Namer Worder (Paully) 07.05.09 09:37 Сейчас в теме
(72)
Ничего не понимаю - что значит, что я не нахожу вкладки с ФормЕкс? И, я все скачивал с твоего топика. Зачем еще что-то обновлять?
74. Алексей Плутенко (Noy) 1054 07.05.09 09:41 Сейчас в теме
(73) разберись со своими внешними компонентами. У тебя либо старый формекс подгружается, либо старый 1С++ (тот который содержит в себе формекс)
75. Namer Worder (Paully) 07.05.09 11:07 Сейчас в теме
Все нормально - обновил 1cpp.dll на 2.5.0.7-версию. Спасибо!
76. Алексей Плутенко (Noy) 1054 07.05.09 12:15 Сейчас в теме
(75) Тут принято оценивать обработку: "+" или "-"...
а то куча усилий по запуску и ноль реакции - непонятно.
77. vip (vip) 07.05.09 12:36 Сейчас в теме
78. Namer Worder (Paully) 07.05.09 12:57 Сейчас в теме
79. vip (vip) 07.05.09 13:04 Сейчас в теме
(78) http://www.1cpp.ru/images/3/32/Icpp-latest.rar

Опасаться не надо. Нормальная, стабильная сборка.
И возможностей гораздо больше, чем в 2.5
2.5 больше развиваться не будет.
80. Namer Worder (Paully) 07.05.09 13:13 Сейчас в теме
81. Артур Аюханов (artbear) 847 07.05.09 15:13 Сейчас в теме
(80) Добавлю к (79)
Не просто стабильная сборка, но в результате простого запуска 1С++ вся система 1С начнет работать быстрее :)
Например, СоздатьОбъект() будет работать намного быстрее, чем без 1С++ или даже со старыми версиями 1С++, где уже было ускорение.
И т.д. и т.п.
82. Namer Worder (Paully) 07.05.09 15:25 Сейчас в теме
понятно, спасибо, что учите меня, коллеги!
83. Namer Worder (Paully) 20.05.09 10:33 Сейчас в теме
Привет. Простите за офф-топ. Почему одни журналы (к примеру) в 1С 7.7 "захлопываются" клавишей Esc, а другие нет. (в режиме Предприятие, естесственно).
84. vip (vip) 20.05.09 10:43 Сейчас в теме
85. Алексей Плутенко (Noy) 1054 20.05.09 10:50 Сейчас в теме
(83) По Esc закрываются только отчеты, обработки, документы, формы элементов справочника. Журналы и формы списка справочников закрываются по Esc только если они открыты в режиме выбора/подбора.
86. vip (vip) 20.05.09 10:53 Сейчас в теме
(85) Все правильно рассказал.
87. Namer Worder (Paully) 20.05.09 10:58 Сейчас в теме
Общий журнал документов в ТиС'е закрывается, остальные журналы - нет.
88. Аркадий Кучер (Abadonna) 3652 20.05.09 12:03 Сейчас в теме
(87) У тебя там формекс случаем не висит на журнале? Или в глобальнике на
ПриНажатииКнопкиКлавиатуры()? Не могёт он стандартно закрываться по Esc
89. Namer Worder (Paully) 20.05.09 13:54 Сейчас в теме
на журнале - no formex.dll detected;
в глобальном - ничего подобного нет;
-------------------------------------
в чем же дело?
90. Dima Dima (dumal) 26.10.11 18:37 Сейчас в теме
Поставил в одной организации и забыл. Работают уже год, наверное. Это - самая лучшая рекомендация