Лог-файлы 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С:ERP или 1С:УХ) объём логов может достигать 50–100 ГБ в месяц при интенсивной работе. Перенаправление на выделенный диск или сетевое хранилище (NAS) решает проблему переполнения.

📊 Где вы храните логи 1С в своей инфраструктуре?
На системном диске (по умолчанию)
На отдельном физическом диске
В сетевом хранилище (NAS/SAN)
В облаке (S3, Azure Blob)
Не знаю, где хранятся

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

Перенаправление логов для файловых баз 1С

Для файловых баз (хранящихся в формате .1CD) перенаправление логов осуществляется через редактирование конфигурационных файлов. Основные файлы настройки:

  • 📝 conf.cfg — главный конфигурационный файл (расположен в каталоге базы).
  • 📝 1cv8.lst — список файловых баз (путь: %APPDATA%\1C\1Cv8\).
  • 📝 srvinfo.ini — настройки серверного кластера (для гибридных конфигураций).

Инструкция по изменению пути для Технологического журнала (ТЖ):

  1. Откройте файл conf.cfg в текстовом редакторе (например, Notepad++).
  2. Найдите секцию [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"ИмяПользователя"
⚠️ Внимание: В файловом режиме может игнорировать настройки 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. Централизация логов

Для распределённых систем (например, с несколькими серверами ) настройте отправку логов в 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:

  1. Отредактируйте файл /opt/1C/v8.3/x86_64/conf/conf.cfg (путь может отличаться в зависимости от дистрибутива).
  2. Укажите новый путь в формате Linux: LogDir=/var/log/1c/.
  3. Убедитесь, что папка принадлежит пользователю usr1cv8:
    sudo chown -R usr1cv8:grp1cv8 /var/log/1c/
  4. Перезапустите сервисы:
    sudo systemctl restart srv1cv83

Для PostgreSQL используйте аналогичные SQL-запросы, но с учётом синтаксиса psql.

Что будет, если указать сетевой путь (UNC) для логов?

Использование сетевых путей (например, \\server\share\logs\) возможно, но требует:

  • Настройки прав доступа на сетевой папке для пользователя, под которым работает служба (обычно USR1CV8 или SYSTEM).
  • Стабильного сетевого подключения — при обрыве связи логи не будут записываться.
  • Отключения Offline Files в Windows, если папка синхронизируется.

Рекомендуем тестировать сетевые пути в нерабочее время — задержки записи могут влиять на производительность.

Как вернуть стандартные пути к логам?

Чтобы отменить перенаправление:

  1. Для SQL-баз выполните запрос:
    UPDATE [Config] SET [Value] = '%APPDATA%\1C\1Cv8\log\' WHERE [Name] = 'LogPath';
  2. Для файловых баз удалите или закомментируйте строку LogDir в conf.cfg.
  3. Перезапустите сервисы .

Старые логи в новой папке останутся нетронутыми — их можно удалить вручную.

Влияет ли перенаправление логов на производительность 1С?

При правильной настройке влияние минимально, но есть нюансы:

  • 🔹 Локальные SSD-диски — запись логов на отдельный SSD может ускорить работу, если основная база расположена на HDD.
  • 🔹 Сетевые пути — запись по SMB добавляет задержку (~5–20 мс на операцию). Критично для высоконагруженных систем (более 1000 пользователей).
  • 🔹 Уровень детализации ТЖ — если установить LogLevel=Debug, объём логов вырастет в 5–10 раз, что может замедлить систему независимо от пути хранения.

Для тестирования используйте утилиту 1С:Тест-центр или SQL Server Profiler, чтобы замерить время записи логов до и после перенаправления.