1с 8 журнал регистрации восстановить. Можно ли перенести журнал регистрации в отдельную базу

Журнал регистрации 1С — специальный механизм платформы 1С версий 8.2 и 8.3, который позволяет фиксировать работу пользователей с системой. С помощью журнала можно узнать, кто и когда изменял объекты в системе: справочники, документы, регистры и т.д. Ниже мы рассмотрим, как работать с этим механизмом, где хранятся файлы журнала регистрации 1С, каким образом происходит его настройка, как оптимизировать журнал регистрации и как можно произвести полную очистку данных.

Начнем с того, где хранится журнал регистрации в 1С. Варианта может быть два — для файлового и клиент серверного режима работы.

Файловая база

Для файловых баз данных 1С журнал находится в папке с базой данных. Расположение файлов можно узнать при запуске программы в меню выбора базы данных:

Красным выделен путь. Если мы проследуем по этому пути, то увидим следующую картину:

Папка 1Cv8Log — это и есть директория, содержащая журнал регистрации.

  • Если Вы планируете перенести файловую базу данных и хотите сохранить историю журнала регистрации, Вам обязательно надо скопировать папку 1Cv8Log в категорию новой базы 1С.
  • Если необходимо очистить журнал регистрации 1С в файловой базе, просто удалите папку 1Cv8Log.

Клиент-серверная база 1С SQL

В клиент-серверном режиме файлы истории обычно хранятся на сервере в каталоге:

C:\Program Files\1cv8\srvinfo\<Имя кластера сервера>\<Идентификатор базы на сервере>\1Cv8Log

Чтобы перенести журнал регистрации 1С для базы SQL, так же, как и для файловой, достаточно перенести папку в расположение новой базы.

Так же и с удалением — достаточно просто удалить данную папку.

Настройка журнала

Чтобы увидеть доступные настройки, необходимо зайти в и в главном меню найти пункт «Администрирование — Настройка журнала регистрации…»:

Получите 267 видеоуроков по 1С бесплатно:

В открывшемся интерфейсе доступны следующие настройки ведения журнала:

Здесь в поле «Регистрировать в журнале события» можно указать детализацию регистрируемых данных. Пункт «Не регистрировать» позволяет отключить ведение журнала вовсе. Другие пункты расшифровываются следующим образом:

  1. Ошибки — все возможные варианты сбоев и ошибок в системе;
  2. Предупреждения — важные сообщения системы, которые не являются ошибками;
  3. Информация — вся информация об изменяемых данных системы;
  4. Примечания — неважные сообщения (почти всегда их можно отключить).

Оптимизация журнала регистрации

Среди способов оптимизации скорости загрузки и работы с журналом можно выделить следующие методы:

Регистрацию меньшего количества событий. Отключение записи неважных для нас сообщений позволит существенно сократить объем информации и увеличить скорость работы.

Разделение хранения журнала по периодам. Если изменить настройку «Разделять хранение журнала по периодам» на значение день (для больших баз данных) / неделя (для средних), можно существенно поднять производительность журнала. Файлы логов будут разбиваться в папке 1Cv8Log на порции, заданные в настройке, и будут иметь вид, подобный 20140905000000.lgp, в котором видно дату и время создания лога.

Сокращение журнала регистрации также дает существенную оптимизацию в работе с журналом. Для этого нажмите на кнопку «Сократить» в настройках. Выберите период, до которого желаете сократить журнал:

При использовании данного способа настоятельно рекомендуется записать удаляемые события в отдельный файл. Это позволит в любой момент восстановить историю, которая была удалена из журнала базы данных 1С.

И последний и самый эффективный способ оптимизации — перевод журнала регистрации на так называемый «Новый формат». Доступен он начиная с версии платформы 1С 8.3.5.1068 . Данный формат хранения лога журнала регистрации не в текстовом файле, а в отдельной базе данных на СУБД SQLite.

Для перехода на новый формат достаточно сконвертировать журнал с помощью нажатия кнопки «Новый Формат»:

Будьте внимательны, обратная конвертация в старый формат невозможна .

В системе 1С для анализа технической информации существует также .

Журнал регистрации в 1С 8.3 очень полезен тем, что в нем отображаются события, произошедшие в информационной базе с указанием времени, имени компьютера и пользователя и ссылки на изменяемые данные. При аутентификации пользователей в журнале так же создаются записи с указанием способа входа в программу. Данный механизм позволяет ответить на один из частых вопросов – кто последний вносил изменения в конкретный объект.

Где найти журнал регистрации в 1С 8.3? Через меню «Все функции» — «Стандартные» или, в типовых конфигурациях 1C, в меню «Администрирование» — «Поддержка и обслуживание».

Настройка журнала регистрации производится в режиме конфигуратора. В меню «Администрирование» выберите пункт «Настройка журнала регистрации».

