|
v7: Как собрать статистику действий пользователя? | ☑ | ||
---|---|---|---|---|
0
Любопытная
10.06.15
✎
10:15
|
Приветствую, уважаемые.
Есть семерочная база, в которой работают несколько пользователей. Необходимо собрать информацию о том, каким функционалом эти самые пользователи пользуются во время работы, если учесть, что процентов 60-70 инструментов - всевозможные подключенные обработки и отчеты. Журнал регистраций не подходит - в него очень многое не фиксируется. Спрашивать пользователей - долго, нудно и вообще не хочется. Хочется как-то получить информацию от бездушной железяки) |
|||
1
fisher
10.06.15
✎
10:28
|
Журнал регистрации отлично подходит. Во все отчеты/обработки до которых можешь дотянутся - втыкаешь запись в ЖР нужной инфы. Это легко, просто и эффективно.
|
|||
2
fisher
10.06.15
✎
10:29
|
А спрашивать - бесполезно.
"Все врут" (с) Д-р Хаус Или как минимум заблуждаются. |
|||
3
Смотрящий
10.06.15
✎
10:34
|
(0) во все процедуры ПриОткрытии() внешних отчетов и обработок втыкаешь это
ЗаписьЖурналаРегистрации("Открытие отчета", "", "ГрафикПланируемыхОтгрузок2", "", 3); "ГрафикПланируемыхОтгрузок2" - название открываемого отчета чтоб отловить его в журнале регистрации |
|||
4
Ёпрст
10.06.15
✎
10:46
|
(0)
ставишь формекс, далее в глобальничке лепишь ПослеОткрытия, в ней делаешь запись в ЖР. |
|||
5
Ёпрст
10.06.15
✎
10:46
|
будет ловить все отчеты и обработки, в том числе и внешние.
|
|||
6
Любопытная
10.06.15
✎
10:46
|
(1) (3) Спасибо. Видимо так и придется сделать. Тогда второй вопрос: есть инструменты для пакетной доработки? У них всевозможных отчетов/обработок 394 шуки...
|
|||
7
Ёпрст
10.06.15
✎
10:47
|
Можно и на Перехватчике всё слепить
|
|||
8
шаэс
10.06.15
✎
10:48
|
(6) долго наблюдение вести будете? а то есть отчеты/обработки, которые запускают раз в квартал
|
|||
9
Любопытная
10.06.15
✎
10:51
|
(8) Неделю, дольше не за чем. То, что запускается раз в квартал обычно является важным регламентом, а потому помнится руководством и записано на бумаге под роспись ответственного. А вот ежедневные рутинные работы, которые выполняют кассиры - с этим сложнее.
|
|||
10
Vovchicnn
11.06.15
✎
05:17
|
(3) Ты, в натуре, "Смотрящий"... возьми да и в... во ВСЕ объекты конфы твою строчку...
// теперь по теме: В ЖР можно получить ВСЁ, просто надо правильно настроить. |
|||
11
Любопытная
11.06.15
✎
05:28
|
(10) Что настроить? Это же 7.7. В настройке ЖР все галки поставлены, но при этом, к примеру, программное создание документов внешней обработкой или загрузка данных из внешних файлов там не фиксируется. И это немного не радует
|
|||
12
Vovchicnn
11.06.15
✎
05:39
|
(9) Я сталкивался с подобной проблемой. Это было в ТиС. В Спец. txt - файл складывались все деяния пользователей (в момент записи объекта). Сама процедурка лежала в Глобальном модуле, а вот вызывать её приходилось из каждого интересующего объекта...
(11) То, что это 7.7 - не плохо, а хорошо! Не все ещё дебильнулись на 8.х! А вот о том, что сделано на программном уровне внешней обработкой... согласен, в ЖР этого нет. НО! Любой объект имеет / можно добавить стандартную процедуру "ПриЗаписи", а вот в ней и указать, что сделать. Ибо: неважно, кем и откуда обект вызван, при его записи эта процедура ОБЯЗАТЕЛЬНО запустится, и сделает всё, что в ней написано. |
|||
13
Vovchicnn
11.06.15
✎
05:45
|
(11) Если интересно, я вытащу эту тему.
|
|||
14
Любопытная
11.06.15
✎
05:49
|
(12) Кому хорошо, а кому и не очень. Я уже давно с 7.7 плотно дела не имела и начинать сейчас не хочу потому что это всего лишь подготовка к переходу на 8.
С процедурами уже все понятно, сегодняшний день уйдет на рутинную работу для сбора информации. Я просто думала, что может я чего-то не знаю и есть более легкий способ. Запись объектов как таковая мне, кстати, неинтересна. Мне нужны именно используемые внешние отчеты и обработки, чтобы не потерять чего-нибудь важное из инструментов. |
|||
15
ЧеловекДуши
11.06.15
✎
07:17
|
(3) Бред, устанешь в 1С 7.7 анализировать журнал регистрации.
|
|||
16
ЧеловекДуши
11.06.15
✎
07:18
|
(11) Программные моменты нужно фиксировать самой, по желанию :)
|
|||
17
Vovchicnn
11.06.15
✎
07:56
|
(15) Платформы 8.х - вот это бред фирмы 1с. Объяснить могу - продукт продавать надо! На практике: скорость = ... (слово нецензурное), размер на диске = ... (слово нецензурное) и пр.
7.7 решает ВСЕ потребности любой конторы. Не хватает скорости (8-ка раз в 10 медленнее) - : 1. Организуй сервак, а пользователям - доступ через терминал. 2. БД сделай SQL, не будет вывесок типа "таблица занята". 3. С распределёнными БД 7.7 работает прекрасно! Кому не нравится - в школу, в 1-й класс! Нет... скорее - в ясли... На 8-ку приходится переходить по принуждению, у 7-ных клиентов одна тема: обновить правильно... |
|||
18
Андрей_Андреич
naïve
11.06.15
✎
08:05
|
(5) А можно спросить - как в глобальном модуле в ПослеОткрытии() определить, что конкретно открыто - внешний отчет, документ, журнал и т.д.?
ЗЫ: В свое время перед оптимизацией базы не поленился понавставлял в каждый отчет и внешний отчет пару строчек, отслеживающих время выполнения и записывающих в журнале регистрации. Работы в режиме копи-пасте на 2 часа |
|||
19
ADirks
11.06.15
✎
08:19
|
Мы себе завели отдельную табличку для такой статистики (SQL). Как руки почешутся чёньть удалить - глянул статистику, и удаляешь уже спокойно.
События надо ловить 2: ПриЗагрузкеФормы и ПриЗагрузкеВнешнегоОтчета Процедура ВЛог(ИмяЛога, стрСообщение, Юзер = "") Экспорт Если Юзер = "" Тогда _Юзер = Пользователь.Код; ИначеЕсли ТипЗначения(Юзер) = 2 Тогда _Юзер = Юзер; Иначе _Юзер = Юзер.Код; КонецЕсли; ИмяФайлаЛога = КаталогИБ() + "logs\" + ИмяЛога + ".log"; стрСообщение = ""+ТекущаяДата()+" "+ТекущееВремя()+": "+СокрЛП(Пользователь.Код)+": "+стрСообщение; Скрипт = СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.Language = "JScript"; Стр = "function AddLogString(filename, str) |{ | fso = new ActiveXObject('Scripting.FileSystemObject'); | f = fso.OpenTextFile(filename, 8, -1, 0); | f.write(str+'\n'); | f.Close(); |}"; Скрипт.AddCode(стр); Попытка Код = Скрипт.Run("AddLogString", ИмяФайлаЛога, стрСообщение); Исключение Сообщить("ошибка записи в лог: "+стрСообщение, "!"); КонецПопытки; КонецПроцедуры Процедура ЗаписатьСтатистикуОткрытияОбъекта(_Объект, фЭтоВнешнаяОбработка = 0) Экспорт Объект = _Объект; Если фЭтоВнешнаяОбработка = 1 Тогда оМетоды.РазбитьИмяФайла(_Объект,, Объект); Скрипт = СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.Language = "JScript"; Стр = " |function RemoveBucks(str) |{ | var i1 = str.indexOf('$'), i2 = str.lastIndexOf('$'); | return str.substr(0, i1) + str.substr(i2+1); |} |"; Скрипт.AddCode(стр); Объект = Скрипт.Run("RemoveBucks", Объект); Объект = "Внешний:" + Объект; КонецЕсли; ТекстЗапроса = "Set NoCount ON |DECLARE @Объект VarChar(200), Юзер Char(9) | |SET @Объект = '" + Объект + "' |SET Юзер = '" + Пользователь.ид9 + "' | |UPDATE СтатистикаОткрытияОбъектов | Set Загружен = GetDate(), Счетчик = IsNull(Счетчик, 0) + 1 |FROM СтатистикаОткрытияОбъектов |WHERE | Объект = @Объект | And Юзер = Юзер | |IF @@RowCount = 0 |INSERT INTO СтатистикаОткрытияОбъектов (Объект, Загружен, Юзер, Счетчик) |VALUES (@Объект, GetDate(), Юзер, 0) | |"; Если ЗапросСКЛ.Выполнить(ТекстЗапроса) <> 1 Тогда ВЛог("system", ЗапросСКЛ.ПолучитьОписаниеОшибки()); КонецЕсли; КонецПроцедуры Процедура СобытиеГМ_ПриЗагрузкеВнешнегоОтчета(ИмяФайлаОтчета) Экспорт ЗаписьЖурналаРегистрации(ИмяФайлаОтчета,, "ЗапускВнешнейОбработки",, 3); ЗаписатьСтатистикуОткрытияОбъекта(ИмяФайлаОтчета, 1); КонецПроцедуры Процедура СобытиеГМ_ПриЗагрузкеФормы(ИмяОбъекта) Экспорт ЗаписатьСтатистикуОткрытияОбъекта(ИмяОбъекта); КонецПроцедуры |
|||
20
Vovchicnn
11.06.15
✎
08:21
|
(18) Надо было спрашивать одновременно (4), (5), тогда понятнее. Ответ - НИКАК! Пусть автор (4)(5) объяснит народу, как это? А уж если не объяснит ... это даст всем повод задуматься о компетенции автора (4)(5)
|
|||
21
Андрей_Андреич
naïve
11.06.15
✎
08:34
|
(20) Да вообще ужас - сколько лет у него советов спрашиваю и знать не знал, что он лошара :)
|
|||
22
aka AMIGO
11.06.15
✎
08:37
|
(21) да ладно тебе :)
(20) - объяснять надо вновь прибывшим :) старички знают про формекс, ежемесячно по разным поводам делается несколько советов его применить, часто без оглядки на конструкцию БД в организации :) формекс - внешняя компонента, развешивающая бантики на конфигурацию :) |
|||
23
Любопытная
11.06.15
✎
08:39
|
(17) Агрессивность ваша мне не очень понятна, честно говоря. Семерка, какой бы чудесной она не была, ПО морально устаревшее. Впрочем, спор о целесообразности использования той или иной платформы вообще не для этой ветки. Я задала вполне конкретный вопрос, получила вполне конкретный ответ и, пока вы тут выплескиваете на окружающих своё "фи", обработала уже половину файлов)
(22) Мне проще внешние обработки подправить, чем разбираться с неизвестным для меня инструментом. Не та задача) Всем спасибо за конструктив! |
|||
24
DCKiller
11.06.15
✎
08:42
|
(20) М-да... это после безапелляционного комментария в (17) тем более забавно узнать, что оказывается, клюшки у тебя работают без формекса и 1с++.
|
|||
25
DCKiller
11.06.15
✎
08:45
|
(0) Если большая часть - подключаемые внешние отчеты и обработки, то эта проблема решается гораздо проще, чем тупо прописывать/модифицировать процедуру ПриОткрытии у каждой из них. Достаточно просто в событии обработки щелчка по строке таблицы значений, содержащей список этих отчетов (которая из меню "Сервис" вызывается), прописать, к примеру, запись события открытия данной обработки в ЖР.
|
|||
26
aka AMIGO
11.06.15
✎
08:45
|
(24) и еще добавлю в забавное: ты не поверишь, у нас (о, ужас!) 7.7 работает также без формекса и 1с++!
Более того, директор запретил применять какие-либо вк! :) |
|||
27
Смотрящий
11.06.15
✎
08:48
|
(25) "Файл\Открыть" в главном меню конфигурации и "ОткрытьФорму" во внешней обработке как ловить будешь ?
|
|||
28
Любопытная
11.06.15
✎
08:49
|
(25) Это не типовая конфигурация и механизм подключения и использования внешних отчетов и обработок немного другой. А кое-где так просто в коде прописан путь к нужной обработке.
Ну и в довершение ко всему просто не хочется конфигурацию трогать ради этого. |
|||
29
DCKiller
11.06.15
✎
08:52
|
(27) В нормально администрируемой конфе такого быть в принципе не должно. Ибо нефиг бухам юзать те отчеты, которые не прописаны в базе.
|
|||
30
Смотрящий
11.06.15
✎
08:54
|
(29) Только вылазит такое периодически (
|
|||
31
aka AMIGO
11.06.15
✎
09:06
|
(29) а вот это - вопрос спорный. У нас не курочится конфа, а вот внешних отчетов - полный раздельчик:
http://savepic.su/5754161.png В нём - 6 групп по видам и направлениям отчетов. Есть и статистика использования этих отчетов, для чего я создал спец отчет, обозвал его "Сплетница" http://savepic.su/5756209.png вот результат работы "сплетницы": http://savepic.su/5743921.png итого - статистика, можно использовать для востребованности отчетов. |
|||
32
aka AMIGO
11.06.15
✎
09:23
|
+31 а, не сказал.. я использую для набора статистики не ЖР, а текстовый файлик, в который и пишу, кто, что и когда запускал.
Именно, запускал для получения таблицы отчета, а не простое открытие отчета. Замедления работы БД я не заметил. Запись строчки в лог-файл выполняется быстро. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |