7.7 Кто изменил документ????

28.09.09

База данных - Журнал регистрации

Удобный доступ к журналу регистрации!

30.01.09: Добавлена печать, работа с УРБД базами

Скачать исходный код

Наименование Файл Версия Размер
fn_mlg_ПросмотрЖурналаРегистрации.ert
.1233068370 596,00Kb
2815
.1233068370 596,00Kb 2815 Скачать бесплатно

Обработка позволяет отфильтровать события стандартного журнала регистрации по определенному документу, элементу справочника или просто по строке.

При использовании FormEx ( http://www.dorex.ru/ ) обработку можно вызвать с помощью комбинации клавиш прямо из справочника, журнала документов или формы самого документа.

Рекомендовано к совместному использованию: Быстрый доступ к отчетам

 

Возможности:

-работа с журналами регистраций больших объемов (полное сканирование файла в 250Мб - 90 секунд, последних "двух недель" - 15 секунд), на маленьких - практически летает :)

-поиск событий только по "последним" событиям журнала

-можно вызывать програмно: в Форма.Параметр ложим документ, элемент справочника или просто текст.

Требования:

Win2000 и выше

желательно FormEx (можно установить из обработки)

 

30.01.09

Добавил возможность печати

Теперь работает и в УРБД-базах

 

Обработка имеет ограничение на количество запусков.

См. также

Сбой, отказ 1C:Предприятия 7.7, код исключения e06d7363. APPCRASH 1cv7s.exe

Администрирование СУБД Журнал регистрации Системный администратор Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Прекращена работа программы "1CV7 starter program". Никто не может зайти в 1C 7.7. Апкреш. Что делать? Проверьте, возможно журнал регистрации информационной базы 1С: Предприятия 7.7 поврежден.

17.08.2020    4600    ksnik    3    

4

Анализ 1С: Предприятие 7.7 с помощью ELK стека

Журнал регистрации Инструменты администратора БД Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Рассмотрим систему на базе Elasticsearch, Logstash и Kibana (ELK Stack) для анализа логов 1С Предприятие 7.7 с целью визуализации и анализа событий 1С.

22.01.2019    11246    phsin    20    

28

USERSLOG. Система полной отчетности по использованию рабочего времени на любое количество пользователей

Журнал регистрации Учет рабочего времени Пользователь Платформа 1С v7.7 Абонемент ($m)

Система полной отчетности об использовании рабочего времени пользователями. Все действия пользователей. Сколько времени и на что потрачено. Работает с БД MSSQL, любое количество клиентов

5 стартмани

24.05.2016    17574    4    Art77    2    

6

Контроль изменений реквизитов справочников и документов

Журнал регистрации Системный администратор Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Контроль изменения всех реквизитов любых справочников и документов в любой конфигурации

1 стартмани

17.10.2015    16085    22    kras_71    6    

2

SQL-доступ к журналу регистрации 1С:Предприятие 7.7

Журнал регистрации Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Все, кто работают с 7.7, знают, что журнал регистрации тормозит нещадно, в связи с чем пользы от него очень мало, и её ещё меньше, когда размер журнала превышает хотя бы 50 мегабайт. На Инфостарте, по- моему, даже есть средства для просмотра журнала, может, даже они эффективны, но моей мечтой всегда был sql-доступ к этому журналу, т.к. это просто, наглядно, удобно и, что самое важное, - очень быстро. Кому интересно - добро пожаловать.

11.12.2014    16050    VladC#    8    

7

Исправление испорченных 1cv7.mlg

Журнал регистрации Системный администратор Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Если вы пытаетесь посмотреть журнал регистраций, а у вас неожиданно 1С7.7 спрашивает пароль, хотя вы точно уверены, что пароль на журнал не ставили - поздравляю, у вас испорчен файл 1cv7.mlg

1 стартмани

07.04.2014    20564    26    dima_home    1    

3

Рассылка ошибок из журнала регистрации 1С 7.7 на электронную почту