Здесь настраиваются те события, которые будут отображаться в журнале регистрации.

Выбор первого пункта настройки позволяет не вести журнал регистрации вообще. Остальные настройки расположены по возрастанию их значимости. При большом количестве пользователей не рекомендуется регистрировать примечания, дабы не засорять базу.

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

Просмотр и поиск записей

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

По умолчанию в журнал регистрации выводится по 200 записей. Отображение большого количества записей может негативно сказаться на работоспособности вашей программы или попросту она зависнет.

В форме списка журнала регистрации можно установить отбор и воспользоваться поиском. Поиск накладывается только на записи, которые уже отображаются (в данном случае последние 200 событий). Отбор же применяется ко всем записям.

Поиск осуществляется по выведенным данным в табличной части, поэтому при его использовании необходимо только указать колонку и данные, которые нужно найти.

Отбор позволяет отобрать данные по конкретным пользователям, именам компьютеров, событиям и т. п. Так же у вас есть возможность вывести записи журнала регистрации только по конкретным метаданным, данным (указывается ссылка на нужный объект, например, конкретный документ) и прочие настройки.

В данном примере приведены настройки журнала регистрации для отбора всех событий пользователя «Admin», начиная с 20.06.2017.

Где хранится файл журнала 1cv8.lgd

Место физического хранения журнала регистрации напрямую зависит от того, файловая база или клиент — серверная.

Файловая база

При данном режиме размещения, журнал регистрации находится в папке с самой базой. Место ее расположение можно узнать либо из списка баз, либо из справки «О программе».

Если перейти по данному адресу, вы найдете папку с именем «1Cv8Log». Именно тут расположены данные журнала регистрации в файле 1Cv8.lgd.

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

При удалении данного каталога, журнал регистрации очистится.

Клиент-серверная база

В таком режиме все так же, как и в предыдущем, только данные журнала регистрации 1С хранятся на сервере. Чаще всего его место расположения следующее:

  • C:\Program Files\1cv8\srvinfo\<место расположения информационной базы>\1Cv8Log

Оптимизация

Журнал регистрации при необходимости можно оптимизировать, особенно когда в базе происходит большое количество событий.

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

В более старых релизах платформы в настройках журнала регистрации было доступно разделение журнала регистрации по периодам. Весь журнал можно было разделить на отдельные файлы с указанной периодичностью (день, месяц, год и т. п.).

Начиная с версии платформы 1С 8.3.5.1068, журнал регистрации хранится в файле базы данных sqlite с расширением *.lgd, и данная настройка стала недоступна. Данный способ хранения журнала регистрации значительно производительнее, чем старый.

Как уменьшить или удалить журнал регистрации в 1С

В случае необходимости частичной, либо полной очистки записей журнала регистрации в окне настроек нажмите на кнопку «Сократить». В появившемся окне укажите дату, до которой все записи должны удалиться. Так же удаляемые записи можно сохранить в файл на всякий случай.

Заинтересовал меня формат файлов журнала регистрации, но поиск в интернете не дал никаких результатов. Пришлось изучать его самому. Так родилась обработка - Анализ и редактирование файлов журнала регистрации 8.1/8.2 - ELF/LOG/LGF/LGP. Как и обещал, постарался написать полноценную статью о формате файлов журнала регистрации 1С 8.

В 1С 8 журнал регистрации хранится в текстовых файлах, которые находятся в подкаталоге 1Cv8Log. Для клиент-серверной ищем где-то в "C:\Program Files\1cv82\srvinfo\reg_1541\\1Cv8Log\".

Обычно журнал регистрации 1С 8 состоит из одного файла описаний (ELF в 8.1 / LGF в 8.2) и одного или нескольких файлов данных (LOG в 8.1 / LGP в 8.2). Существуют еще так называемые архивы журнала регистрации - в этом случае описания и данные находятся в одном файле последовательно, сначала описания, затем данные, при этом расширение как у файла данных.

В первой строке файла журнала регистрации пишется маркер
"1CV8LOG_" для 8.1 и "1CV8LOG(ver 2.0)" для 8.2.

Во второй строке пишется GUID.

Для файла данных журнала регистрации пишется еще дополнительно третья пустая строка.

При парсинге журнала регистрации сталкиваемся с проблемой отделения друг от друга записей - ведь они имеют переменную длину и могут быть разбиты на разное число строк, которое получается из-за следующих правил, добавляющих дополнительные символы новой строки (Символы.ПС):

1) Открывающей фигурной скобке "{ "в файле всегда предшествует символ новой строки;

2) Закрывающие фигурные скобки "}" не могут идти подряд - они всегда разделены символом новой строки;

3) Символ новой строки может встретиться внутри кавычек.

Таким образом отделить запись можно по следующим критериям

1) Первый символ - открывающая фигурная скобка "{";

