Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Хочется журнал работы в конфигураторе (число прочтений - 3510 )
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Хочется журнал работы в конфигураторе
29. Ноября 2006 :: 07:19
Печать  
Жалуюсь на свою девичью память. Не в состоянии я запомнить и потом быстро сказать, что именно я добавлял/изменял/смотрел/удалял в конфигураторе сегодня/вчера/неделю/месяц назад. И руководители заразы спрашивают: а что ты делал в период с 10.00 до 13.00 семь дней назад? Вот и хочется мне что-то типа журнала регистрации, только для конфигуратора. Полный логгинг моих действий при работе с метаданными, модулями, формами и таблицами. Кроме непосредственно восстановления в памяти событий, хочется этот механизм заточить под автоматический расчет времени, затраченного именно на разработку программ, на основании записанных логов. Поскажите плиз, не существует ли подобных решений и возможно ли это вообще?
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Хочется журнал работы в конфигураторе
Ответ #1 - 29. Ноября 2006 :: 09:55
Печать  
А что даст такой лог?

Что в этот день в это время ты 20 раз ворочал справочник, 50 раз записывал модуль текста и 100 раз запускал 1С:Предприятие?

Как на основании этих данных можно оценить качество и стоимость результата и тем более экстраполировать на другие задачи?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хочется журнал работы в конфигураторе
Ответ #2 - 29. Ноября 2006 :: 09:56
Печать  
(0) Такая же беда Подмигивание Вот держи:
Код
Выбрать все
'ИсторияОткрытияДокументов.vbs
'(c) trdm 2006
Dim DictHWND : Set DictHWND = CreateObject("Scripting.Dictionary")
Dim DictCPTN : Set DictCPTN = CreateObject("Scripting.Dictionary")

Dim strFilePath

Private Sub RegisterOpenWindow( spDoc )
'Stop

	Set FSO = CreateObject("Scripting.FileSystemObject")
	if Not FSO.FileExists(strFilePath) Then
		Set TextStream = FSO.CreateTextFile(strFilePath,false)
		TextStream.Close
	End If
	Set File = FSO.GetFile(strFilePath)
	Set TextStream = File.OpenAsTextStream(8,0)

	strToWrite = FormatDateTime(now(),0) +" "+spDoc.Name
	strToWrite = Replace(strToWrite,"CBodyTextDoc::","")
	strToWrite = Replace(strToWrite,"CSheetDoc::","")
	strToWrite = Replace(strToWrite,"CWorkBookDoc::","")

	TextStream.WriteLine strToWrite
	TextStream.Close

End Sub

' просто добавим окна в словарь.....
Private Sub RemakeDictHWND(  )
	DictHWND.RemoveAll
	DictCPTN.RemoveAll
    Set w = Windows.FirstWnd
    While Not w Is Nothing
		DictHWND.Add CStr(w.hWnd), w.Caption
		on error resume next
		if Len(w.Document.path)>0 Then	DictCPTN.Add w.Document.path, CStr(w.hWnd)
		on error goto 0
		Set w = Windows.NextWnd(w)
	Wend
End Sub

Private sub RegisterWindow( psWnd, spDoc )
	sHWND = CStr(psWnd.HWND)

	if Not DictHWND.Exists(sHWND) Then
		RegisterOpenWindow spDoc
	End IF
	RemakeDictHWND
	' Сохраним HWND-ы всех окон в системе и будем добавлять в лог файл только
	' те, которых раньше не было....
End Sub

' artbear - устраню ошибку, возникающую при закрытии всех окон (через меню) - если переданное окно уже не существует
' Устанавливает GlobalModuleParse в 0, что означает, что мы не парсили Глоб. модуль
'  или побывали в нем, значит возможно он изменен и придется его
' еще раз отпарсить.
Sub Configurator_OnActivateWindow(Wnd,bActive) 'As ICfgWindow, ByVal bActive As Boolean)
	On Error Resume Next
    Set doc134 = Wnd.Document
    iErrNumber = err.Number
	On Error GoTo 0
    If iErrNumber <> 0 Then
	  Exit Sub
    End If

	if Not bActive Then
		Exit Sub
	End IF
	on error resume next
	iErrNumber = Err.Number
	on error goto 0
	Set doc = Wnd.Document

	if doc.Type = 0 Then
		Exit Sub
	End IF
	RegisterWindow  Wnd, doc
