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

Администрирование · 10 мин

Где находится база 1С на SQL Server

Где физически хранится база 1С в клиент-серверном варианте: как узнать имя базы в кластере, найти файлы MDF и LDF на SQL Server и проверить пути.

В клиент-серверном варианте работы 1С данные хранятся не в одном файле, как в файловой базе, а в базе данных на сервере СУБД — чаще всего Microsoft SQL Server. Физически это файлы данных (MDF, NDF) и журнал транзакций (LDF), которые лежат в каталоге данных SQL Server, а логически база зарегистрирована в кластере серверов 1С:Предприятие. Чтобы найти, где именно находится база, нужно связать два слоя: запись в консоли кластера 1С и файлы на диске сервера СУБД.

Путаница обычно возникает из-за того, что в списке баз при запуске 1С пользователь видит только имя информационной базы и адрес кластера, но не путь к файлам. Сами файлы находятся на сервере, где установлен SQL Server, и пользовательский компьютер к ним напрямую не обращается — вся работа идёт через сервер 1С и СУБД. Поэтому искать базу 1С в SQL-варианте на своём рабочем компьютере бессмысленно.

Ниже разобрано, как определить имя базы данных, найти каталог с файлами на SQL Server, чем отличаются роли сервера 1С и сервера СУБД, а также какие действия с файлами базы допустимы, а какие приведут к потере данных.

Как устроено хранение базы 1С в клиент-серверном варианте

В отличие от файловой базы, которая целиком лежит в одном файле 1Cv8.1CD, клиент-серверная база состоит минимум из двух файлов на стороне SQL Server: основного файла данных с расширением MDF и файла журнала транзакций с расширением LDF. При больших объёмах администратор СУБД может добавлять вторичные файлы данных NDF и распределять их по разным дискам.

Сервер 1С:Предприятие в этой схеме выступает посредником: он принимает запросы от клиентских приложений, формирует SQL-запросы и передаёт их в СУБД. Поэтому сервер 1С и SQL Server могут быть установлены как на одной машине, так и на разных. Во втором случае файлы базы находятся на сервере СУБД, а искать их на сервере 1С не нужно.

Как узнать имя базы данных через консоль кластера 1С

Первый шаг — определить, под каким именем база зарегистрирована в SQL Server. Для этого откройте консоль администрирования серверов 1С:Предприятие на машине, где установлен сервер 1С, разверните нужный кластер и перейдите в раздел «Информационные базы».

Откройте свойства нужной базы двойным щелчком. В форме свойств обратите внимание на поля: «Сервер баз данных» — имя или адрес сервера СУБД, «Тип СУБД» — например, MS SQL Server, и «База данных» — это и есть имя базы в SQL Server, под которым её нужно искать. Также здесь указан пользователь СУБД, под которым сервер 1С подключается к базе.

Как узнать имя и сервер базы
  1. 1
    Откройте консоль администрирования серверов 1С:Предприятие
  2. 2
    Разверните кластер и перейдите в раздел «Информационные базы»
  3. 3
    Откройте свойства нужной базы двойным щелчком
  4. 4
    Запишите значения полей «Сервер баз данных» и «База данных»
  5. 5
    Проверьте тип СУБД — дальнейшие шаги описаны для MS SQL Server

Как найти файлы базы на SQL Server

Зная имя базы, подключитесь к серверу СУБД через SQL Server Management Studio (SSMS). Разверните узел «Базы данных», найдите базу с нужным именем, откройте её свойства и перейдите на страницу «Файлы». В колонке «Путь» будет указан каталог, а в колонке «Имя файла» — полные имена файлов MDF и LDF.

Тот же результат даёт запрос к системному представлению. Он удобен, когда нужно быстро получить пути сразу по всем базам сервера или оформить проверку в виде скрипта.

sql
SELECT name AS ИмяБазы, physical_name AS ПутьКФайлу, type_desc AS ТипФайла FROM sys.master_files ORDER BY name;

По умолчанию SQL Server размещает файлы баз в каталоге данных экземпляра, обычно это путь вида C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\ — точное имя папки зависит от версии и имени экземпляра. Однако администратор мог указать другой диск при создании базы, поэтому полагаться на путь по умолчанию без проверки не стоит.

Как определить каталог данных SQL Server по умолчанию

Если базы ещё нет или вы планируете создание новой и хотите заранее знать, куда лягут файлы, посмотрите настройки экземпляра. В SSMS откройте свойства сервера (корневой узел дерева), перейдите на страницу «Параметры базы данных» — там указаны каталоги по умолчанию для данных и журналов.

Альтернативный способ — запрос к реестру сервера через расширенную хранимую процедуру или просмотр параметров запуска службы SQL Server в диспетчере конфигурации: параметр -d указывает путь к файлу master.mdf, рядом обычно лежит и каталог данных по умолчанию.

Чем расположение базы отличается от расположения сервера 1С

Частая ошибка — искать файлы базы на сервере 1С:Предприятие, когда СУБД установлена на отдельной машине. Сервер 1С хранит только служебные данные кластера: реестр информационных баз, настройки, журналы. Каталог служебных файлов кластера обычно находится в C:\Program Files\1cv8\<версия>\srvinfo (или в каталоге, указанном при установке), но файлов данных базы там нет.

Если сервер 1С и SQL Server установлены на одной машине — что встречается в небольших организациях, — файлы базы действительно будут на этом же сервере, но всё равно в каталоге данных SQL Server, а не в каталоге 1С. Определить, где установлен SQL Server, помогает поле «Сервер баз данных» в свойствах информационной базы: если там localhost или имя той же машины — СУБД локальная.