2) Число открывающих фигурных скобок "{" равно числу закрывающих фигурных скобок "}";

3) Последний символ - закрывающая фигурная скобка "}";

4) Так же у правильной записи всегда будет четное число кавычек.

Структура записей файла описаний 8.1 сильно отличаются от 8.2.

При анализе файла описаний 8.1 по приведенным выше правилам получим всего одну запись, которая будет состоять из элемента "Legend" и вложенных записей. Структура вложенных записей одинакова - это заголовок и вложенная запись. Заголовок может принимать следующие значения "Users" - GUIDы пользователей, "UserNames" - имена пользователей, "Hosts" - компьютеры, "Apps" - приложения, "Events" - события, "MDID" - GUIDы метаданных, "MDCodes" - имена метаданных, "SrvHosts" - серверы, "MainPorts" - основные порты, "SyncPorts" - вспомогательные порты. Вложенные записи состоят по сути из массивов. Первый элемент - размер массива, дальше идут непосредственно значения. Разделитель - запятая.

При анализе файла описаний 8.2 увидим другую картину. Файл содержит много записей размером от обычно трех элементов до четырех, в случае если надо указать GUID - для пользователей и метаданных.

Формат записи прост - первый элемент код массива, второй - значение, третий - номер в массиве. В случае четырех записей, между первым и вторым элементом появляется GUID.

Коды массивов были обнаружены следующие:

1 - пользователи;

2 - компьютеры;

3 - приложения;

4 - события;

5 - метаданные;

6 - серверы;

7 - основные порты;

8 - вспомогательные порты.

Так же встречаются пока неопознанные коды 11, 12 и 13

Таким образом, из файлов описаний получаем необходимые справочники, которые будут использованы в файлах данных.

Структура записей файлов данных 8.1 отличается от 8.2 по сути только количеством элементов. В 8.1 запись состоит жестко из 16 элементов, а в 8.2 число элементов переменно и может быть от 19 штук и до в принципе любого количества.

1) Дата и время в формате "yyyyMMddHHmmss", легко превращается в дату функцией Дата();

2) Статус транзакции - может принимать четыре значения "N" - "Отсутствует", "U" - "Зафиксирована", "R" - "Не завершена" и "C" - "Отменена";

3) Транзакция в формате записи из двух элементов преобразованных в шестнадцатеричное число - первый - число секунд с 01.01.0001 00:00:00 умноженное на 10000, второй - номер транзакции;

4) Пользователь - указывается номер в массиве пользователей;

5) Компьютер - указывается номер в массиве компьютеров;

6) Приложение - указывается номер в массиве приложений;

7) Соединение - номер соединения;

8) Событие - указывается номер в массиве событий;

9) Важность - может принимать четыре значения - "I" - "Информация", "E" - "Ошибки",

"W" - "Предупреждения" и "N" - "Примечания";

10) Комментарий - любой текст в кавычках;

11) Метаданные - указывается номер в массиве метаданных;

12) Данные - самый хитрый элемент, содержащий вложенную запись;

13) Представление данных - текст в кавычках;

14) Сервер - указывается номер в массиве серверов;

15) Основной порт - указывается номер в массиве основных портов;

16) Вспомогательный порт - указывается номер в массиве вспомогательных портов;

17) Сеанс - номер сеанса;

18) Количество дополнительных метаданных, номера которых будут перечислены в следующих элементах записи. Именно 18-й элемент определяет длину записи, т.к. дальше будут следовать столько элементов сколько указано здесь + один последний, назначение которого пока не определено и обычно там "{0}". Возможно это просто маркер окончания записи. Так же есть идея что {0} похоже на пустой массив.

Теперь рассмотрим вложенную запись элемента 12 (Данные), который может принимать следующие значения:

1) {"U"} - Неопределено - можно преобразовать через ЗначениеИзСтрокиВнутр();

2) {"S","Строка"} - Строка - можно преобразовать через ЗначениеИзСтрокиВнутр();

4) {"P",{6,{"S","Строка1"},{"S","Строка2"}}}- что-то вроде массива но пока не понятно что значит 6 - на ее месте пока встречал только 1, 2 и 6. Возможно это разные типы - массив, структура и т. п.

Таким образов, в целом формат журнала регистрации как 1С 8.1, так и 1С 8.2 разобран. Есть некоторые недопонимания, которые надеюсь со временем прояснятся, но даже они не мешают парсить файлы обработке - - Анализ и редактирование файлов журнала регистрации 8.1/8.2 - ELF/LOG/LGF/LGP

Позже появилась довольно интересная публикация - , где автор парсит файлы журнала регистрации напрямую, причем он пишет, что разбирал формат журнала регистрации сам, задолго до текущей публикации, но к сожалению пока дополнительно найденной информацией по формату с сообществом не поделился.