End Sub

Sub Configurator_OnFileSaved( psDoc )
	if Not DictHWND.Exists(psDoc.path) Then
		RegisterOpenWindow psDoc
	End IF
	RemakeDictHWND
End Sub

Sub OpenHistory()
	Documents.Open(strFilePath)
End Sub

Sub InitScript()
'Stop
	strFilePath = IBDir+"_HistoryDocs.txt"
	str_now = CStr(Now)
	str_now = Left(str_now,10)
	str_nowA = Split(str_now,".")
	strFilePath = IBDir+""+str_nowA(2)+"_"+str_nowA(1)+"_HistoryDocs.txt"


End Sub

InitScript
'Message strFilePath
 


Сохрани в файл "ИсторияОткрытияДокументов.vbs" и закинь его куда-нить в каталог скриптов.
Дает лог в таком виде:
Код
Выбрать все
28.11.2006 18:50:31 Внешний отчет(обработка) - Журнал_Менеджера.ert
28.11.2006 18:58:33 Внешний отчет(обработка) - Журнал_Менеджера.ert
28.11.2006 18:59:11 Внешний отчет(обработка) - Журнал_Менеджера.ert
28.11.2006 19:03:01 Внешний отчет(обработка) - Журнал_Менеджера.ert
28.11.2006 19:04:00 Внешний отчет(обработка) - Журнал_Менеджера.ert
28.11.2006 19:04:32 Внешний отчет(обработка) - Журнал_Менеджера.ert
28.11.2006 19:19:31 Обработка.Журнал_Менеджера.Форма
28.11.2006 19:19:40 Обработка.Журнал_Менеджера.Форма
28.11.2006 21:48:13 Обработка.Журнал_Менеджера.Форма
28.11.2006 21:48:42 Обработка.РасшЖурнал2.Форма
28.11.2006 21:49:04 Отчет.УпрОтгрузочныйПотенциалДокумента.Форма
28.11.2006 21:49:39 Обработка.ЖурналСборки.Форма
28.11.2006 21:50:48 Обработка.ЖурналСборки.Форма
28.11.2006 22:26:55 Внешний отчет(обработка)1
28.11.2006 22:29:04 Внешний отчет(обработка) - _УправлениеИндексамиБД.ert
28.11.2006 22:30:54 Внешний отчет(обработка) - _УправлениеИндексамиБД.ert
28.11.2006 22:31:01 Внешний отчет(обработка) - _УправлениеИндексамиБД.ert
28.11.2006 22:33:17 Внешний отчет(обработка) - _УправлениеИндексамиБД.ert
29.11.2006 0:30:15 Внешний отчет(обработка) - _УправлениеИндексамиБД.ert
29.11.2006 1:16:42 Внешний отчет(обработка) - _УправлениеИндексамиБД.ert
29.11.2006 1:17:07 Внешний отчет(обработка) - _УправлениеИндексамиБД.ert
 

« Последняя редакция: 09. Декабря 2006 :: 22:08 - trdm »  
Наверх
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Хочется журнал работы в конфигураторе
Ответ #3 - 29. Ноября 2006 :: 10:00
Печать  
trdm писал(а) 29. Ноября 2006 :: 09:56:
(0) Такая же беда Подмигивание Вот держи:
Код
Выбрать все
... 



Оперативно Улыбка

А может, все-таки GComp + CVS?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хочется журнал работы в конфигураторе
Ответ #4 - 29. Ноября 2006 :: 10:05
Печать  
kms писал(а) 29. Ноября 2006 :: 10:00:
trdm писал(а) 29. Ноября 2006 :: 09:56:
(0) Такая же беда Подмигивание Вот держи:

Оперативно Улыбка
А может, все-таки GComp + CVS?

Дык это тоже работает Подмигивание
Но GComp + CVS разумеется в конце для запускается, для сотворения отчета, а этот скрипт пару месяцев назад набросал, ибо нужда в нем оказалась....
« Последняя редакция: 30. Ноября 2006 :: 00:25 - trdm »  
Наверх
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Хочется журнал работы в конфигураторе
Ответ #5 - 29. Ноября 2006 :: 23:48
Печать  
Спасибо, этот скрипт решит 90% проблем, а остальное - получу сравнением релизов MD.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать