Администрирование · 13 мин
Где лежат базы 1С SQL: как найти файлы данных на сервере
Где физически хранятся базы 1С в клиент-серверном режиме: пути к файлам SQL Server, способы узнать имя базы, каталоги данных, журналы и резервные копии.
Когда 1С работает в клиент-серверном режиме, файловая структура базы кардинально отличается от привычного каталога с файлом 1Cv8.1CD. Данные хранятся внутри СУБД — чаще всего Microsoft SQL Server, реже PostgreSQL, Oracle или IBM DB2 — и «лежат» они там, где эта СУБД размещает свои файлы данных. Поэтому на вопрос «где лежит база 1С SQL» нет одного универсального пути: всё зависит от настроек конкретного экземпляра SQL-сервера.
Путаница возникает из-за того, что у клиент-серверной базы есть сразу несколько «мест»: файлы данных и журнала транзакций на диске SQL-сервера, запись о базе в списке информационных баз на сервере 1С:Предприятия, а также служебные каталоги самого кластера 1С. Администратору важно различать эти уровни, чтобы правильно делать бэкапы, переносить базы и освобождать место на диске.
Ниже разобраны типовые пути хранения для Microsoft SQL Server, способы точно узнать, где лежит конкретная база, и безопасные правила работы с этими файлами.
Из чего состоит база 1С на SQL-сервере
В клиент-серверном варианте 1С не создаёт один файл базы, как в файловом режиме. Вместо этого SQL Server создаёт набор файлов, принадлежащих конкретной базе данных:
- Основной файл данных (.mdf) — таблицы, индексы, хранимые процедуры, то есть всё содержимое информационной базы;
- Файл журнала транзакций (.ldf) — протокол изменений, необходимый для восстановления и целостности данных;
- Дополнительные файлы данных (.ndf) — появляются, если базу разнесли на несколько файловых групп, что иногда делают для очень больших баз.
Имя базы данных в SQL Server обычно совпадает с именем, которое указали при создании информационной базы в консоли кластера 1С или в конфигураторе. Однако совпадение не гарантировано: базу могли переименовать на стороне SQL или создать под другим именем при восстановлении из бэкапа.
Важно понимать: сами по себе файлы .mdf и .ldf нельзя «открыть» или скопировать как обычный документ, пока SQL Server ими пользуется. Файлы заблокированы работающей службой СУБД, и прямое копирование без остановки службы или отсоединения базы даст повреждённую копию.
Стандартные пути хранения файлов SQL Server
При установке Microsoft SQL Server с настройками по умолчанию файлы баз данных размещаются в каталоге вида:
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA
Здесь MSSQL15 — номер версии (15 соответствует SQL Server 2019, 14 — 2017, 13 — 2016 и т.д.), а MSSQLSERVER — имя экземпляра. Если экземпляр именованный, например SQL1C, путь будет содержать его имя: MSSQL15.SQL1C\MSSQL\DATA.
| Версия SQL Server | Код в имени каталога | Пример пути |
|---|---|---|
| SQL Server 2016 | MSSQL13 | C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA |
| SQL Server 2017 | MSSQL14 | C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA |
| SQL Server 2019 | MSSQL15 | C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA |
| SQL Server 2022 | MSSQL16 | C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA |
На практике каталог по умолчанию часто меняют: опытные администраторы выносят данные на отдельный диск (например, D:\SQLData), чтобы рост баз не заполнил системный раздел. Поэтому отсутствие файлов в стандартном пути — не признак проблемы, а повод узнать фактическое расположение.
Как точно узнать, где лежит конкретная база
Самый надёжный способ — посмотреть свойства базы в SQL Server Management Studio (SSMS). Для этого подключитесь к экземпляру, найдите базу в списке «Базы данных», откройте её свойства и перейдите на страницу «Файлы»: там будут полные пути ко всем файлам .mdf, .ndf и .ldf.
Альтернатива — запрос к системному представлению, который выводит пути всех баз сразу:
SELECT name AS ИмяБазы, physical_name AS ПутьКФайлу, type_desc AS Тип FROM sys.master_files ORDER BY name;Если SSMS под рукой нет, путь можно выяснить через реестр Windows: в ветке HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\<экземпляр>\MSSQLServer параметр DefaultData показывает каталог данных по умолчанию. Но этот способ показывает лишь каталог по умолчанию — база, созданная с явным указанием пути, может лежать в другом месте.
- 1Откройте SQL Server Management Studio и подключитесь к экземпляру, на котором развёрнуты базы 1С
- 2В дереве объектов раскройте узел «Базы данных» и найдите нужную базу по имени
- 3Щёлкните по базе правой кнопкой, выберите «Свойства», затем страницу «Файлы»
- 4Скопируйте пути из колонки «Путь» — это фактическое расположение .mdf и .ldf
- 5Проверьте наличие файлов по указанным путям и оцените их размер
Как узнать имя SQL-базы по списку информационных баз 1С
Часто известно только имя базы, под которым её видят пользователи, а имя базы данных на SQL-сервере — другое. Связь между ними хранится в настройках кластера серверов 1С:Предприятия.
Откройте консоль управления серверами 1С (оснастка «Администрирование серверов 1С Предприятия»), раскройте кластер, перейдите в раздел «Информационные базы» и откройте свойства нужной базы. В полях «Сервер баз данных» и «База данных» указаны имя SQL-сервера и имя базы данных — именно по ним нужно искать файлы на стороне СУБД.
Если консоль кластера недоступна, имя SQL-базы можно подсмотреть в файле списка информационных баз пользователя (ibases.v8i в профиле пользователя) — там в строке подключения для клиент-серверных баз фигурируют параметры Srvr и Ref, где Ref — это имя базы в кластере, а не в SQL. Полное соответствие всё равно придётся уточнять в консоли кластера.
Удобная привычка: при создании базы давать имени в кластере 1С и имени базы данных в SQL одинаковое значение, например trade_prod. Тогда через полгода не придётся восстанавливать цепочку соответствий по чужим записям.
Где лежат служебные каталоги сервера 1С
Помимо файлов SQL Server, у клиент-серверной базы есть служебное окружение на сервере 1С:Предприятия. Кластер хранит свои данные в каталоге srvinfo — по умолчанию это C:\Program Files\1cv8\srvinfo (для 64-разрядной версии путь может отличаться).
Внутри srvinfo находятся подкаталоги с идентификаторами кластера (reg_1541 и похожие), а в них — папки с GUID-именами для каждой информационной базы. Там лежат журналы регистрации нового формата, настройки базы и вспомогательные данные. Сами бухгалтерские данные там не хранятся — удаление этих каталогов не уничтожит учётные данные, но может привести к потере журнала регистрации и настроек.
Отдельно стоит упомянуть каталог временных файлов и сеансовых данных. Его очистка — штатная процедура при обслуживании, но выполнять её нужно при остановленных службах, чтобы не повредить активные сеансы.
Резервные копии: где они и как не перепутать с базой
Штатный способ резервного копирования клиент-серверной базы 1С — средствами SQL Server. По умолчанию файлы .bak сохраняются в каталог ...\MSSQL\Backup рядом с каталогом DATA, но администраторы почти всегда перенастраивают путь на отдельный диск или сетевое хранилище.
Проверить, куда реально пишутся бэкапы, можно в плане обслуживания (Maintenance Plan) в SSMS или в истории заданий агента SQL Server. Если бэкапы настроены скриптом, путь будет прописан прямо в команде BACKUP DATABASE.
Критично не путать резервную копию с рабочими файлами: .bak — это моментальный снимок, который можно безопасно копировать и переносить, а .mdf/.ldf — «живые» файлы работающей базы. Для переноса базы на другой сервер правильный путь — сделать бэкап и восстановить его на целевом сервере, а не копировать файлы данных.
PostgreSQL и другие СУБД: где лежат базы там
Если 1С работает на PostgreSQL, файлы базы лежат в каталоге данных кластера PostgreSQL — в Linux обычно /var/lib/pgsql/data или /var/lib/postgresql/<версия>/main, в Windows — каталог, указанный при установке (например, C:\Program Files\PostgreSQL\15\data). Внутри базы хранятся в подкаталоге base с числовыми именами OID, поэтому найти нужную базу «по имени папки» не получится — соответствие OID и имени базы показывает запрос SELECT oid, datname FROM pg_database;.
Для Oracle и IBM DB2 логика аналогична: данные лежат в табличных пространствах и контейнерах, пути к которым задаются при создании и уточняются через системные представления СУБД. Универсальное правило одно: не ищите базу по догадке в файловой системе — спросите у самой СУБД, где лежат её файлы.
Как выбрать действие
Проверка результата и контрольные точки
После того как вы нашли файлы базы, убедитесь, что нашли именно рабочую базу, а не устаревшую копию или тестовый экземпляр. Сверьте имя базы в консоли кластера 1С, имя базы в SSMS и дату последнего изменения файлов — у активной базы .mdf и .ldf изменяются постоянно.
Как проверить результат
Имя из свойств ИБ в консоли кластера совпадает с именем базы в SSMS
Имена различаются и непонятно, какая база рабочая — уточните связь через свойства информационной базы
Файлы изменяются в текущее время при работе пользователей
Файлы не менялись неделями — вероятно, это старая или отсоединённая копия
В каталоге бэкапов есть свежие .bak, расписание задания агента активно
Бэкапов нет или им больше нескольких дней — настройте резервное копирование до любых работ с файлами
Запас места позволяет базе расти без риска остановки
Диск заполнен почти полностью — автоприрост базы может остановить работу пользователей
Частые вопросы
Можно ли найти базу 1С на SQL-сервере простым поиском по диску?
Только косвенно: поиск файлов .mdf по дискам сервера покажет кандидатов, но не скажет, какая база рабочая и как называется в SQL. Надёжнее выполнить запрос к sys.master_files — он выведет точные пути всех баз экземпляра за секунды.
Почему файл журнала .ldf намного больше файла данных .mdf?
Обычно это следствие модели восстановления Full без регулярных бэкапов журнала: SQL Server накапливает записи транзакций, не очищая журнал. Решение — настроить регулярное резервное копирование журнала или, если восстановление на момент времени не требуется, перевести базу в модель Simple и выполнить сжатие журнала.
Можно ли перенести базу 1С, просто скопировав файлы .mdf и .ldf?
Технически возможно через отсоединение (Detach) базы, копирование файлов и присоединение (Attach) на новом сервере, но штатный и более безопасный способ — бэкап и восстановление. Прямое копирование файлов при работающем SQL Server недопустимо: файлы заблокированы, а копия будет несогласованной.
Где лежит база, если 1С файловая, а не клиент-серверная?
В файловом режиме вся база — это каталог с файлом 1Cv8.1CD, путь к которому указан в списке информационных баз при запуске 1С (его видно внизу окна выбора баз). Никаких файлов SQL Server в этом случае не существует.
Как узнать каталог данных PostgreSQL, если 1С работает на нём?
Подключитесь к серверу через psql или pgAdmin и выполните команду SHOW data_directory; — она вернёт полный путь к каталогу данных кластера. Соответствие конкретной базы и её подкаталога покажет запрос SELECT oid, datname FROM pg_database.
Опасно ли удалять старые базы с SQL-сервера для освобождения места?
Да, если делать это через проводник. Правильная процедура: убедиться, что база не используется (её нет в консоли кластера 1С или она помечена как архивная), сделать финальный бэкап, затем удалить базу через SSMS — тогда SQL Server сам корректно удалит файлы .mdf и .ldf.
Что важно запомнить
База 1С в SQL-режиме — это файлы .mdf и .ldf в каталоге данных SQL Server, а не один файл, как в файловом варианте. Точное расположение всегда показывает сама СУБД: свойства базы в SSMS или запрос к sys.master_files. Любые операции с файлами — только после резервной копии и только штатными средствами SQL Server.