Журнал регистрации в 1С:Предприятие — это критически важный инструмент для аудита действий пользователей, отслеживания ошибок и восстановления данных после сбоев. Однако многие администраторы сталкиваются с проблемой: как правильно сохранить эти логи, чтобы они не потерялись при обновлении платформы, очистке базы или аппаратных неполадках? В отличие от обычных документов, журнал регистрации не хранится в базе данных как отдельный объект — его нужно экспортировать вручную или настроить автоматическое сохранение.
В этой статье мы разберём 7 рабочих способов сохранения журнала регистрации, включая скрытые возможности платформы 1С 8.3, внешние обработки и скрипты для автоматизации. Особое внимание уделим нюансам: почему стандартный экспорт в .txt может быть опасным, как обойти ограничение на размер файла и что делать, если журнал внезапно обнулился. Если вы администрируете 1С на предприятии или занимаетесь поддержкой клиентских баз — эти методы сэкономят вам часы на восстановление данных.
1. Стандартный экспорт журнала регистрации через интерфейс 1С
Самый простой способ — использовать встроенную функцию экспорта. Он подходит для разовых задач, но имеет ограничения: например, в 1С:Предприятие 8.3 по умолчанию экспортируются только последние 10 000 записей. Чтобы сохранить журнал:
- Откройте базу в режиме
1С:Предприятие(не конфигуратор!). - Перейдите в меню
Администрирование → Журнал регистрации. - Нажмите
Ещё → Сохранить список...и выберите формат (.txt,.mxlили.csv). - Укажите путь для сохранения и подтвердите экспорт.
⚠️ Внимание: При экспорте в .txt теряется структура данных (например, разделители между полями могут "сломаться" при наличии многострочных комментариев). Для дальнейшей обработки лучше выбирать .mxl — он сохраняет иерархию и поддерживает импорт обратно в 1С.
Если журнал слишком большой, разбейте экспорт по датам: установите фильтр в поле "Период" и сохраняйте данные помесячно.
Для автоматизации этого процесса можно использовать планировщик задач Windows с запуском 1С в командной строке. Пример команды для экспорта:
C:\Program Files\1cv8\8.3.20.1500\bin\1cv8.exe ENTERPRISE /S "Сервер\База" /N "Администратор" /P "пароль" /Execute "ОбщийМакрос.ЭкспортЖурналаРегистрации()"
2. Автоматическое сохранение через регламентные задания
Если вам нужно регулярно сохранять журнал (например, раз в неделю), настройте регламентное задание в 1С. Этот метод не требует внешних инструментов и работает прямо в базе:
- Откройте конфигуратор и перейдите в
Администрирование → Регламентные задания. - Создайте новое задание с типом
Выполнение кода. - Вставьте следующий код (замените путь
C:\Logs\на свой):Процедура ЭкспортЖурналаРегистрации() ЭкспортПутьКФайлу = "C:\Logs\Журнал_регистрации_" + Формат(ТекущаяДата(), "ДФ=yyyyMMdd") + ".mxl";
ЖурналРегистрации.Сохранить(ПутьКФайлу, ТипФайлаЖурналаРегистрации.MXL);
КонецПроцедуры
- Установите расписание (например, каждое воскресенье в 2:00).
⚠️ Внимание: Регламентные задания выполняются в контексте пользователя, от имени которого запускается 1С. Если у этого пользователя нет прав на запись в указанную папку, экспорт завершится ошибкой. Проверьте права доступа к каталогу C:\Logs\!
Указать корректный путь для сохранения|Проверить права доступа к папке|Задать расписание с учётом нагрузки на сервер|Протестировать выполнение вручную-->
3. Использование внешних обработок для расширенного экспорта
Стандартные средства 1С не всегда удобны: например, они не позволяют экспортировать журнал по фильтру (только по дате) или сохранять данные в SQL-базу. Для таких задач подойдут внешние обработки, например:
- 📊 "Выгрузка журнала регистрации в Excel" — позволяет гибко настраивать столбцы и фильтры, сохраняет в
.xlsxс сохранением форматирования. - 🗃️ "Архиватор журналов регистрации" — автоматически упаковывает логи в
.zipс разбивкой по месяцам и очисткой старых файлов. - 🔄 "Синхронизатор журналов в SQL" — переносит записи в отдельную таблицу базы данных для долговременного хранения.
Где взять обработки:
- Официальный каталог 1С:ИТС (раздел "Обработки для администрирования").
- Сайт Infostart.ru (бесплатные и платные решения).
- Гитхаб-репозитории (например,
oscript-libraryдля OneScript).
Пример кода для выгрузки в SQL (требуется подключение к базе через ADO):
Подключение = Новый COMОбъект("ADODB.Connection");
Подключение.Open("Driver={SQL Server};Server=.\SQLEXPRESS;Database=Logs1C;UID=sa;PWD=пароль");
Запрос = Новый COMОбъект("ADODB.Command");
Запрос.ActiveConnection = Подключение;
Запрос.CommandText = "INSERT INTO ЖурналРегистрации (Дата, Пользователь, Событие, Комментарий)
VALUES (?, ?, ?, ?)";
Журнал = ЖурналРегистрации.Выбрать();
Пока Журнал.Следующий() Цикл
Запрос.Parameters(0).Value = Журнал.Дата;
Запрос.Parameters(1).Value = Журнал.Пользователь;
Запрос.Parameters(2).Value = Журнал.Событие;
Запрос.Parameters(3).Value = Журнал.Комментарий;
Запрос.Execute();
КонецЦикла;
Раз в неделю|Раз в месяц|Только при проблемах|Никогда не сохранял|Автоматически через скрипт-->
4. Сохранение журнала через SQL-запросы (для файлового и клиент-серверного вариантов)
Если ваша база работает на SQL-сервере (PostgreSQL, MS SQL, IBM DB2), журнал регистрации хранится в системных таблицах платформы. Вы можете напрямую выгрузить данные через SQL-запрос, минуя интерфейс 1С. Это особенно полезно, если:
- 🔄 Нужно сохранить журнал за несколько лет (в интерфейсе 1С такие большие периоды могут подвисать).
- 🛠️ База повреждена, и 1С не открывается в обычном режиме.
- 📈 Требуется интеграция с внешними системами анализа логов (например, ELK Stack).
Пример запроса для MS SQL Server:
SELECT
[DateTime] AS ДатаВремя,
[UserName] AS Пользователь,
[Event] AS Событие,
[Metadata] AS Метаданные,
[Comment] AS Комментарий
FROM [YourDatabaseName].dbo[_EventLog]
WHERE [DateTime] BETWEEN '2026-01-01' AND '2026-12-31'
ORDER BY [DateTime] DESC;
Для PostgreSQL (используется в 1С:Предприятие для Linux):
SELECT
event_datetime AS "Дата/время",
username AS "Пользователь",
event AS "Событие",
metadata AS "Метаданные",
comment AS "Комментарий"
FROM _event_log
WHERE event_datetime >= '2026-01-01'
ORDER BY event_datetime DESC
LIMIT 100000;
⚠️ Внимание: Системные таблицы (например, _EventLog) могут изменяться в новых версиях платформы. Перед выполнением запроса проверьте актуальную структуру таблиц через SQL Management Studio или pgAdmin.
Как найти имя системной таблицы журнала в вашей базе?
В конфигураторе откройте Администрирование → Хранилище конфигурации → Системные таблицы. Имя таблицы журнала обычно начинается с префикса "_Event" или "_Journal".
5. Резервное копирование всей базы как способ сохранения журнала
Если вам нужно сохранить не только журнал регистрации, но и все изменения данных, наилучший вариант — резервное копирование всей базы. В этом случае журнал будет восстановлен вместе с остальными объектами. Способы резервирования:
| Метод | Подходит для | Плюсы | Минусы |
|---|---|---|---|
1cv8.exe CONFIG (файловый вариант) |
Локальные базы (.1CD) |
Не требует остановки 1С, сохраняет текущие сессии | Не работает для клиент-серверного варианта |
| SQL-дамп (pg_dump, sqlcmd) | Клиент-серверные базы (PostgreSQL, MS SQL) | Максимальная надёжность, можно восстановить на другой сервер | Требует остановки 1С или блокировки таблиц |
| Снимки хранилища (VSS, Hyper-V) | Виртуальные машины с 1С | Мгновенное создание копии без простоя | Занимает много места, не всегда согласованно |
| 1С:Бухгалтерия КОРП (встроенное резервирование) | Облачные и корпоративные решения | Автоматизация, хранение в облаке | Платная функция, ограниченные настройки |
Пример команды для создания резервной копии файловой базы:
"C:\Program Files\1cv8\8.3.20.1500\bin\1cv8.exe" CONFIG /D"C:\Bases\MyBase" /DumpIB"C:\Backups\MyBase_20260501.dt" /Out"C:\Backups\log.txt"
Для PostgreSQL:
pg_dump -U postgres -Fc -f "C:\Backups\1c_base_20260501.dump" 1c_base
Резервное копирование всей базы — единственный способ сохранить журнал регистрации вместе с контекстом (например, привязкой к конкретным документам или транзакциям).
6. Настройка автоматической очистки и архивации журнала
По умолчанию 1С хранит журнал регистрации ограниченное время (зависит от настроек базы). Чтобы избежать потери данных, настройте автоматическую архивацию и очистку:
- В конфигураторе откройте
Администрирование → Настройки программы → Журнал регистрации. - Установите параметр
Хранить записи не более(например, 30 дней). - Активируйте опцию
Архивировать записи старшеи укажите путь для архивов. - Настройте расписание архивации (ежедневно или еженедельно).
⚠️ Внимание: Если не настроить архивацию, 1С автоматически удалит записи старше указанного срока без возможности восстановления. Это касается даже клиент-серверных баз!
Для гибкой настройки используйте политики хранения (доступны в 1С:Предприятие 8.3.18+):
// Пример кода для настройки политики через API
Политика = ЖурналРегистрации.ПолитикаХранения;
Политика.УстановитьПериодХранения(30); // 30 дней
Политика.ВключитьАрхивацию(Истина);
Политика.УстановитьПутьАрхива("\\server\logs\1C\");
Политика.Применить();
7. Восстановление утраченного журнала регистрации
Если журнал был утерян (например, после сбоя сервера или очистки базы), попробуйте следующие методы восстановления:
- 🔍 Проверьте резервные копии — даже если журнал не экспортировался отдельно, он может быть в дампе базы.
- 💾 Ищите временные файлы — 1С иногда создаёт копии журналов в папке
%TEMP%\1C\1Cv8\. - 📁 Просмотрите логи SQL-сервера — если база клиент-серверная, события могли сохраниться в транзакционных логах.
- 🔄 Восстановите из снимков хранилища (если используете Veeam, Acronis или встроенные снимки Windows Server).
Если журнал был очищен вручную, попробуйте восстановить его через теневое копирование томов (Volume Shadow Copy):
// Команды для восстановления через VSS (Windows)
vssadmin list shadows
mklink /d C:\RestoredLog \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Path\To\Log
⚠️ Внимание: Восстановление журнала из теневых копий возможно только если:
- На диске была включена функция Защита системы.
- С момента очистки прошло не более 30 дней (по умолчанию).
- Файлы журнала не были перезаписаны новыми данными.
FAQ: Частые вопросы по сохранению журнала регистрации 1С
Можно ли сохранить журнал регистрации за весь период работы базы?
Технически да, но есть ограничения:
- В файловом варианте 1С хранит журнал в той же базе, и его размер ограничен размером файла
.1CD(максимум ~4 ГБ для старой файловой структуры). - В клиент-серверном варианте журнал хранится в SQL-таблице, но его рост может замедлить работу базы. Рекомендуется архивировать записи старше 1–2 лет.
Для выгрузки большого журнала используйте SQL-запросы или внешние обработки с постраничным чтением.
Как сохранить журнал регистрации, если 1С не открывается?
Способы в зависимости от типа базы:
- Файловый вариант: Скопируйте файл базы (
.1CD) и попробуйте открыть его на другой машине с той же версией платформы. Затем экспортируйте журнал через рабочую копию. - Клиент-серверный вариант: Подключитесь напрямую к SQL-серверу и выполните запрос к таблице
_EventLog(см. раздел 4). - Повреждённая база: Используйте утилиту
chdbfl.exeдля восстановления файла, затем попробуйте открыть его в режимеКонфигуратор /Repair.
Можно ли импортировать сохранённый журнал обратно в 1С?
Да, но с оговорками:
- Формат
.mxlподдерживает импорт через менюАдминистрирование → Журнал регистрации → Ещё → Загрузить список.... - Для
.txtили.csvпотребуется внешняя обработка (например, "Импорт журнала регистрации из CSV" с Infostart). - Импортированные записи не восстанавливают связь с удалёнными объектами (например, если документ, к которому относится запись, был удалён, связь не восстановится).
Как защитить журнал регистрации от изменений?
Чтобы предотвратить случайное или злонамеренное изменение журнала:
- Настройте права доступа в 1С: отключите возможность очистки журнала для всех пользователей, кроме администраторов.
- Храните экспортированные копии в защищённой папке с ограниченным доступом (например,
\\server\Logs\1C\с правами только для админов). - Используйте цифровую подпись для архивов (например, через GnuPG или встроенные средства Windows).
- Настройте уведомления о очистке журнала (через регламентные задания или триггеры SQL).
Сколько места занимает журнал регистрации?
Размер журнала зависит от:
- Интенсивности работы — в базах с 50+ пользователями журнал может расти на 100–500 МБ в день.
- Уровня детализации — если включена запись всех событий (включая открытие форм), объём логов увеличивается в 3–5 раз.
- Формата хранения — в SQL-таблице журнал занимает меньше места, чем в файловом варианте.
Примерные цифры:
| Тип базы | Количество пользователей | Размер журнала за месяц |
|---|---|---|
| Файловый вариант | 1–5 | 50–200 МБ |
| Клиент-сервер (SQL) | 10–30 | 500 МБ – 2 ГБ |
| Крупное предприятие (100+ пользователей) | 100+ | 5–20 ГБ |