Где что лежит

Сервер 1С (srvinfo)

Служебные данные кластера: список баз, настройки, сеансы. Файлов данных базы здесь нет.

Сервер СУБД (каталог DATA)

Файлы MDF, NDF и LDF — собственно данные информационной базы. Именно это копируют при переносе и бэкапе.

Компьютер пользователя

Только клиент 1С и кэш метаданных. Базы здесь нет, искать её на рабочем месте не нужно.

Что можно и чего нельзя делать с файлами базы напрямую

Файлы MDF и LDF — это рабочие файлы SQL Server, и пока служба СУБД запущена, они заблокированы. Копировать, перемещать или удалять их через проводник в работающей системе нельзя: в лучшем случае получите ошибку доступа, в худшем — повреждённую базу. Перенос базы выполняется штатно: через создание резервной копии средствами SQL Server с последующим восстановлением на новом месте, либо через отсоединение базы (Detach), копирование файлов и присоединение (Attach) — при остановленных сеансах пользователей.

Для выгрузки данных в целях архивации или переноса между платформами используйте выгрузку в файл DT через конфигуратор — этот формат не зависит от СУБД. Прямая работа с таблицами SQL в обход 1С (ручные изменения, удаление записей) нарушает целостность данных и лишает поддержки.

Как проверить, что вы нашли нужную базу

Если на сервере несколько баз с похожими именами (например, рабочая и тестовая копии), убедитесь, что нашли именно ту. Сверьте имя базы из консоли кластера с именем в SSMS, а также сравните дату последнего изменения файлов — у активной рабочей базы файлы меняются постоянно.

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

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

Имя базы в консоли кластера и в SSMS
Норма

Имена полностью совпадают

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

Имена различаются — вы смотрите не ту базу или не тот экземпляр СУБД

Дата изменения файлов MDF/LDF
Норма

Файлы изменялись недавно, в рабочее время

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

Файлы старые — возможно, это забытая копия, а рабочая база на другом сервере

Размер файла данных
Норма

Размер соответствует ожиданиям по объёму учёта

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

Файл подозрительно мал — вероятно, это пустая или тестовая база

Дополнительная проверка — количество активных соединений: в SSMS через представление sys.dm_exec_sessions можно посмотреть, есть ли подключения к базе от сервера 1С. У рабочей базы в течение дня соединения будут практически всегда.

Частые ошибки при поиске базы

Типичные ошибки
01
Искать файлы базы на сервере 1С, когда SQL Server установлен на другой машине — файлы находятся только на сервере СУБД
02
Путать имя информационной базы в списке запуска с именем базы данных в SQL Server — это разные идентификаторы, они могут не совпадать
03
Копировать MDF/LDF проводником при работающем SQL Server — файлы заблокированы, а попытка обхода блокировки портит базу
04
Ориентироваться на путь по умолчанию без проверки — администратор мог разместить базу на другом диске
05
Путать файловую базу 1Cv8.1CD с SQL-базой — в клиент-серверном варианте файла 1CD не существует

FAQ

Можно ли узнать расположение базы, не имея доступа к консоли кластера?

Да, если есть доступ к SQL Server: запрос к sys.master_files покажет все базы и пути к их файлам. Определить нужную помогут имя базы (часто совпадает с названием организации или базы в списке запуска) и даты изменения файлов. Без доступа ни к кластеру, ни к СУБД определить расположение невозможно — обратитесь к администратору сервера.

Где находится база, если 1С работает в файловом режиме?

В файловом варианте SQL Server не используется: вся база — это файл 1Cv8.1CD в каталоге, указанном в списке информационных баз при запуске 1С. Путь к этому каталогу виден в нижней части окна выбора баз при выделении нужной строки.

Как перенести базу 1С на другой диск или сервер SQL?

Штатный способ — создать резервную копию базы в SSMS и восстановить её на новом сервере, затем в консоли кластера 1С изменить в свойствах информационной базы поля «Сервер баз данных» и при необходимости «База данных». Альтернатива — выгрузка в DT через конфигуратор и загрузка в новую базу. Перенос файлов MDF/LDF вручную допустим только через Detach/Attach при остановленных сеансах.

Почему файлов базы не видно в каталоге, хотя путь указан именно он?

Чаще всего вы смотрите каталог на другом компьютере — путь из свойств базы локален для сервера СУБД. Также доступ к системному каталогу данных SQL Server может быть ограничен правами: откройте проводник от имени администратора или проверяйте пути через SSMS, а не через файловую систему.

Что за файлы с похожими именами рядом с MDF базы?

Рядом с основным файлом данных обычно лежит файл журнала транзакций (LDF) той же базы — он обязателен и необходим для восстановления. Также могут присутствовать вторичные файлы данных (NDF), если база разбита на несколько файлов. Удалять любой из них нельзя: база не откроется без полного набора файлов.

Можно ли открыть базу 1С напрямую через SQL Server Management Studio?

Таблицы базы видны в SSMS и доступны для чтения запросами, но структура хранения 1С не предназначена для прямой работы: имена таблиц и полей служебные, связи обеспечивает платформа. Чтение данных прямыми запросами допустимо для анализа, но любые изменения в обход 1С повреждают базу и нарушают условия поддержки.

Итог

Что важно запомнить

База 1С в SQL-варианте — это файлы MDF и LDF на сервере СУБД. Имя базы и адрес сервера смотрите в свойствах информационной базы в консоли кластера 1С, а точные пути к файлам — в свойствах базы в SSMS или запросом sys.master_files. Все операции переноса и копирования выполняйте штатными средствами SQL Server, не трогая файлы напрямую.