Каталог решений - Чтение журнала регистрации с конца

Чтение журнала регистрации с конца

Чтение журнала регистрации с конца

В наличии

Команды для "обратного" чтения не нашел. Взял хитростью.

Категория:

Описание

Итак, нам необходимо узнать результаты произошедшего в 1С события. Для этого
обрабатываем лог событий в журнале регистрации (далее ЖР) программно, перебирая
строки файла 1CV7.MLG и проверяя наличие в них поисковых слов.
Решение в лоб стандартным перебором строк с начала файла вследствие его большого
объема не пойдет, да и объект «Текст» работает медленно, нужны альтернативы.

Попробуем решить указанные проблемы, опираясь на быстрый WSH и исходя из предпосылки:
в большинстве случаев известно время, раньше которого изучаемое событие просто не могло
произойти. Это может быть также время запуска известного запланированного процесса
(обмена УРБД, например), прописавшего лог в ЖР.

Вот это и используем, узнав размер ЖР перед событием:

ОбратныйСлэш =Симв(92); // это обратный слэш, для корректности отображения ФС.

АтрибутыФайла(КаталогИБ()+"SYSLOG"+ ОбратныйСлэш +"1CV7.MLG", РазмерЖРПередСобытием); 

Событие произошло. Что дальше?
Возможности объекта Scripting.FileSystemObject совершать прыжки и быстро перебирать
строки больших файлов:

objFSO	= CreateObject("Scripting.FileSystemObject");

objTextFile = objFSO.OpenTextFile(КаталогИБ()+"SYSLOG"+ ОбратныйСлэш +"1CV7.MLG", 1,0,0);
objTextFile.Skip(РазмерЖРПередСобытием);
// вот здесь прыгаем, ждем...
Пока  objTextFile.AtEndOfStream <> -1 Цикл

Сообщить(objTextFile.Readline()); 

// перебор ЖР до конца // или прервать после получения всей информации по событию.
КонецЦикла;
objTextFile.Close();

Как вариант для незапланированных событий: можно 1 раз в день пополнять список значений «РазмерЖР_НаДату»

has been added to your cart:
Оформление заказа