К статье
Практический материал

Администрирование · 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 2016MSSQL13C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA
SQL Server 2017MSSQL14C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA
SQL Server 2019MSSQL15C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA
SQL Server 2022MSSQL16C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA

На практике каталог по умолчанию часто меняют: опытные администраторы выносят данные на отдельный диск (например, D:\SQLData), чтобы рост баз не заполнил системный раздел. Поэтому отсутствие файлов в стандартном пути — не признак проблемы, а повод узнать фактическое расположение.

Как точно узнать, где лежит конкретная база

Самый надёжный способ — посмотреть свойства базы в SQL Server Management Studio (SSMS). Для этого подключитесь к экземпляру, найдите базу в списке «Базы данных», откройте её свойства и перейдите на страницу «Файлы»: там будут полные пути ко всем файлам .mdf, .ndf и .ldf.

Альтернатива — запрос к системному представлению, который выводит пути всех баз сразу:

sql
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. 1
    Откройте SQL Server Management Studio и подключитесь к экземпляру, на котором развёрнуты базы 1С
  2. 2
    В дереве объектов раскройте узел «Базы данных» и найдите нужную базу по имени
  3. 3
    Щёлкните по базе правой кнопкой, выберите «Свойства», затем страницу «Файлы»
  4. 4
    Скопируйте пути из колонки «Путь» — это фактическое расположение .mdf и .ldf
  5. 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-именами для каждой информационной базы. Там лежат журналы регистрации нового формата, настройки базы и вспомогательные данные. Сами бухгалтерские данные там не хранятся — удаление этих каталогов не уничтожит учётные данные, но может привести к потере журнала регистрации и настроек.

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

Типичные ошибки
01
Копировать .mdf и .ldf при работающем SQL Server — копия получится несогласованной и не присоединится обратно без танцев с восстановлением
02
Удалять файлы базы из проводника вместо удаления базы через SSMS — в SQL останется «битая» запись, а место может не освободиться корректно
03
Искать данные в каталоге srvinfo сервера 1С — там только служебная информация, учётные данные хранятся в файлах SQL Server
04
Сжимать каталог DATA средствами NTFS ради экономии места — это заметно деградирует производительность баз 1С

Резервные копии: где они и как не перепутать с базой

Штатный способ резервного копирования клиент-серверной базы 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 логика аналогична: данные лежат в табличных пространствах и контейнерах, пути к которым задаются при создании и уточняются через системные представления СУБД. Универсальное правило одно: не ищите базу по догадке в файловой системе — спросите у самой СУБД, где лежат её файлы.

Маршрут решения

Как выбрать действие

Нужно просто узнать расположение базыОткройте свойства базы в SSMS → «Файлы» или выполните запрос к sys.master_files
Нужно перенести базу на другой серверСделайте полный бэкап средствами SQL Server и восстановите его на целевом сервере, затем переподключите базу в консоли кластера 1С
Заканчивается место на диске с даннымиПроверьте размер .ldf и модель восстановления; при необходимости выполните шринк журнала после бэкапа, а не удаляйте файлы вручную
База работает на PostgreSQL и путь неизвестенВыполните SHOW data_directory; в psql — команда вернёт каталог данных кластера

Проверка результата и контрольные точки

После того как вы нашли файлы базы, убедитесь, что нашли именно рабочую базу, а не устаревшую копию или тестовый экземпляр. Сверьте имя базы в консоли кластера 1С, имя базы в SSMS и дату последнего изменения файлов — у активной базы .mdf и .ldf изменяются постоянно.

Контрольные точки

Как проверить результат

Соответствие имени базы в кластере 1С и в SQL Server
Норма

Имя из свойств ИБ в консоли кластера совпадает с именем базы в SSMS

Тревожный признак

Имена различаются и непонятно, какая база рабочая — уточните связь через свойства информационной базы

Дата изменения файлов .mdf/.ldf
Норма

Файлы изменяются в текущее время при работе пользователей

Тревожный признак

Файлы не менялись неделями — вероятно, это старая или отсоединённая копия

Наличие актуальных бэкапов
Норма

В каталоге бэкапов есть свежие .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.