Журнал регистрации Email рассылки Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Очень полезно узнавать об ошибках при работе 1С раньше, чем пользователи придут жаловаться на проблемы. Если они вообще придут, а не будут молча ругать "глючную 1С".

1 стартмани

26.03.2014    18949    16    vcv    2    

5

Ошибка при запуске журнала регистрации 1с 7.7

Журнал регистрации Системный администратор Платформа 1С v7.7 Бесплатно (free)

При запуске программы выходило сообщение «Ошибка при запуске журнала регистрации». Дело было не в бабине..

04.10.2013    34493    Alexion    2    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. NoMax 233 28.01.09 10:25 Сейчас в теме
(0) Очень хорошее решение.
Протестировал на своих журналах:
407 Мб - 185 сек.
746 Мб - 315 сек.
и главное не подвешивается сама 1С.
2. Noy 1076 28.01.09 11:14 Сейчас в теме
гм... нашел "ошибку" - текстовый реквизит был длиной всего 10 символов (стандарт так сказать) - исправил
Немного переделал алгоритм и отключил видимость ТЗ при выводе данных - получился очень серьезный выигрыш в скорости на "объемных" запросах.

NoMax - попробуй плз еще раз на своих журналах и выложи результаты
3. JohnyDeath 301 28.01.09 12:02 Сейчас в теме
Смотрим http://www.1cpp.ru/docum/icpp/html/LogDataProvider.html
Где-то даже есть готовая обработка с ТП+Поставщик_ЖурналРегистрации
4. Noy 1076 28.01.09 12:06 Сейчас в теме
(3) Про это я в курсе, да вот все руки никак не дойдут разобраться с ТП
В защиту своей обработки могу сказать только: "не требует внешних компонент".
5. Ёпрст 1064 28.01.09 12:06 Сейчас в теме
(3) в репозитарии валяется класс, в конфе со всеми классами, если не ошибаюсь
:)
6. JohnyDeath 301 28.01.09 12:12 Сейчас в теме
(5) Да, там она точно есть, но я не хотел пугать людей такими страшными словами ;)))
58. evgenum 8 03.03.12 15:53 Сейчас в теме
Добавь в обработку красивый вывод сообщений УРИБ.
В функции ПеревестиВТЗ заменить:
Если СтрЧислоВхождений("Docs,Refs",Тек2.ПолучитьСтроку(5))=0 тогда
на
Если СтрЧислоВхождений("Docs,Refs,Distr",Тек2.ПолучитьСтроку(5))=0 тогда
В функции ПредставлениеСобытия добавить:
ИначеЕсли Тип="Distr" Тогда
Если Событие="DistUplStatus" Тогда
Возврат "Загрузка изменений данных";
КонецЕсли;
Возврат "Обмен: "+Событие;
7. rimma_n 160 29.01.09 09:13 Сейчас в теме
А почему при первом запуске пишет - демонстрационный пример, кол-во запусков ограничено?
8. Noy 1076 29.01.09 10:00 Сейчас в теме
(7) Там "безлимитная лицензия" для программистов 1С :)
Black Cat; rasswet; +2 Ответить
18. rasswet 82 29.01.09 15:00 Сейчас в теме
9. Noy 1076 29.01.09 10:37 Сейчас в теме
(3,5) немного разобрался - с LogProvider из 1Cpp - вещь конечно очень рульная! Кодить практически не надо - все очень просто.
При сканировании всего журнала скорость такая же как в моей обработке, а при сканировании только последних записей - 1Cpp быстрее в 2-3 раза.
Так что кому не хватает скорости - используйте 1Cpp.
10. Just 3 29.01.09 10:53 Сейчас в теме
А у меня не работает, поиск по документу вроде бы идет, а результат пустой, хотя в журнале записи есть, Бухгалтерия 77
11. ЕЮИ 29.01.09 11:22 Сейчас в теме
у меня тоже ничего не показывает,Бухгалтерия 7.7
12. Noy 1076 29.01.09 12:21 Сейчас в теме
(10,11) Поиск по тексту работает? Например по строке "OpenSession" ?
13. ЕЮИ 29.01.09 12:22 Сейчас в теме
14. ЕЮИ 29.01.09 12:33 Сейчас в теме
15. Noy 1076 29.01.09 12:35 Сейчас в теме
Хм... а в верхнем поле там где "Значение для поиска" что-то выбрано?
и еще вопрос: _стандартный_ фильтр по Журналу регистрации что-то показывает? может кто-то просто журнал потер?
16. ЕЮИ 29.01.09 12:52 Сейчас в теме
(15) когда выбираю документ,из журнала,идет поиск,но по окончании журнал событий пуст.
Сам список фильтра пустой,но если делаю отбор,все формируется.
20. Just 3 30.01.09 03:46 Сейчас в теме
(15) значение для поиска выбрано (конкретный док или справочник), в журнале записи есть и стандартным способом в журнале все работает, а обработка не показывает результата
24. Noy 1076 30.01.09 09:20 Сейчас в теме
(21,22) Да, так и есть - обработка не работает в распределенных базах (по причине отсутствия у меня оных) о чем я и забыл указать в описании...
Спасибо за поправку.

