Лог-файлы 1С:Предприятие — критически важный инструмент для диагностики ошибок, отслеживания производительности и аудита действий пользователей. По умолчанию система сохраняет их в стандартные каталоги, которые со временем перегружаются, особенно на серверах с высокой нагрузкой. Перенаправление пути хранения логов через SQL-запросы позволяет оптимизировать дисковое пространство, улучшить безопасность (разделение системных и пользовательских данных) и упростить резервное копирование.
Эта статья охватывает все актуальные методы изменения путей к логам — от ручного редактирования конфигурационных файлов до программного управления через T-SQL для Microsoft SQL Server и PostgreSQL. Мы разберём нюансы для разных версий платформы 1С:Предприятие 8.3, типов баз (файловые и клиент-серверные), а также предоставим готовые скрипты для автоматизации процесса. Особое внимание уделено перенаправлению логов технологического журнала (ТЖ) без потери данных при перезапуске сервисов.
Зачем перенаправлять логи 1С: ключевые причины
Стандартные пути хранения логов (C:\Program Files\1cv8\srvinfo\ для серверных баз или %APPDATA%\1C\1Cv8\ для файловых) часто становятся узким местом в инфраструктуре. Вот почему администраторы прибегают к их перенаправлению:
- 📁 Нехватка дискового пространства на системном разделе — логи могут занимать десятки гигабайт, особенно при активном использовании
Технологического журналас уровнем детализации"Отладка". - 🔒 Разделение прав доступа — хранение логов на отдельном томе с ограниченным доступом повышает безопасность (например, для соответствия ФЗ-152 или GDPR).
- ⚡ Производительность — запись логов на SSD-накопитель ускоряет работу системы, если основная база расположена на HDD.
- 🔄 Упрощение резервного копирования — логи на выделенном диске легче архивировать отдельно от базы данных.
- 🛠️ Диагностика в кластерных средах — централизованное хранение логов с нескольких серверов 1С:Предприятие в одной папке.
По данным 1С, в корпоративных решениях (например, 1С:ERP или 1С:УХ) объём логов может достигать 50–100 ГБ в месяц при интенсивной работе. Перенаправление на выделенный диск или сетевое хранилище (NAS) решает проблему переполнения.
Типы логов 1С и их стандартные пути хранения
Перед перенаправлением важно понимать, какие именно логи вы хотите переместить. В 1С:Предприятие 8.3 выделяют четыре основных типа логов, каждый из которых имеет своё расположение по умолчанию:
| Тип лога | Стандартный путь (Windows) | Назначение | Управляется через |
|---|---|---|---|
| Технологический журнал (ТЖ) | %APPDATA%\1C\1Cv8\log\ (файловый)C:\Program Files\1cv8\srvinfo\ (серверный) |
Детализированная запись всех событий платформы (ошибки, запросы, транзакции) | Файл conf.cfg или 1C:Enterprise консоль |
| Журнал регистрации | %APPDATA%\1C\1Cv8\ (файл 1Cv8.log) |
Общие события запуска/остановки системы, обновлений | Параметры запуска 1cv8.exe |
| Логи кластера серверов 1С | C:\Program Files\1cv8\srvinfo\reg_1541\ |
Работа серверных процессов (ragent, rmngr) |
Файл srvinfo.ini или SQL-запросы |
| Логи фоновых заданий | %APPDATA%\1C\1Cv8\bgjobs\ |
Выполнение регламентных задач | Настройки Регламентных заданий в конфигураторе |
Для клиент-серверных баз (работающих на MS SQL Server или PostgreSQL) часть логов хранится непосредственно в базе данных — например, журнал транзакций или события блокировок. Эти данные перенаправить через SQL нельзя, но можно архивировать или чистить с помощью скриптов.
⚠️ Внимание: В версиях 1С:Предприятие 8.3.20+ формат хранения технологического журнала изменился — теперь он может записываться вSQLite-базу вместо текстовых файлов. Это требует отдельной настройки пути к файлу.db.
Перенаправление логов через SQL: пошаговая инструкция
Для изменения пути хранения логов с использованием SQL-запросов потребуется доступ к базе данных 1С (обычно это MS SQL Server или PostgreSQL). Метод подходит только для клиент-серверных баз и затрагивает следующие типы логов:
- 📄 Логи кластера серверов 1С (путь хранится в таблице
Configбазы_1CDBNAME_). - 🔄 Логи регламентных заданий (таблица
Tasksв базе_1CDBNAME_). - 🔧 Логи административных событий (таблица
EventLog).
Для файловых баз SQL-запросы не применяются — используйте редактирование конфигурационных файлов (раздел ниже).
Шаг 1: Подготовка к изменению путей
Перед выполнением SQL-запросов:
Создать резервную копию базы данных|Проверить права доступа к новой папке (полный доступ для пользователя 1С:Предприятие)|Остановить сервис 1С:Предприятие 8.3 Сервер (для серверных баз)|Убедиться, что новая папка существует и доступна по сети (если используется сетевой путь)-->
Шаг 2: SQL-запросы для перенаправления
Ниже приведены скрипты для Microsoft SQL Server. Для PostgreSQL замените TOP 1 на LIMIT 1 и используйте двойные кавычки для имён таблиц.
1. Изменение пути логов кластера серверов 1С:
USE [Your_1CDatabase_Name];
UPDATE [Config]
SET [Value] = 'D:\1C_Logs\Cluster\' -- новый путь
WHERE [Name] = 'LogPath' AND [Type] = 'Server';
2. Перенаправление логов регламентных заданий:
USE [Your_1CDatabase_Name];
UPDATE [Tasks]
SET [LogPath] = 'D:\1C_Logs\BackgroundJobs\'
WHERE [LogPath] LIKE '%AppData%1C%'; -- фильтр по стандартному пути
3. Обновление пути для административных событий:
USE [Your_1CDatabase_Name];
UPDATE [EventLog]
SET [FilePath] = 'D:\1C_Logs\AdminEvents\event.log'
WHERE [FilePath] LIKE '%Program Files%1cv8%';
⚠️ Внимание: После выполнения запросов обязательно перезапустите сервисы 1С:Предприятие (ragent,rmngr) черезОснастку управления кластеромили команду:net stop "1C:Enterprise 8.3 Server Agent"net start "1C:Enterprise 8.3 Server Agent"
Иначе изменения не вступят в силу!
SELECT [Name], [Value] FROM [Config] WHERE [Value] LIKE '%log%';-->
Шаг 3: Проверка результатов
После перезапуска сервисов:
- Запустите тестовое событие в 1С (например, обновите конфигурацию или выполните регламентное задание).
- Проверьте новую папку на наличие свежих лог-файлов.
- Убедитесь, что старые логи больше не записываются по прежнему пути.
Перенаправление логов для файловых баз 1С
Для файловых баз (хранящихся в формате .1CD) перенаправление логов осуществляется через редактирование конфигурационных файлов. Основные файлы настройки:
- 📝
conf.cfg— главный конфигурационный файл (расположен в каталоге базы). - 📝
1cv8.lst— список файловых баз (путь:%APPDATA%\1C\1Cv8\). - 📝
srvinfo.ini— настройки серверного кластера (для гибридных конфигураций).
Инструкция по изменению пути для Технологического журнала (ТЖ):
- Откройте файл
conf.cfgв текстовом редакторе (например, Notepad++). - Найдите секцию
[Log]или добавьте её, если отсутствует:
[Log]
LogDir=D:\1C_Logs\FileBase\ ; Новый путь к логам
LogFileSizeLimit=100 ; Ограничение размера файла в МБ (опционально)
LogFileCount=10 ; Количество хранимых файлов (опционально)
Для журнала регистрации (1Cv8.log) путь меняется через параметр запуска 1cv8.exe:
1cv8.exe DESIGNER /L"D:\1C_Logs\1Cv8.log" /UC"ИмяПользователя"
⚠️ Внимание: В файловом режиме 1С может игнорировать настройки conf.cfg, если база открыта в монопольном режиме. Перед изменениями закройте все сеансы!
Что делать, если логи продолжают писаться в старую папку?
1. Проверьте права доступа к новой папке — пользователь, под которым работает 1С, должен иметь права на запись.
2. Убедитесь, что в conf.cfg нет дублирующих параметров (например, LogPath и LogDir).
3. Для серверных баз перезапустите не только ragent, но и rmngr через оснастку управления кластером.
4. В файловом режиме попробуйте добавить параметр /LogDir непосредственно в ярлык запуска 1cv8.exe.
Автоматизация перенаправления логов с помощью скриптов
Ручное редактирование конфигурационных файлов или выполнение SQL-запросов не всегда удобно в крупных инфраструктурах. Ниже приведены скрипты для автоматизации процесса.
PowerShell-скрипт для массового изменения путей в conf.cfg
Скрипт рекурсивно обходит папки с базами 1С и обновляет путь к логам в файлах conf.cfg:
$oldPath = "$env:APPDATA\1C\1Cv8\log"
$newPath = "D:\1C_Logs\"
Get-ChildItem -Path "C:\Bases1C\" -Recurse -Filter "conf.cfg" | ForEach-Object {
$content = Get-Content $_.FullName
$updatedContent = $content -replace [regex]::Escape($oldPath), $newPath
$updatedContent | Set-Content $_.FullName
Write-Host "Обновлён файл: $($_.FullName)"
}
SQL-скрипт для генерации команд UPDATE
Если у вас десятки баз на сервере, этот скрипт сгенерирует команды UPDATE для всех из них:
SELECT
'USE [' + name + '];' +
'UPDATE [Config] SET [Value] = ''D:\1C_Logs\' + name + '\'' WHERE [Name] = ''LogPath'';'
FROM sys.databases
WHERE name LIKE '1C%'; -- фильтр по именам баз 1С
Батник для перезапуска сервисов 1С
После изменения путей выполните этот скрипт для перезагрузки сервисов:
@echo off
net stop "1C:Enterprise 8.3 Server Agent" /y
timeout /t 5
net start "1C:Enterprise 8.3 Server Agent"
timeout /t 10
net stop "1C:Enterprise 8.3 Server" /y
timeout /t 5
net start "1C:Enterprise 8.3 Server"
Автоматизация перенаправления логов сокращает время настройки с часов до минут и исключает человеческие ошибки при ручном редактировании. Особенно актуально для хостинг-провайдеров и компаний с десятками баз 1С.
Ошибки при перенаправлении логов и их решения
Даже при точном следовании инструкциям могут возникать ошибки. Рассмотрим типичные проблемы и способы их устранения.
| Ошибка | Причина | Решение |
|---|---|---|
| Логи не пишутся в новую папку | Недостаточно прав доступа или неверный путь | Проверьте права для пользователя USR1CV8 (или SYSTEM) на папку. Используйте UNC-пути для сетевых ресурсов (например, \\server\share\logs\). |
| Ошибка "Cannot create log file" | Папка не существует или заблокирована | Создайте папку вручную и убедитесь, что она не открыта в Проводнике или антивирусе. |
| SQL-запрос не обновляет записи | Неверный фильтр в WHERE или транзакция не зафиксирована |
Добавьте BEGIN TRANSACTION и COMMIT в скрипт. Проверьте имя таблицы — в новых версиях 1С оно может отличаться. |
| Логи дублируются в старую и новую папки | Не все сервисы 1С перезапущены | Перезапустите все сервисы: ragent, rmngr, 1C:Enterprise 8.3 Server. |
| Ошибка "Invalid path" в ТЖ | В пути используются недопустимые символы | Используйте только латиницу, цифры и символы \, -, _. Избегайте пробелов. |
Если после перенаправления логи перестали записываться вовсе, проверьте:
- 🔍 Уровень детализации ТЖ — возможно, он сбросился на
"Минимум"(проверьте вconf.cfgпараметрLogLevel). - 🛡️ Антивирус — некоторые решения (например, Kaspersky) блокируют запись в нестандартные папки.
- 📡 Сетевые политики — если путь ведёт на сетевой ресурс, убедитесь, что порт
SMB (445)открыт.
Оптимизация хранения логов после перенаправления
Перенаправление пути — только первый шаг. Чтобы система оставалась стабильной, настройте ротацию, архивацию и мониторинг логов.
1. Настройка ротации логов
В файле conf.cfg добавьте параметры для автоматического разделения логов по датам и ограничения их размера:
[Log]
LogDir=D:\1C_Logs\
LogFileSizeLimit=50 ; Максимальный размер файла в МБ
LogFileCount=30 ; Количество хранимых файлов
LogFileDate=1 ; Разделять логи по дням (1 — да, 0 — нет)
2. Архивация старых логов
Используйте Windows Task Scheduler или cron (для Linux) для автоматического архивирования логов старше 30 дней:
# Пример для PowerShell (архивация в ZIP)
$source = "D:\1C_Logs\*"
$destination = "D:\1C_Logs_Archive\"
$days = 30
Get-ChildItem $source -File | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$days) } | ForEach-Object {
Compress-Archive -Path $_.FullName -DestinationPath "$destination\$($_.Name).zip" -Force
Remove-Item $_.FullName
}
3. Мониторинг свободного места
Настройте оповещения о переполнении диска с логами. Например, через Zabbix или встроенные средства Windows:
# Проверка свободного места (PowerShell)
$drive = "D:"
$threshold = 10GB # Порог в гигабайтах
$freeSpace = [math]::Round((Get-PSDrive $drive).Free / 1GB, 2)
if ($freeSpace -lt $threshold) {
Send-MailMessage -To "admin@company.ru" -Subject "Низкий уровень свободного места на $drive" -Body "Осталось $freeSpace ГБ"
}
4. Централизация логов
Для распределённых систем (например, с несколькими серверами 1С) настройте отправку логов в ELK Stack (Elasticsearch + Logstash + Kibana) или Graylog. Пример конфигурации Logstash для парсинга логов 1С:
input {
file {
path => "D:\1C_Logs\*.log"
start_position => "beginning"
sincedb_path => "NUL"
}
}
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:message}" }
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "logs-1c-%{+YYYY.MM.dd}"
}
}
Централизованное хранение логов в ELK позволяет анализировать события из десятков баз 1С на одной панели, строить дашборды по ошибкам и настраивать оповещения по ключевым словам (например, "Deadlock" или "Timeout").
FAQ: Частые вопросы по перенаправлению логов 1С
Можно ли перенаправить логи для облачной базы 1С (1C:Fresh, 1C:GISP)?
Нет, в сервисах 1C:Fresh и 1C:GISP пути к логам жёстко зафиксированы на стороне провайдера. Вы можете только скачивать логи через личный кабинет или API, но не изменять их расположение. Для локальных установок (например, 1С:Предприятие на виртуальной машине в облаке) перенаправление возможно по стандартной инструкции.
Как перенаправить логи, если 1С работает под Linux?
Для 1С:Предприятие 8.3 под Linux:
- Отредактируйте файл
/opt/1C/v8.3/x86_64/conf/conf.cfg(путь может отличаться в зависимости от дистрибутива). - Укажите новый путь в формате Linux:
LogDir=/var/log/1c/. - Убедитесь, что папка принадлежит пользователю
usr1cv8:sudo chown -R usr1cv8:grp1cv8 /var/log/1c/ - Перезапустите сервисы:
sudo systemctl restart srv1cv83
Для PostgreSQL используйте аналогичные SQL-запросы, но с учётом синтаксиса psql.
Что будет, если указать сетевой путь (UNC) для логов?
Использование сетевых путей (например, \\server\share\logs\) возможно, но требует:
- Настройки прав доступа на сетевой папке для пользователя, под которым работает служба 1С (обычно
USR1CV8илиSYSTEM). - Стабильного сетевого подключения — при обрыве связи логи не будут записываться.
- Отключения Offline Files в Windows, если папка синхронизируется.
Рекомендуем тестировать сетевые пути в нерабочее время — задержки записи могут влиять на производительность.
Как вернуть стандартные пути к логам?
Чтобы отменить перенаправление:
- Для SQL-баз выполните запрос:
UPDATE [Config] SET [Value] = '%APPDATA%\1C\1Cv8\log\' WHERE [Name] = 'LogPath'; - Для файловых баз удалите или закомментируйте строку
LogDirвconf.cfg. - Перезапустите сервисы 1С.
Старые логи в новой папке останутся нетронутыми — их можно удалить вручную.
Влияет ли перенаправление логов на производительность 1С?
При правильной настройке влияние минимально, но есть нюансы:
- 🔹 Локальные SSD-диски — запись логов на отдельный SSD может ускорить работу, если основная база расположена на HDD.
- 🔹 Сетевые пути — запись по SMB добавляет задержку (~5–20 мс на операцию). Критично для высоконагруженных систем (более 1000 пользователей).
- 🔹 Уровень детализации ТЖ — если установить
LogLevel=Debug, объём логов вырастет в 5–10 раз, что может замедлить систему независимо от пути хранения.
Для тестирования используйте утилиту 1С:Тест-центр или SQL Server Profiler, чтобы замерить время записи логов до и после перенаправления.