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

Журнал регистрации в 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С

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

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

Где в 1С находится журнал регистрации ошибок?

Отследить, какие ошибки появлялись у пользователей в процессе работы, можно несколькими способами. Чаще всего проще и быстрее открыть меню «Администрирование», зайти в пункт «Обслуживание» и нажать «Журнал регистрации»:

Также в журнал регистрации попадете, воспользовавшись общим меню под названием «Все функции»:


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


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

Как открыть журнал регистрации?

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


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

  • Тип события;
  • Пользователя, под которым произошло действие или ошибка;
  • Приложение;
  • Компьютеры;
  • Перечень сеансов.

В разделе «Данные» можно установить отборы на конкретные объекты системы от всего списка документов, до поиска по единственному элементу справочника. Раздел «Транзакция» позволит отследить только записанные операции или еще не завершенные. Раздел «Прочие» предоставляет возможность поиска по различным серверам или IP портам.


Как отключить журнал регистрации?

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

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


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


Как выгрузить журнал регистрации?

Так как данный механизм требует больших ресурсов, многие администраторы предпочитают работать с историей не через 1С, а в другом формате. Это позволяет не нагружать сервер, и клиентский компьютер при этом также работает существенно быстрее. Чтобы осуществить просмотр журнала регистрации, необходимо сформировать отчет с нужными данными в 1С. Затем нажмите «Еще/Вывести список…», выделите все столбцы и сохраните полученные данные в файл с нужным форматом с помощью клавиш Ctrl+А.


Также в 1С встроена функция «ВыгрузитьЖурналРегистрации()», которой можно воспользоваться во внешних обработках, чтобы выгружать себе определенные данные. Анализировать выгруженные данные может помочь типовая обработка «Консоль анализа журнала регистрации». Она распространяется на диске ИТС, который вы получаете, когда заключаете договор с партнерами компании 1С. Если же нет доступа к этим дискам, то на помощь может прийти интернет и официальный сайт ИТС.

Как восстановить журнал регистрации?

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

С:\ProgramFiles\1Cv8\srvinfo\ПодставьтеИмяСервера\ПодставьтеИдентификаторИБ\1Cv8Log.

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

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

Как сократить журнал регистрации?

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

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


В сокращении журнала регистрации нам помогут 2 функции:

  • Кнопкой «Сократить» удаляем все данные до определенной даты;
  • Возможность выбора периодов разделения журнала. При установке данной опции в значение «День», каждый день будет создаваться новый файл журнала регистрации. Мы сможем устаревшие данные перемещать на отдельный ресурс. Также не лишним будет применить архивирование журнала в zip или rar для минимизации занимаемого места.



Как очистить журнал регистрации?

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

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

Можно ли программно добавить запись в журнал?

Многие администраторы и разработчики активно используют журнал регистрации не только для отслеживания ошибок и действий пользователя. Встроенный функционал внутреннего языка 1С позволяет им программно записывать свои события в журнал регистрации. Для этого используется функция «ЗаписьЖурналаРегистрации()» с набором параметров.

ЗаписьЖурналаРегистрации("Событие1", УровеньЖурналаРегистрации.Информация, "Процесс закончен",РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная)

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

Как вернуть старый формат журнала регистрации?

Начиная с версии 8.3.5, в 1С появляется новый формат данного механизма. Если вы создадите базу на основе платформы версии 8.3.5 и выше, то увидите в папке 1Cv8Log файл формата lgd. Пользователями уже замечено, что при большом количестве пользователей новый журнал регистрации работает существенно хуже. Поэтому многие администраторы заинтересованы в том, чтобы вернуть старый формат журнала регистрации.

Чтобы снова увидеть файл формата lgf, нужно для каждой базы 1С проделать следующий алгоритм:

  1. Найдите папку 1Cv8Log для конкретной базы;
  2. Удалите из каталога все файлы. Желательно сохранить их в другом месте;
  3. Создайте в папке 1Cv8Log пустой файл формата 1Cv8.lgf.

Вышеперечисленный алгоритм проделайте для каждой информационной базы.

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

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

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

Второй случай сложнее, так как потребуется исправлять идентификатор ИБ. Для этого откройте файл 1Cv8Reg, расположенный на сервере, и найдите в нем строчку с указание ID – источника ИБ. Зайдите в каталог этой ИБ и перенесите оттуда в новую директорию папку 1Cv8Log. Также следует внести изменения в адреса сервера, если базу перенесли.

Заинтересовал меня формат файлов журнала регистрации, но поиск в интернете не дал никаких результатов. Пришлось изучать его самому. Так родилась обработка - Анализ и редактирование файлов журнала регистрации 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

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