Автоматическая блокировка окна 1C #281672


#0 by Shipik1982
Необходимо автоматически бликировать окно 1с через 3 минуты бесдействия, с последующем модальным выводом формы для авторизации пользователя. Может кто знает, как проще реализовать этот механизм
#1 by IronDemon
Проще пару раз набрать от имени пользователя оставившего ПК не заблокированным документ. Еще можно письмо директору написать :)
#2 by Shipik1982
Не совсем проще ! Если дело идет о рабочем месте, доступ к которому имеют 5-10 человек, например 10 продавцов (рабочее место в торговом зале). А работают они под одним пользоватлем - "продавец". В данном случае кто что из продавцов контретно сделал - никогда не разберёшь. Поэтому и возникает мысть автоматически блокировать окно 1с, а авторизацию продавца производить паролем или магнитной картой.
#3 by PR
IMHO никак
#4 by IronDemon
Тогда ПодключитьОбработчикОжидания
#5 by PR
И что там проверять?
#6 by coder1cv8
Заблокировать то, проще простого, но вот чем ты будешь измерять бездействие, вот это вопрос...
#7 by IronDemon
А подключать его например при записи документа, что еще продавцы могут. Отчеты не используют, справочники не заполняют.
#8 by Shipik1982
"Обработчик" ? Какое событие мне отлавливать? Точнее сказать, как определить, что пользователь в системе не работает какое-то время ?
#9 by Shipik1982
Документы продавци делают редко. Максимум 3-5 документа в день. В основном задача продавцов сводится к просмотру остатков например в обработке "рабочее место менеджера по продажам"
#10 by IronDemon
Какая работа у продавцов? накладные бить? Вот по ним и лови. Или не только накладные? Тогда сложней.
#11 by IronDemon
Ну так дай права продавцам только на просмотр. А документы пускай старший смены делает.
#12 by Wladimir_spb
Когда-то это уже обсуждалось, жаль поиск не работает, тогда одно из решений было найдено в связке 1С с внешней прогой, отслеживающей активность пользователя винды.
#13 by Shipik1982
где об этом поподробнее можно найти ?
#14 by smaharbA
лень
#15 by romix
А что скринсейвер в виндах не прокатит?
#16 by Wladimir_spb
Думаю, можно на форуме через Яндекс поискать.
#17 by Shipik1982
А авторизовываться как ? Точнее как 1С узнает, кто авторизовался ?
#18 by Wladimir_spb
Под каждым пользователем винды свое окно 1С + Аутентификация Windows
#19 by smaharbA
мне уже нравится ход твоих мыслей, исправляешься ))
#20 by Shipik1982
Тоесть 10 пользователей ? 10 одновременно открытых окон 1С на одной железяке ? А на этом рабочем месте используется сканер штрих-кода, который на COM порту сидит, как его пользователи делить будут ? По принципу - "Кто первый встал - того и тапки".
#21 by PR
Есть прекрасное решение проблемы, просто классика жанра. Отходя от компа, залочь 1С. Кто не залочил, получил женского органа или не получил часть бабла в виде зарплаты.
#22 by Shipik1982
Да - но это все работа под одним пользователем, в понятии 1С. Если закрывать программу и токрывать её под новым (нужным) пользователем - это 15-30 сек - это долго для продавца
#23 by PR
Нифига, можно набросать свою обработку, которая вполне будет мультипользовательской :))
#24 by Wladimir_spb
Сделать обработку запрашивающую пароль при проведении документа...
#25 by PR
Ну да, гениальная идея. Сразу убьют, а пароль сделают все "1".
#26 by Wladimir_spb
Если доков 3-5 в день, то не убьют или, во всяком случае, не сразу )))
#27 by coder1cv8
Зачем закрывать, открывать?... Разве мы говорим не о ЗаблокироватьРаботуПользователя?
#28 by Shipik1982
Тоесть у меня есть глобальная переменная глПользователь При запуске 1С эта переменная заполняется значением пользователя, который запустил её, например "пользователь1". Уходя с рабочего места, "пользователь1" заблокировал работу системы. Пришел к данному рабочему месту "пользователь2", и что он должен делать ? Вводить пароль "пользователя1" ? - Тогда сообветственно и работать пользователь2 в 1с будет под имененем "пользователь1".
#29 by Wladimir_spb
В какой момент блокируем? :)
#30 by Shipik1982
Не суть важно, что это за команда, ЗаблокироватьРаботуПользователя или Обработки.АвторизацияПользователей.ПолучитьОсновнуюФорму.ОткрытьМодально Вопрос в другом: В какой момент и кто (какой обработчик) будет запускать это самое вышеуказанное действие ?
#31 by smaharbA
а в чем сложность определить запуск скринсавера  ?
#32 by Shipik1982
Каким образом ?
#33 by smaharbA
учи вми + все таже обработка ожидания
#34 by smaharbA
+ лениво, еще раз думаю ежли поразмыслит, то скажет
#35 by Shipik1982
"вми" - Что это ? И где об этом написано ?
#36 by smaharbA
windows management instrument
#37 by coder1cv8
Дык, мне тож лениво )
#38 by coder1cv8
+ После работы размышлять... Хотя с WMI эт конечно вариант )
#39 by smaharbA
да изврат, но восьмерку незнаю вообще, потому так и предложил, можно и коммандусистемы + tasklist + find использовать ))
#40 by smaharbA
+ просто находим процесс с оканчивающийся на .scr под текущем пользователем и запускаем модальное окно
#41 by smaharbA
типа
#42 by Shipik1982
Интересный Вариант. Сейчас опробую
#43 by Shipik1982
41) только команда вми = Новый COMОбъект("winmgmt") не проходит по причине: Недопустимая строка с указанием класса
#44 by coder1cv8
Ну естественно, это ж пример, не надо так буквально воспринимать...
#45 by coder1cv8
+ ПолучитьCOMОбъект("winmgmts:{impersonationLevel=impersonate}!\. ootcimv2");
#46 by coder1cv8
+ Общий принцип, так сказать, он не только из-за этого не рабочий...
#47 by Shipik1982
А эту строку Скрипт=Новый COMОбъект("MSScripControl.ScripControl"); тогда как привести к рабочему виду ?
#48 by YF
Лучше всего это решить административными методами. Решается очень легко, под чьим пользователем сделана операция - значит тот и делал - сами сразу будут лочить 1С'ку ... + На панели задач залочено 20 1С'ок как долго будешь искать свою?
#49 by Shipik1982
В этот механизм очень не удобный. И требует много времени на авторизацию пользователя.
#50 by YF
Чем неудобен? Если слишком долго авторизуются - пусть авторизуются один раз в день с утра ...
#51 by Shipik1982
читай
#52 by YF
Один пользователь - это пользователь 1С, а не винды? Если так, то как эти продавцы будут отличаться для 1С?
#53 by vde69
если доков мало, то можно сделать запрос карты доступа перед проведением документа и в этот момент писать кто именно...
#54 by Shipik1982
Тоесть у меня есть глобальная переменная глПользователь При запуске 1С эта переменная заполняется значением пользователя, который запустил её, например "пользователь1". Уходя с рабочего места, "пользователь1" заблокировал работу системы. (открылась модально форма авторизации) Пришел к данному рабочему месту "пользователь2", и провёл магнитной картой по ридеру. Модальная форма авторизации закрылась, а значение глобальной переменной глПользователь заполнилось значением справочника, соответствующего пользователю2. При создании новых документов в один из реквизитов документа подставляется значение глобальной переменной глПользователь. Тоесть в последствии становится всё ясно, кто что делал.
#55 by Shipik1982
Тоесть есть функция В этой функции на строке Скрипт = Новый COMОбъект("MSScripControl.ScripControl"); лезет ошибка: Недопустимая строка с указанием класса Кто нибуть может это исправить ?
#56 by asady
Script !!!! букву t добавь....
#57 by Shipik1982
"А слона то я и не заметил"... Функция заработала, приступаю к тестированию
#58 by Shipik1982
Всем большое спасибо !!! Все заработало. Создал маленькую тестовую конфигупацию для данного механизма.Кому интересно, могу скинуть
#59 by asady
а если у пользователя в это время открыто модальное окно - работает?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям