7.7 Кто изменил документ????
База данных - Журнал регистрации
Бесплатные
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО
| Наименование | Скачано | Бесплатно |
|---|---|---|
|
fn_mlg_ПросмотрЖурналаРегистрации.ert
.1233068370 596,00Kb
2861
|
2861 | Скачать бесплатно |
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Обработка позволяет отфильтровать события стандартного журнала регистрации по определенному документу, элементу справочника или просто по строке.
При использовании FormEx ( http://www.dorex.ru/ ) обработку можно вызвать с помощью комбинации клавиш прямо из справочника, журнала документов или формы самого документа.
Рекомендовано к совместному использованию: Быстрый доступ к отчетам
Возможности:
-работа с журналами регистраций больших объемов (полное сканирование файла в 250Мб - 90 секунд, последних "двух недель" - 15 секунд), на маленьких - практически летает :)
-поиск событий только по "последним" событиям журнала
-можно вызывать програмно: в Форма.Параметр ложим документ, элемент справочника или просто текст.
Требования:
Win2000 и выше
желательно FormEx (можно установить из обработки)
30.01.09
Добавил возможность печати
Теперь работает и в УРБД-базах
Обработка имеет ограничение на количество запусков.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Администрирование СУБД Журнал регистрации Системный администратор 1С:Предприятие 7.7 1C77 Бесплатно (free)
Прекращена работа программы "1CV7 starter program". Никто не может зайти в 1C 7.7. Апкреш. Что делать? Проверьте, возможно журнал регистрации информационной базы 1С: Предприятия 7.7 поврежден.
17.08.2020 8581 ksnik 3
Журнал регистрации Инструменты администратора БД Системный администратор Разработчик 1С:Предприятие 7.7 1C77 Бесплатно (free)
Рассмотрим систему на базе Elasticsearch, Logstash и Kibana (ELK Stack) для анализа логов 1С Предприятие 7.7 с целью визуализации и анализа событий 1С.
22.01.2019 14797 phsin 20
Журнал регистрации Учет рабочего времени Пользователь 1С:Предприятие 7.7 Абонемент ($m)
Система полной отчетности об использовании рабочего времени пользователями. Все действия пользователей. Сколько времени и на что потрачено. Работает с БД MSSQL, любое количество клиентов
5 стартмани
24.05.2016 19451 4 Art77 2
Журнал регистрации Системный администратор 1С:Предприятие 7.7 1C77 Россия Абонемент ($m)
Контроль изменения всех реквизитов любых справочников и документов в любой конфигурации
1 стартмани
17.10.2015 17778 27 kras_71 6
Журнал регистрации Системный администратор Разработчик 1С:Предприятие 7.7 1C77 Бесплатно (free)
Все, кто работают с 7.7, знают, что журнал регистрации тормозит нещадно, в связи с чем пользы от него очень мало, и её ещё меньше, когда размер журнала превышает хотя бы 50 мегабайт. На Инфостарте, по- моему, даже есть средства для просмотра журнала, может, даже они эффективны, но моей мечтой всегда был sql-доступ к этому журналу, т.к. это просто, наглядно, удобно и, что самое важное, - очень быстро. Кому интересно - добро пожаловать.
11.12.2014 18029 VladC# 8
Журнал регистрации Системный администратор 1С:Предприятие 7.7 1C77 Абонемент ($m)
Если вы пытаетесь посмотреть журнал регистраций, а у вас неожиданно 1С7.7 спрашивает пароль, хотя вы точно уверены, что пароль на журнал не ставили - поздравляю, у вас испорчен файл 1cv7.mlg
1 стартмани
07.04.2014 22492 29 dima_home 1
Журнал регистрации Email рассылки Разработчик 1С:Предприятие 7.7 1C77 Абонемент ($m)
Очень полезно узнавать об ошибках при работе 1С раньше, чем пользователи придут жаловаться на проблемы. Если они вообще придут, а не будут молча ругать "глючную 1С".
1 стартмани
26.03.2014 20827 18 vcv 2
Журнал регистрации Системный администратор 1С:Предприятие 7.7 Бесплатно (free)
При запуске программы выходило сообщение «Ошибка при запуске журнала регистрации». Дело было не в бабине..
04.10.2013 37978 Alexion 3
Немного переделал алгоритм и отключил видимость ТЗ при выводе данных - получился очень серьезный выигрыш в скорости на "объемных" запросах.
NoMax - попробуй плз еще раз на своих журналах и выложи результаты
Где-то даже есть готовая обработка с ТП+Поставщик_ЖурналРегистрации
В функции ПеревестиВТЗ заменить:
Если СтрЧислоВхождений("Docs,Refs",Тек2.ПолучитьСтроку(5))=0 тогда
на
Если СтрЧислоВхождений("Docs,Refs,Distr",Тек2.ПолучитьСтроку(5))=0 тогда
В функции ПредставлениеСобытия добавить:
ИначеЕсли Тип="Distr" Тогда
Если Событие="DistUplStatus" Тогда
Возврат "Загрузка изменений данных";
КонецЕсли;
Возврат "Обмен: "+Событие;
При сканировании всего журнала скорость такая же как в моей обработке, а при сканировании только последних записей - 1Cpp быстрее в 2-3 раза.
Так что кому не хватает скорости - используйте 1Cpp.
Спасибо за поправку.
(20) Возможно у тебя распределенка? попробуй исправить обработку как указал MadDAD в (21).
Если так, то либо у вас не установлена ВК FormEx (без нее это не работает), либо вы вызываете обработку через "дополнительные возможности" (или другим похожим способом).
Для того, что бы обработка "подхватывала" документ из журнала ее нужно вызывать с помощью "хоткея" или с помощью меню Файл-Открыть или же с помощью обработки "Быстрый доступ к отчетам" (ссылка есть в описании).
Дата --> Количество байтов с начала ЖР для метода Skip().
Т.образом для поиска всех записей по выбранному документу глубину поиска ЖР указывать не надо. Берем дату документа (предполагая, что он был создан этой датой) и получаем кол-во байтов для Skip(), ну а дальше по схеме. Можно сделать сложнее и точнее, для любых объектов: Диапазон внутренних ID объекта определенного типа --> кол-во байт с начала ЖР, указывающих на начало диапазона.
Обработка и не просматривает журнал весь регистрации. Как раз Skip() и используется - просто "скипается" сразу не все, а по одному мегабайту - опытным вычислил что быстрее 200 раз скипнуть по метру, чем один раз 200 метров.
Построение индекса к журналу - вообще не нужно, лучше сразу весь журнал перегнать в табличку на SQL (хотя бы экспрес) и периодически обновлять - но это уже совершенно другая обработка...
Даже если построить простейший индекс - (Дата | Смещение в байтах) - то можно будет выбирать период в обработке - что более естстественно для пользователей, но время потраченное на указание периода пользователем в большинстве будет больше времени, потраченного обработкой на сканирование лишнего периода - то есть результат будет получен позже.
И последнее - привязвываться к дате документа считаю не правильным - документ мог быть создан горздо раньше! Вот если бы был метод считывать файл с конца - то было бы вообще супер - ищем до события "Создан" и вуаля! но я такого метода не знаю :(
//Код:
Функция ПолучитьИД(Объект)
ОбъектСтр=ЗначениеВСтрокуВнутр(Объект);
СП=СоздатьОбъект("СписокЗначений");
СП.ИзСтрокиСРазделителями(Сред(ОбъектСтр,2,СтрДлина(ОбъектСтр)-2));
КодОбъекта=СоздатьОбъект("Текст");
КодОбъекта.ДобавитьСтроку(СтрЗаменить(СП.ПолучитьЗначение(СП.РазмерСписка())," ",РазделительСтрок));
ОбъектСтр=СП.ПолучитьЗначение(1);
Для х=1 по КодОбъекта.КоличествоСтрок() Цикл
Если ПустоеЗначение(КодОбъекта.ПолучитьСтроку(х))=1 тогда Продолжить; КонецЕсли;
ОбъектСтр=ОбъектСтр+"/"+?(СтрЧислоВхождений(КодОбъекта.ПолучитьСтроку(х), СокрЛП(ИбСозданияОбъекта(Объект)))<>0, Шаблон("([ИбСозданияОбъекта(Объект)])[СтрЗаменить(КодОбъекта.ПолучитьСтроку(х),ИбСозданияОбъекта(Объект),"""")]") ,КодОбъекта.ПолучитьСтроку(х));
//КодОбъекта.ПолучитьСтроку(х);
КонецЦикла;
Возврат ОбъектСтр;
КонецФункции
///Код
Что было загружено от пользователя,при поиске просто формируется строка в Комментариях
"2; Новый; O/13053/(СГЕ)3006; Авансовый отчет Б0000001 14.01.2009 10:00:10;"
т.е. без расшифровки пользователя и всего остального,так и должно быть.
Было бы здорово делать поиск по измененям не одного документа,а конкретно по пользователю,особенно когда работаешь в УРБД,загрузил файлик,и сразу посмотрел,что было изменно.
Индекс по датам получается небольшой, - при возрасте базы в 5 лет: 1800 значений, при открытии можно восстанавливать в какую-нить переменную. Про период, да, возможно его вводить пользователю по времени дольше, чем будет осуществляться сам поиск, но откуда ты знаешь, что у него в голове (это как анек про Винни с пятачком) и что для него удобнее? ;) Период, он есть почти в любом отчете, и его выбор воспринимается как полезная привычка. В довесок - не всегда нужен поиск до конца ЖР, указание периода сократит время поиска.
Ну, а для документа, период можно не выбирать, - исходя из предположения, что документ все же был создан датой документа (так и будет в 90-95% случаев), ищем до туда, показываем таблицу, а там, если не встретили "Создан", - предупреждаем, что можно поискать в боле раннем периоде. Ну это так, как бы я сделал. Однако, обошелся просто статейкой про Skip.
Метода считывать файл с конца нет - вот и приходится использовать его... Или, если гора не идет к Магомету... переписать ЖР наоборот, и читать его сначала. :)))))
Теперь юзеры меня не будут мучать с поиском "секретной" информации, кто чего наворотил..
Кстати, если обработку встраивают в конфу, то ХотКей() cтоит написать так:
и в "ПриОткрытии()" поправить..
РасположениеФайла(Катал,Файл);
Если ПустоеЗначение(Катал)+ПустоеЗначение(Файл)=2 Тогда
//Внутри
ОткрФорму = "ОткрытьФорму(""Обработка.ОтборСобытийПоОбъектуИзMLG"+""",,"""");";
Иначе
//Вовне
ОткрФорму = "ОткрытьФорму(""Отчет#"+_GetPerformanceCounter()+""",,"""+Катал+Файл+""");";
КонецЕсли;
Сервис.ДобавитьГлобальныйМодуль("
|Перем fn_mlgReader Экспорт;
|
|Процедура ПриНажатииКнопкиКлавиатуры(Конт,КодКлавиши,Alt,Shift,Ctrl,Символ,ФСО)
|Если КодКлавиши<>192 Тогда Возврат; КонецЕсли;
|Если Shift+Ctrl<>2 Тогда Возврат; КонецЕсли;"+РазделительСтрок+
ОткрФорму+"
|КонецПроцедуры
ПоказатьПосмотрел вашу обработку , очень понравилось, появились идеи как ее можно можно еще улучшишь (на мой взгляд ;),
результатом изысканий появилась такая вот статья
Если вы не против - опубликую, если против - уберу...
С уважением.
Если ПустоеЗначение(Катал)+ПустоеЗначение(Файл)=2 Тогда
//Внутри
ОткрФорму = "ОткрытьФорму(""Обработка.ОтборСобытийПоОбъектуИзMLG"+""",,"""");";
Иначе
//Вовне
ОткрФорму = "ОткрытьФорму(""Отчет#"+_GetPerformanceCounter()+""",,"""+Катал+Файл+""");";
КонецЕсли;
Сервис.ДобавитьГлобальныйМодуль("
|Перем fn_mlgReader Экспорт;
|
|Процедура ПриНажатииКнопкиКлавиатуры(Конт,КодКлавиши,Alt,Shift,Ctrl,Символ,ФСО)
|Если КодКлавиши<>192 Тогда Возврат; КонецЕсли;
|Если Shift+Ctrl<>2 Тогда Возврат; КонецЕсли;"+РазделительСтрок+
ОткрФорму+"
|КонецПроцедуры
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 18879
Создание 27.01.09 17:59
Обновление 28.09.09 00:00
Просмотры 39483
Загрузки 2861
Рейтинг
109
Комментарии 60
Код открыт Нет
Рубрики Журнал регистрации
Тип файла Внешняя обработка (ert,epf)
Платформа
Оперативный учет 7.7
,
Бухгалтерский учет 7.7
,
Расчет 7.7
Конфигурация 1C77
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)