(20) Возможно у тебя распределенка? попробуй исправить обработку как указал MadDAD в (21).
17. Noy 1076 29.01.09 13:24 Сейчас в теме
То есть если вызвать обработку, находясь в журнале, то в значение фильтра не попадает текущий документ? я правильно понял?
Если так, то либо у вас не установлена ВК FormEx (без нее это не работает), либо вы вызываете обработку через "дополнительные возможности" (или другим похожим способом).
Для того, что бы обработка "подхватывала" документ из журнала ее нужно вызывать с помощью "хоткея" или с помощью меню Файл-Открыть или же с помощью обработки "Быстрый доступ к отчетам" (ссылка есть в описании).
19. Shaman100M 1151 29.01.09 18:19 Сейчас в теме
Зачем просматривать весь журнал регистрации, если документ был создан недавно? Вот хорошая идея: можно предварительно пробежать ЖР один раз и сделать что-то вроде индекса, самое простое:
Дата --> Количество байтов с начала ЖР для метода Skip().
Т.образом для поиска всех записей по выбранному документу глубину поиска ЖР указывать не надо. Берем дату документа (предполагая, что он был создан этой датой) и получаем кол-во байтов для Skip(), ну а дальше по схеме. Можно сделать сложнее и точнее, для любых объектов: Диапазон внутренних ID объекта определенного типа --> кол-во байт с начала ЖР, указывающих на начало диапазона.
23. Noy 1076 30.01.09 09:16 Сейчас в теме
(19) Шаман, спасибо за замечания, но попробую "отбиться":
Обработка и не просматривает журнал весь регистрации. Как раз Skip() и используется - просто "скипается" сразу не все, а по одному мегабайту - опытным вычислил что быстрее 200 раз скипнуть по метру, чем один раз 200 метров.
Построение индекса к журналу - вообще не нужно, лучше сразу весь журнал перегнать в табличку на SQL (хотя бы экспрес) и периодически обновлять - но это уже совершенно другая обработка...
Даже если построить простейший индекс - (Дата | Смещение в байтах) - то можно будет выбирать период в обработке - что более естстественно для пользователей, но время потраченное на указание периода пользователем в большинстве будет больше времени, потраченного обработкой на сканирование лишнего периода - то есть результат будет получен позже.
И последнее - привязвываться к дате документа считаю не правильным - документ мог быть создан горздо раньше! Вот если бы был метод считывать файл с конца - то было бы вообще супер - ищем до события "Создан" и вуаля! но я такого метода не знаю :(
21. MadDAD 153 30.01.09 05:42 Сейчас в теме
(0) Однозначно полезная штука, единственный минус - пришлось дорабатывать для распределенки:

//Код:
Функция ПолучитьИД(Объект)
ОбъектСтр=ЗначениеВСтрокуВнутр(Объект);
СП=СоздатьОбъект("СписокЗначений");
СП.ИзСтрокиСРазделителями(Сред(ОбъектСтр,2,СтрДлина(ОбъектСтр)-2));
КодОбъекта=СоздатьОбъект("Текст");
КодОбъекта.ДобавитьСтроку(СтрЗаменить(СП.ПолучитьЗначение(СП.РазмерСписка())," ",РазделительСтрок));
ОбъектСтр=СП.ПолучитьЗначение(1);
Для х=1 по КодОбъекта.КоличествоСтрок() Цикл
Если ПустоеЗначение(КодОбъекта.ПолучитьСтроку(х))=1 тогда Продолжить; КонецЕсли;
ОбъектСтр=ОбъектСтр+"/"+?(СтрЧислоВхождений(КодОбъекта.ПолучитьСтроку(х), СокрЛП(ИбСозданияОбъекта(Объект)))<>0, Шаблон("([ИбСозданияОбъекта(Объект)])[СтрЗаменить(КодОбъекта.ПолучитьСтроку(х),ИбСозданияОбъекта(Объект),"""")]") ,КодОбъекта.ПолучитьСтроку(х));
//КодОбъекта.ПолучитьСтроку(х);
КонецЦикла;
Возврат ОбъектСтр;
КонецФункции
///Код
22. MadDAD 153 30.01.09 05:49 Сейчас в теме
(10,11,15,20)
Строка поиска объекта в распределенке выглядит:
";O/41516/(CEN)881174;"

Для не распределенки:
";O/41516/881174CEN;"

Скорее всего из-за этого и проблема.
См. (21) с этим и была связана доработка.
44. ЕЮИ 19.02.09 08:21 Сейчас в теме
(22) Да уменя УРБД,заново все установили.
Что было загружено от пользователя,при поиске просто формируется строка в Комментариях
"2; Новый; O/13053/(СГЕ)3006; Авансовый отчет Б0000001 14.01.2009 10:00:10;"
т.е. без расшифровки пользователя и всего остального,так и должно быть.
Было бы здорово делать поиск по измененям не одного документа,а конкретно по пользователю,особенно когда работаешь в УРБД,загрузил файлик,и сразу посмотрел,что было изменно.
gutentag; +1 Ответить
45. Noy 1076 19.02.09 09:26 Сейчас в теме
(44) Можно искать по пользователю - пишешь в строку поиска ;ИмяПользователяКакОнЗаданВКонфигураторе;(например ;Света;) и обработка находит все записи по пользователю. Единственное неудобство: моя обработка распознает события только по изменению справочников и документов, остальные события идут как комментарий.
46. ЕЮИ 19.02.09 09:27 Сейчас в теме
47. ЕЮИ 19.02.09 09:35 Сейчас в теме
(44) Сегодня загрузили файл,при формировании отчета,не выдает никаких данных за 2009 год,пользователем было сделано много документов,а при поиске дала только информацию по 20 документам,и то за 2008 год.
48. Noy 1076 19.02.09 09:46 Сейчас в теме
49. ЕЮИ 19.02.09 09:53 Сейчас в теме
(47) Простите,а что это?
Я бухгалтер,но с 1С работаю с 1998.
25. Just 3 30.01.09 10:07 Сейчас в теме
ну да, у меня УРБД, поправлю, как нужда заставит
26. rimma_n 160 30.01.09 10:30 Сейчас в теме
Хорошо бы добавить кнопочку Печать!!!
если много записей, то печать экрана неудобна
31. Noy 1076 30.01.09 10:35 Сейчас в теме
(26,27,28,29,30) Учитывая настойчивость предложения - постараюсь сегодня доделать ;)
32. Shaman100M 1151 30.01.09 10:46 Сейчас в теме
Про "быстрее скипнуть по метру" не знал. А на сколько быстрее?

Индекс по датам получается небольшой, - при возрасте базы в 5 лет: 1800 значений, при открытии можно восстанавливать в какую-нить переменную. Про период, да, возможно его вводить пользователю по времени дольше, чем будет осуществляться сам поиск, но откуда ты знаешь, что у него в голове (это как анек про Винни с пятачком) и что для него удобнее? ;) Период, он есть почти в любом отчете, и его выбор воспринимается как полезная привычка. В довесок - не всегда нужен поиск до конца ЖР, указание периода сократит время поиска.

Ну, а для документа, период можно не выбирать, - исходя из предположения, что документ все же был создан датой документа (так и будет в 90-95% случаев), ищем до туда, показываем таблицу, а там, если не встретили "Создан", - предупреждаем, что можно поискать в боле раннем периоде. Ну это так, как бы я сделал. Однако, обошелся просто статейкой про Skip. http://infostart.ru/blogs/261/
Метода считывать файл с конца нет - вот и приходится использовать его... Или, если гора не идет к Магомету... переписать ЖР наоборот, и читать его сначала. :)))))
35. Noy 1076 30.01.09 12:57 Сейчас в теме
(32) На счет "быстрее" я погорячился - только что потестировал чуть-чуть: разница в пределах погрешности (на 15 тестах по пропуску 220 Мб разлет был 13,5 сек до 16,9 не зависимо от шага) - в любом случае пошагово "не торомозит" и позволяет выводить строку состояния :)
33. MadDAD 153 30.01.09 12:10 Сейчас в теме
Кстати может будет полезно, посмотри у меня в разработках - "отчет по обменам УРБД". Там тоже парсится mlg, но только при помощи утилиты Find из ДОСовского набора.
34. Noy 1076 30.01.09 12:49 Сейчас в теме
(33) Я пробовал Find, как один из вариантов - скорость поиска такая же самая - поэтому решил остановиться на таком варианте.
36. Noy 1076 30.01.09 13:55 Сейчас в теме
Добавил печать, исправил работу в распределенных базах.
37. itmind 310 31.01.09 10:37 Сейчас в теме
Насколько быстро работает это обработка на журналах под 2 Гб? (притом каждый месяц заводится новый а старые сохраняются)
39. Noy 1076 01.02.09 09:58 Сейчас в теме
(37) Вам, батенька, давно пора от этих журналов отказываться...

А вообще скорость такая же, как у стандартной...
38. Gal4onok 31.01.09 10:55 Сейчас в теме
а для 8.1 такого же нет??
40. Dolly_EV 269 05.02.09 13:51 Сейчас в теме
Автору - баальшой респект! Внедрил за 10 минут!
Теперь юзеры меня не будут мучать с поиском "секретной" информации, кто чего наворотил..
Кстати, если обработку встраивают в конфу, то ХотКей() cтоит написать так:
и в "ПриОткрытии()" поправить..
РасположениеФайла(Катал,Файл);
Если ПустоеЗначение(Катал)+ПустоеЗначение(Файл)=2 Тогда
	//Внутри
	ОткрФорму = "ОткрытьФорму(""Обработка.ОтборСобытийПоОбъектуИзMLG"+""",,"""");";
Иначе
	//Вовне
	ОткрФорму = "ОткрытьФорму(""Отчет#"+_GetPerformanceCounter()+""",,"""+Катал+Файл+""");";
КонецЕсли;
Сервис.ДобавитьГлобальныйМодуль("
|Перем fn_mlgReader Экспорт;
|
|Процедура ПриНажатииКнопкиКлавиатуры(Конт,КодКлавиши,Alt,Shift,Ctrl,Символ,ФСО)
|Если КодКлавиши<>192 Тогда Возврат; КонецЕсли;
|Если Shift+Ctrl<>2 Тогда Возврат; КонецЕсли;"+РазделительСтрок+
ОткрФорму+"
|КонецПроцедуры
Показать
42. Noy 1076 05.02.09 13:59 Сейчас в теме
(40) Если встраивать в конфу, то хоткей из обработки лучше вообще удалить, а пользоваться стандартным хоткеем, который вешается на пункты меню или панели...
Спасибо за отзыв ;).
41. Dolly_EV 269 05.02.09 13:58 Сейчас в теме
И еще косячок в "Печать()"
заг=?(ТипОб=1,"элементу справочника """+спр.Вид()+""": "+спр,"документу: "+спр);
не спр2 !!
43. Noy 1076 05.02.09 14:01 Сейчас в теме
50. Noy 1076 19.02.09 09:57 Сейчас в теме
У вас на странице справа в верхнем углу должен появиться блок с сообщением от меня - нажмите ответить - откроется окно по типу "аськи" (чата) - там мы сможем пообщаться
51. phsin 183 06.01.10 15:29 Сейчас в теме
Добрый день, написать сообщение лично почему-то не получается, поэтому пишу здесь.
Посмотрел вашу обработку , очень понравилось, появились идеи как ее можно можно еще улучшишь (на мой взгляд ;),
результатом изысканий появилась такая вот статья http://infostart.ru/public/63659/
Если вы не против - опубликую, если против - уберу...
С уважением.
52. brr 183 11.01.10 14:26 Сейчас в теме
Автор не пробовал использовать для парсинга журнала текстдрайвер?
53. Noy 1076 13.01.10 10:27 Сейчас в теме
(52) Можно чуть подробнее - что за "текстдрайвер"?
или хотя бы ссылочку
54. brr 183 13.01.10 14:58 Сейчас в теме
55. Noy 1076 13.01.10 15:34 Сейчас в теме
(54) Судя по всему через Text ODBC Driver будет быстрее, да и условия можно сразу накладывать. Большое спасибо за подсказку, но обработка на данный момент не актуальна - переписывать не буду.
56. Ray_uk 20.01.12 11:04 Сейчас в теме
спасибо за обработку. Спасла ))
57. пользователь 21.02.12 13:46
Сообщение было скрыто модератором.
...
59. kleo19866 13.03.12 11:16 Сейчас в теме
РасположениеФайла(Катал,Файл);
Если ПустоеЗначение(Катал)+ПустоеЗначение(Файл)=2 Тогда
//Внутри
ОткрФорму = "ОткрытьФорму(""Обработка.ОтборСобытийПоОбъектуИзMLG"+""",,"""");";
Иначе
//Вовне
ОткрФорму = "ОткрытьФорму(""Отчет#"+_GetPerformanceCounter()+""",,"""+Катал+Файл+""");";
КонецЕсли;
Сервис.ДобавитьГлобальныйМодуль("
|Перем fn_mlgReader Экспорт;
|
|Процедура ПриНажатииКнопкиКлавиатуры(Конт,КодКлавиши,Alt,Shift,Ctrl,Символ,ФСО)
|Если КодКлавиши<>192 Тогда Возврат; КонецЕсли;
|Если Shift+Ctrl<>2 Тогда Возврат; КонецЕсли;"+РазделительСтрок+
ОткрФорму+"
|КонецПроцедуры
60. пользователь 13.03.12 11:17
Сообщение было скрыто модератором.
...
61. kleo19866 13.03.12 11:17 Сейчас в теме
спасибо за разработку, интересная
62. Lvbnhbq123 10.07.12 02:40 Сейчас в теме
63. elektr 22.12.15 16:08 Сейчас в теме
спасибо за обработку, пригодилась.
64. user784783 08.12.22 19:26 Сейчас в теме
Почему на обработку стоит пароль?
65. SoftLeon 28 02.02.23 13:54 Сейчас в теме
Обработку закрыли паролем, Где его взять?
Оставьте свое сообщение