На сервере 1С со временем увеличивается в размерах папка
reg_1541 , содержащая журналы регистрации 1С. Расположена эта папка в директории С:\Program Files\1cv82\srvinfo. И как следствие может возникнуть проблема свободного пространства на системном жестком диске. Чтобы избежать роста папки srvinfo необходимо периодически очищать журнал регистрации 1С.

Удаление неиспользуемых журналов регистрации из папки Srvinfo

В журнале регистрации фиксируется все изменения объектов баз 1С — документы, справочники, регистры и т.д.

Для каждой базы данных 1С существует своя директория хранения журнала регистрации и выглядит она таким образом:

C:\Program Files\1cv8\srvinfo\\\1Cv8Log

Папка <Имя кластера сервера> по-умолчанию называется reg_1541.

После удаления базы данных с сервера 1С папка журнала регистрации не удаляется из Srvinfo. Поэтому из множества папок в
Srvinfo могут находиться и те, которые давно не используются и просто занимают место на жестком диске.

Вычислить эти папки можно открыв файл , который находится так же в reg_1541.

Копируем <Идентификатор базы на сервере> из папки Srvinfo и ищем в файле 1CV8Clst.lst. Если идентификатор в файле не найден, то папку можно удалять.


В директории Srvinfo находится папка с названием вида snccntx+<Идентификатор базы на сервере> . Эта папка содержит сеансовые данные и ее лучше не удалять без необходимости т.к. много места она не занимает.

Настройка и очистка журнала регистрации 1С

Запускаем 1С в режиме конфигуратора и переходим в меню «Администрирование/Настройка журнала регистрации»

В настройках журнала регистрации можно выбрать какие события будут регистрироваться:

Ошибки — информация о сбоях
Предупреждения — важные уведомления, не ошибки
Информация — все изменения базы данных
Примечания — все остальные уведомления

Для очистки журнала регистрации нажимаем кнопку «Сократить»

Здесь можно будет увидеть диапазон дат, за который хранятся данные.

В поле «Удалить события до:» выбираем дату до который будем очищать журнал регистрации.

Автоматизация процесса очистки журнала регистрации

Автоматизация процесса через командную строку Windows выглядит таким образом:

"\1cv8.exe" CONFIG /Out /ReduceEventLogSize -saveAs

— строка подключения к информационной базе. Т.к. речь идёт о серверном варианте, эта строка будет иметь вид «/S /N /P». Пользователь должен иметь право администрирования.

— путь к файлу, в котором будут сохранены сообщения системы при выполнении этой операции.

— дата, по которую будет укорочен журнал регистрации в формате yyyy-mm-dd

— путь к файлу в формате *.elf, к которым можно будет обратиться в случае необходимости проводить расследования давних операций с информационной базой.

Операцию необходимо выполнять когда нет активных подключений к базе 1С.

Образец скрипта для PowerShell

# # backup & shrink 1c logs # param ($1cexe = "C:\Program Files (x86)\1cv82\8.2.15.319\bin\1cv8.exe", $1cbase = "srvrname\ibname", $1cuser = "username", $1cupassword = "password", $1coperlog = "s:\logs\1cshrink.txt", $1cdaysoflogstore = 7, #[дата по которую удалить логи] (get-date).Date.AddDays(-$1cdaysoflogstore).ToString("yyyyMMdd") $1clogsarchive = "s:\backup\6months\", #[путь к сохраняемому в другом месте файлу логов *.elf] $1clogfilename = $env:COMPUTERNAME.ToLower() + "-1clog-" + ($1cbase.split("\")) + "-" + (get-date).Date.ToString("yyyyMMdd") + ".elf") $1clog = $1clogsarchive + $1clogfilename cmd /c "`"`"$1cexe`" CONFIG `/s$1cbase `/N`"$1cuser`" `/P`"$1cupassword`" `/Out$1coperlog `/ReduceEventLogSize $((get-date).Date.AddDays(-$1cdaysoflogstore).ToString("yyyy-MM-dd")) -saveAs`"$1clog`"`""

Внимание! Данные для подключения к базе 1С обезличены. Необходимо заменить на свои.

Перенос журнала регистрации на другой диск

Чтобы избежать переполнения системного диска файлами журнала регистрации 1С папку SRVINFO можно перенести на другой диск. Выполнить это можно изменив параметры запуска службы «Агент сервера 1С:Предприятия 8.3» в реестре Windows.

В редакторе реестра переходим по ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.2 Server Agent и в параметре ImagePath изменяем значение «Агент сервера 1С:Предприятия 8.3» «C:\Program Files (x86)\1cv8\8.3.10.2667\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files (x86)\1cv8\srvinfo».
Вместо «C:\Program Files (x86)\1cv8\srvinfo» указываем новую директорию нахождения журнала регистрации.

редактирование запуска службы «Агент сервера 1С:Предприятия 8.3» в реестре Windows

В статье использован