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

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

1С и MDF-файл: что это такое и как с ним работать

Что такое MDF-файл в контексте 1С, где он хранится, как подключить базу SQL Server к 1С, сделать бэкап и избежать типичных ошибок администратора.

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

MDF (Master Database File) — это основной файл данных Microsoft SQL Server. В нём лежат таблицы, индексы, хранимые процедуры и служебные структуры базы, в том числе все объекты конфигурации 1С: справочники, документы, регистры, пользователи. Рядом с MDF почти всегда существует файл журнала транзакций с расширением LDF, без которого база не считается целостной.

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

Из чего состоит база 1С на SQL Server

Клиент-серверная информационная база 1С на MS SQL Server физически состоит минимум из двух файлов: MDF с данными и LDF с журналом транзакций. Дополнительно могут быть вторичные файлы данных с расширением NDF, если администратор разносил таблицы по файловым группам — так иногда делают на больших базах для ускорения ввода-вывода.

Внутри MDF платформа 1С создаёт свои таблицы с техническими именами: _Reference для справочников, _Document для документов, _AccumRg для регистров накопления, _InfoRg для регистров сведений и так далее. Структура таблиц формируется платформой автоматически при сохранении конфигурации, и изменять её вручную средствами SQL Server нельзя — это гарантированно приведёт к рассогласованию метаданных.

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

Где искать MDF-файл базы 1С

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

Проще всего выполнить запрос в SQL Server Management Studio (SSMS):

sql
SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID('ИмяБазы1С');

Запрос вернёт логические имена файлов и их физические пути. Ещё один способ — открыть свойства базы в SSMS и перейти на вкладку Files: там показаны пути ко всем файлам данных и журнала, их текущий размер и настройки авторасширения.

Обращайте внимание на размеры: если LDF-файл заметно больше MDF, это признак того, что журнал транзакций давно не усекался из-за отсутствия резервных копий журнала при полной модели восстановления. Это типичная проблема баз 1С, о которой ниже.

Как подключить MDF к SQL Server и зарегистрировать базу в 1С

Сценарий: у вас есть файлы MDF и LDF — например, скопированные с погибшего сервера или полученные от предыдущего подрядчика. Порядок подключения такой.

Ключевой момент — версия SQL Server. Присоединить базу можно только к экземпляру той же или более новой версии. Обратное невозможно: базу, присоединённую к новой версии, нельзя вернуть на старую — внутренний формат файла необратимо обновляется. Перед подключением убедитесь, что версия и разрядность SQL Server поддерживаются используемой платформой 1С.

Резервное копирование: почему простое копирование MDF опасно

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

Правильные способы резервного копирования базы 1С на SQL Server:

  • штатный бэкап средствами SQL Server — полная копия (FULL) плюс регулярные копии журнала транзакций при полной модели восстановления;
  • выгрузка информационной базы в файл .dt через конфигуратор — переносимый формат, независимый от СУБД;
  • остановка службы SQL Server с последующим копированием файлов — допустимо, но требует простоя и менее надёжно, чем штатный бэкап.

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

Перенос базы 1С на другой сервер

Есть два основных маршрута переноса: через файлы MDF/LDF и через выгрузку .dt. Выбор зависит от ситуации.

Способы переноса базы 1С

Detach/Attach (MDF + LDF)

Быстро на больших базах, сохраняет всё как есть. Ограничение: целевой SQL Server должен быть той же или новее версии, обратный перенос невозможен.

Бэкап/восстановление SQL Server

Стандартный и безопасный путь, позволяет восстановить базу под другим именем. Ограничение по версиям то же, что у Attach.

Выгрузка в .dt

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

При переносе через файлы последовательность такая: отсоединить базу на старом сервере (Detach) или снять бэкап, перенести файлы, присоединить на новом сервере, пересоздать логины, обновить регистрацию базы в консоли кластера 1С (или создать новую запись, поправив имя сервера). После переноса обязательно проверьте, что план обслуживания и задания бэкапов пересозданы на новом месте.

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

Типичные проблемы с MDF и их диагностика

Самая громкая проблема — база переходит в состояние Suspect или не присоединяется после сбоя диска. Причины: повреждение страниц данных, обрыв записи журнала, нехватка места во время авторасширения. Диагностику начинают с просмотра журнала ошибок SQL Server и проверки целостности командой DBCC CHECKDB.

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

Как проверить состояние базы

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

Online, база открывается, запросы выполняются

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

Suspect, Recovery Pending или база отсутствует в списке

Результат DBCC CHECKDB
Норма

Ошибок не найдено (0 allocation errors, 0 consistency errors)

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

Сообщения о повреждённых страницах и индексах

Свободное место на диске с MDF и LDF
Норма

Запас под рост файлов и временные операции

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

Диск заполнен, авторасширение файлов невозможно

Размер LDF относительно MDF
Норма

Журнал умеренного размера и усекается бэкапами

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

LDF сопоставим или больше MDF — журнал не обслуживается

Если CHECKDB нашёл ошибки, не спешите запускать REPAIR_ALLOW_DATA_LOSS — этот режим физически вырезает повреждённые данные, и для учётной базы это почти всегда недопустимые потери. Сначала попробуйте восстановить базу из последнего целого бэкапа и накатить журналы, а ремонт рассматривайте как крайнюю меру с последующей выгрузкой в .dt и загрузкой в чистую базу.

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

Ограничения и безопасная граница самостоятельной работы

Самостоятельно и безопасно администратор может: находить файлы базы, делать штатные бэкапы, выполнять Detach/Attach между совместимыми версиями, контролировать размер журнала и запускать проверку целостности в режиме только чтения. Это рутинные операции, которые при аккуратности не несут риска.

К специалисту с опытом восстановления SQL Server стоит обращаться, когда база в состоянии Suspect, CHECKDB показывает повреждения, а рабочего бэкапа нет или он устарел. Эксперименты с REPAIR_ALLOW_DATA_LOSS, hex-редакторами и «восстановителями MDF» на единственной копии данных могут превратить частично читаемую базу в полностью нечитаемую.

Перед любыми операциями с MDF зафиксируйте исходное состояние: запишите пути к файлам, версию SQL Server, имя базы и сделайте копию файлов на отдельный носитель. Эти десять минут не раз спасали при откате неудачного переноса.
ПЗ
Практическое замечание

Частые вопросы

Можно ли открыть MDF-файл базы 1С без SQL Server?

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

Чем MDF отличается от файла 1Cv8.1CD?

1Cv8.1CD — файл файловой информационной базы 1С, который платформа открывает сама, без сторонней СУБД. MDF — файл Microsoft SQL Server, используемый в клиент-серверном режиме. Это разные форматы: конвертация между ними выполняется только через выгрузку и загрузку .dt.

Есть только MDF, а LDF потерян. Что делать?

Если база была корректно закрыта перед потерей журнала, её можно присоединить с пересозданием журнала: в диалоге Attach удалить строку с отсутствующим LDF или использовать CREATE DATABASE ... FOR ATTACH_REBUILD_LOG. Если база закрыта некорректно, пересоздание журнала может завершиться ошибкой — тогда поможет только бэкап или специализированное восстановление.

Почему MDF-файл сильно вырос и можно ли его уменьшить?

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

Можно ли перенести базу 1С с SQL Server в файловый режим?

Да, но не через MDF. Нужно открыть базу в конфигураторе, выполнить выгрузку в файл .dt, затем создать файловую базу и загрузить в неё этот файл. Прямого преобразования MDF в 1Cv8.1CD не существует.

Итог

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

MDF — основной файл данных SQL Server, в котором живёт клиент-серверная база 1С. Работа с ним идёт только через SQL Server: присоединение, бэкап, проверка целостности. Не копируйте файлы при работающем сервере, следите за журналом транзакций и храните бэкапы отдельно от самих файлов базы.